VPLS基础
VPLS基本传输结构
如图10-2所示,整个VPLS网络就像一个交换机,它通过MPLS隧道在每个VPN的各个Site之间建立虚连接(PW),并通过PW将用户二层报文在站点间透传。对于PE设备,它会在转发报文的同时学习源MAC并建立MAC转发表项,完成MAC地址与用户接入接口(AC接口)和虚链路(PW)的映射关系。
VPLS网络中各组件的概念如下:
名称 |
全称 |
概念 |
---|---|---|
AC(Attachment Circuit) |
接入电路 |
用户与服务提供商之间的连接,即连接CE与PE的链路。对应的接口只能是以太网接口。 |
PW(Pseudo Wire) |
虚链路 |
两个PE设备上VSI之间的一条双向虚拟连接。它由一对方向相反的单向的MPLS VC(Virtual Circuit,虚电路)组成,也称为仿真电路。 |
VSI(Virtual Switch Instance) |
虚拟交换实例 |
通过该实例,可以将接入电路映射到各条虚链路上。每个VSI提供单独的VPLS服务,根据MAC地址和VLAN Tag进行二层报文转发。VSI实现以太网桥功能,并能够终结PW。 |
PW Signaling |
PW信令协议 |
VPLS实现的基础,用于创建和维护PW。PW信令协议主要有LDP和BGP。 |
Tunnel |
隧道 |
用于承载PW,一条隧道上可以承载多条PW。隧道是一条本地PE与对端PE之间的直连通道,完成PE之间的数据透明传输,可以是MPLS或GRE隧道。 |
Forwarder |
转发器 |
PE收到AC上送的数据帧,由转发器选定转发报文使用的PW。转发器相当于VPLS的转发表。 |
以VPN1中,CE1到CE3的报文流向为例,说明基本数据流走向:
- CE1上送用户的二层报文,通过AC链路接入PE1。
- PE1收到报文后,由转发器(Forwarder)选定转发报文的PW。
- PE1再根据PW的转发表项及隧道信息生成两层标签(内层私网标签用于标识PW,外层公网标签用于穿越隧道到达PE2)。
- 二层报文经公网隧道到达PE2,系统弹出私网标签。
- 由PE2的转发器(Forwarder)选定转发报文的AC,将CE1上送的二层报文转发给CE3。
VPLS实现过程
通过图10-2可以看出,CE之间报文的传输依赖于PE之间建立VSI以及VSI之间的PW。如图10-3所示,PE之间通过全连接的PW转发以太网帧。
在以太网上,为了避免环路,一般的二层网络都要求使能STP协议。但是对于VPLS网络来说使用PW全连接和水平分割转发来避免环路:
- PE之间逻辑上全连接(PW全连接),也就是每个PE必须为每一个VPLS转发实例创建一棵到该实例下的所有其他PE的树。
- 每个PE设备必须支持水平分割转发来避免环路。如果从PW上收到报文,那么这个报文将不再向这个VSI关联的其它PW上转发,也就是说要求任意两个PE之间通过直接相连的PW通信,而不能通过第三个PE设备中转报文,这也就是PE之间逻辑上建立全连接(PW全连接)的原因。
VPLS网络中的PE设备包含控制平面和数据平面:
VPLS PE的控制平面主要实现PW的建立功能,包括:
- 成员发现:找到同一VSI中所有其他PE的过程。可以通过手工配置的方式实现,也可以使用协议自动完成。使用协议自动完成的发现方式称为“自动发现”。
- 信令机制:在同一VSI的PE之间建立、维护和拆除PW的任务是由信令协议完成的,包括LDP、BGP。
VPLS PE的数据平面主要实现PW的数据转发功能,包括:
- 封装:从CE收到以太网帧后,PE首先对其封装后再发送到分组交换网络上。
- 转发:根据报文是从哪个接口上接收的以及报文的目的MAC地址决定如何转发报文。
- 解封装:PE从分组交换网络上收到以太网帧后,首先对其进行解封装,然后再下发到CE。
VPLS的封装方式
AC上的报文封装方式
AC上的报文封装方式由用户接入方式决定,如下表所示,用户接入方式可以分为两种,默认情况下,用户的接入方式为VLAN接入。
表10-2 AC上的报文封装方式AC上的报文封装方式
描述
VLAN接入
CE发送到PE或PE发送到CE的以太网帧头带有一个VLAN Tag。该Tag是ISP为了区分用户而为用户打上的一个“服务定界符”,称为P-Tag(Provider-Tag)。
Ethernet接入
CE发送到PE或PE发送到CE的以太网帧头中不带P-Tag。如果此时帧头中有VLAN Tag,则它只是用户报文的内部VLAN Tag称为U-Tag(User-Tag)。U-Tag是该报文在发送到CE前已携带,而不是CE打上的,用于CE区分该报文的VLAN,对于PE设备没有意义。
PW上的报文封装方式
PW由PW ID和PW封装类型唯一标识,两端PE设备通告的PW ID和PW封装类型必须相同。如下表所示,PW上的报文封装方式可以分为两种,默认情况下,PW上的报文封装使用Tagged模式。
表10-3 PW上的报文封装方式PW上的报文封装方式
描述
Raw模式
PW上传输的帧不能带P-Tag。对于CE发送到PE的报文,如果PE收到带有P-Tag的报文,则将P-Tag去除后,再打上两层MPLS标签(外层Tunnel标签和内层VC标签)后转发;如果PE收到不带P-Tag的报文,则直接打上两层MPLS标签(外层Tunnel标签和内层VC标签)后转发。对于PE发送到CE的报文,PE根据实际配置选择添加或不添加P-Tag后转发给CE,但是它不允许重写或移除已经存在的任何Tag。
Tagged模式
PW上传输的帧必须带P-Tag。对于CE发送到PE的报文,如果PE收到带有P-Tag的报文,则不去除P-Tag,而是直接打上两层MPLS标签(外层Tunnel标签和内层VC标签)后转发;如果PE收到不带P-Tag的报文,则添加一个空Tag后,再打上两层MPLS标签(外层Tunnel标签和内层VC标签)后转发。对于PE发送到CE的报文,PE根据实际配置选择重写、去除、保留P-Tag后转发给CE。
子接口接入L2VPN场景中,为了保证和其他厂商设备能够正常通信,可以为进入Tagged模式的PW的报文修改P-Tag,即:在设备PE上执行Pw-tag动作。
对于主接口接入L2VPN的场景,默认添加一个空Tag后,再打上两层MPLS标签后转发。
AC上的报文封装方式和PW上的报文封装方式可以交叉组合,以下只以Ethernet接入Raw模式(不带U-Tag)和VLAN接入Tagged模式(带U-Tag)方式为例,说明报文的交互过程:
Ethernet接入Raw模式(不带P-Tag)
如图10-4所示,AC采用Ethernet封装,PW采用Raw模式,从CE发送到PE的报文中不含有U-Tag。
Ethernet接入Raw模式(不带U-Tag)报文的交互过程为:
CE1发送经过二层封装的报文到PE1,该报文不含U-Tag和P-Tag。
PE1收到不带P-Tag的报文,查对应的VSI中的表项。为该报文选择隧道和PW。PE1根据选择的隧道和PW,为该报文直接打上两层MPLS标签(外层Tunnel标签和内层VC标签),再进行二层封装后转发。
PE2收到从PE1发送来的报文,对该报文进行解封装。即去掉PE1的二层封装和两层MPLS标签。
PE2把解封装后的CE1原始二层报文发送给CE2。
从CE2发往CE1的报文的处理过程与上述过程类似,这里不再赘述。
VLAN接入Tagged模式(带U-Tag)
如图10-5所示,AC采用VLAN封装,PW采用Tagged模式,从CE发送到PE的报文中含U-Tag和P-Tag。
VLAN接入Tagged模式(带U-Tag)报文的交互过程为:
CE1发送经过二层封装的报文到PE1,报文含U-Tag和P-Tag。
PE1收到含U-Tag和P-Tag的报文,U-Tag对于PE1没有意义,所以PE1不对U-Tag进行处理,而把它当作业务数据来对待。
PW是Tagged封装,要求发送到PW的帧必须带P-Tag传输,PE1收到带P-Tag的报文后,不对该报文进行处理。
PE1查对应的VSI中的表项。为该报文选择隧道和PW。
PE1根据选择的隧道和PW,为该报文直接打上两层MPLS标签(外层Tunnel标签和内层VC标签),再进行二层封装后转发。
PE2收到从PE1发送来的报文,对该报文进行解封装。即去掉PE1的二层封装和两层MPLS标签。
PE2把解封装后的CE1原始二层报文发送给CE2,此报文含U-Tag和替换后的P-Tag。
从CE2发往CE1的报文的处理过程与上述过程类似,这里不再赘述。
VPLS的接入方式
交换机或路由器VLANIF接口
VLANIF接口有两种类型:
路由器模式VLANIF接口:复用一个物理接口。例如,一个GE接口可以被划分为多个子接口,每个子接口作为一个VLANIF接口。
交换机模式VLANIF接口:VLANIF接口是逻辑接口,而不是某个物理接口的子接口。一个VLANIF接口可以包括多个物理接口,即可以从多个物理接口接收VLAN报文。
被设置为交换端口的物理接口,以下几种模式可用于发送VLAN流量:
Access模式:只允许携带缺省VLAN ID的报文通过。
Trunk模式:只允许携带本接口VLAN ID的报文通过。
CE接入到PE的方式
CE可以通过Access端口或Trunk端口接入到PE。
通过Access端口接入:Access端口只允许属于该端口缺省VLAN的报文通过。该VLAN在该物理端口上的流量为Untag流量。
可以将PE的多个Access端口分配给一个VLAN进行用户接入。
通过Trunk端口接入:Trunk端口允许多个VLAN的流量通过,这些VLAN中有一个是缺省VLAN。缺省VLAN的流量是Untag报文,其余VLAN的流量都是Tag报文。可以将PE的Trunk端口与以太网交换机连接,允许多个VLAN用户接入。
VPLS的衍生功能
流量统计
支持基于VSI的流量统计和基于VSI Peer的流量统计功能,实时查看各种流量的运行状态。
VPLS业务隔离
不同业务的用户可以通过不同的VSI实例进行业务隔离,同一个VSI里的客户也存在业务隔离的需求。当使用相同业务的用户绑定在同一个VSI中时,而又需要禁止用户之间的互访时,比如上网业务,同一个VSI中的用户之间禁止互访,则可以使用VPLS转发隔离功能禁止用户互访,达到隔离目的。详情请参见VPLS业务隔离。