copy自csdn:achejq
VPLS简介
VPLS(Virtual Private LAN Service,虚拟专用局域网服务)是在公用网络中提供的一种点到多点的L2VPN业务。VPLS使地域上隔离的用户站点能通过MAN(Metropolitan Area Network,城域网)或WAN(Wide Area Network,广域网)相连,并且使各个站点间的连接效果像在一个LAN中一样。
VPLS也称TLS(Transparent LAN Service,透明局域网服务)或Virtual Private Switched Network Service(虚拟专有交换网络服务)。
VPLS提供二层VPN服务。在VPLS中,用户是由多点网络连接起来,不同于传统VPN提供的P2P(Point to Point,点到点)的连接服务。VPLS实际上就是在PE上创建一系列的虚拟交换机租借给用户,虚拟交换机的组网和传统交换机完全相同,这样,用户就可以通过MAN(Metropolitan Area Network,城域网)或WAN(Wide Area Network,广域网)来实现自己的LAN(Local Area Network,局域网)。
VPLS的工作机制
1. VPLS的基本概念
CE(Custom Edge)
直接与服务提供商相连的用户边缘设备。
PE(Provider Edge)
服务提供商网络上的边缘设备,与CE相连,主要负责VPN业务的接入。它完成报文从私网到公网隧道,并从公网隧道到私网的映射与转发。PE可以细分为UPE和NPE。
UPE(User facing-Provider Edge)
靠近用户侧的PE设备,主要作为用户接入VPN的汇聚设备。
NPE(Network Provider Edge)
网络核心PE设备,处于VPLS网络的核心域边缘,提供在核心网之间的VPLS透明传输服务。
VSI(Virtual Switch Instance)
虚拟交换实例,通过VSI,可以将VPLS的实际接入链路映射到各条虚链接上。
PW(Pseudo Wire)
虚链路,在两个VSI之间的一条双向的虚拟连接,它由一对单向的MPLS VC(Virtual Circuit,虚电路)构成。
AC(Attachment Circuit)
接入电路,指连接CE与PE的链路,对应的接口可以是实际的物理接口,也可以是虚拟接口。AC上的所有用户报文一般都要求原封不动的转发到对端Site(站点)去,包括用户的二、三层协议报文。
QinQ(802.1Q in 802.1Q)
一种基于802.1Q封装的隧道协议,能够提供点到多点的L2VPN服务机制。它将用户私网VLAN Tag封装在公网VLAN Tag中,最终报文带着两层Tag穿越服务提供商的骨干网络,从而为用户提供一种较为简单的二层VPN隧道。
Forwarders
转发器,PE的一种。PE收到AC上送的数据帧,由转发器选定转发报文使用的PW,转发器事实上就是VPLS的转发表。
Tunnel
隧道,用于承载PW,一条隧道上可以承载多条PW,一般情况下为MPLS隧道。隧道是一条本地PE与对端PE之间的直连通道,完成PE之间的数据透明传输。
Encapsulation
封装,PW上传输的报文使用标准的PW封装格式和技术。PW上的VPLS报文封装有两种模式:Raw和Tagged模式。
PW Signaling
PW信令协议,VPLS实现的基础,用于创建和维护PW。PW信令协议还可用于自动发现VSI的对端PE设备。目前,PW信令协议主要有LDP和BGP。
图 1为VPLS典型组网示意图,图中简单显示出以上所涉及的各基本概念。
图 1 VPLS典型组网示意图
2. MAC地址学习与泛洪
VPLS通过MAC地址学习来提供可达性。每个PE设备会维护一张桥MAC地址表。
(1)源MAC地址学习
MAC地址学习过程包含两部分:
与PW关联的远程MAC地址学习
PW是由一对单向的VC LSP组成(只有两个方向的VC LSP都up才被认为PW是up的)。当在入方向的VC LSP上学习到一个原来未知的MAC地址后,需要PW将此MAC地址与出方向的VC LSP形成映射关系。
与用户直接相连端口的本地MAC地址学习
对于CE上传送的报文,需要将报文中的源MAC地址学习到VSI的对应端口上。
PE的MAC地址学习与泛洪过程如图 2所示。
图 2 PE的MAC地址学习与泛洪过程
(2)MAC地址回收
动态学习到的MAC地址必须有刷新和重学习的机制。在VPLS相关草案中提供一种动态学习的方法,即使用地址回收消息。地址回收消息中携带MAC TLV,收到这个消息的设备根据TLV中指定的参数进行MAC地址的删除或者重新学习这些MAC地址。如果TLV中指定的MAC地址为NULL,则删除此VSI下所有MAC地址,但不删除收到这个消息的PW上学习到的MAC地址。
在拓扑结构改变时为了能快速移除MAC地址,可以使用地址回收消息。地址回收消息分为两类:带有MAC地址列表的和不带MAC地址列表的。
如果在一条备份链路变为活动状态后,收到带有重学习MAC表项的通知消息,PE将更新VPLS实例的FIB表中对应的MAC表项,并将此消息发送给其他相关的LDP会话直连的PE。如果通知消息中包含空的MAC地址TLV列表,表示告知PE移除指定VSI中的所有MAC地址(从发送此消息的PE处学习到的MAC地址除外)。
(3) MAC地址老化
PE学习到的与VC标签相关但是不再使用的远程MAC地址需要有老化机制来移除。老化机制使用了MAC地址对应的老化定时器。在接收到报文并处理时,根据报文中的源MAC地址,如果这个源地址启动了相应的老化定时器,则PE重置该老化定时器。
3. VPLS的环路避免
为了避免环路,一般的二层网络都要求使能STP(Spanning Tree Protocol,生成树)协议。但是对使用VPLS的用户来说,不会感知到ISP的网络,因此在私网侧使能STP的时候,不能把ISP的网络考虑进来。VPLS中,使用全连接和水平分割转发来避免在ISP上使用VPLS私网侧的STP协议。
VPLS环路避免的方法如下:
PE之间逻辑上全连接(PW全连接),也就是每个PE必须为每一个VPLS转发实例创建一棵到该实例下的所有其他PE的树。
每个PE设备必须支持水平分割策略来避免环路,即PE不能在具有相同VSI的PW之间转发报文(由于在同一个VSI中每个PE直连),也就是说,从公网侧PW收到的数据包不再转发到其他PW上,只能转发到私网侧。
4. 对端PE发现与PW信令协议
对于同一个VSI内的PE设备,可以通过手工配置来指定远程PE地址,也可以通过其他的自动发现机制。目前,可以通过LDP和BGP来自动发现VSI对端PE,同时LDP和BGP这两种协议也可以作为PW信令协议来创建PW。
PW主要工作是分配一个多路复用分离标记(VC标签),并将分配的VC标签通告给对端PE。除了标签的分发,PW信令协议还用于通告VPLS系统相关参数,例如PW ID、控制字和接口参数等。通过PW信令协议,可以在各PE之间建立全连接的PW,用于VPLS服务。
VPLS报文封装
1. AC上的报文封装
AC上的报文封装方式由用户的VSI接入方式决定。用户接入方式可以分为两种:VLAN接入和Ethernet接入。其含义如下:
VLAN接入:CE发送给PE或PE发送给CE的以太网帧头带有一个VLAN Tag,该Tag是一个服务提供商网络为了区分用户而要求用户压入的“服务定界符”。我们把这个作为服务定界符的Tag称为P-Tag。
Ethernet接入:CE发送给PE或PE发送给CE的以太网帧头中没有服务定界符,如果此时帧头中有VLAN Tag,则说明它只是用户报文的内部VLAN Tag,对于PE设备没有意义。这种用户内部VLAN的Tag称为U-Tag。
至于用户的VSI接入方式,可以使用配置的方式来指定。
2. PW上的报文封装
PW上的报文封装方式也可以分为两种:Ethernet模式和VLAN模式。
Ethernet模式下,P-Tag不在PW上传输:对于CE侧的报文,如果收到带有服务定界符的报文,则将其去除后再压入两层MPLS标签后转发;如果收到不带服务定界符的报文,则直接压入两层MPLS标签后转发。对于PE侧的下行报文,根据实际配置选择添加或不添加服务定界符后转发给CE,但是它不允许重写或移除已经存在的任何Tag。
VLAN模式下,PW上传输的帧必须带P-Tag:对于CE侧的报文,如果收到带有服务界定符的报文,保留P-Tag,或者将P-Tag改写为对端PE期望的VLAN Tag或者空Tag(Tag值为0),再压入PW标签和隧道标签后转发;如果收到不带服务界定符的报文,则添加一个对端PE期望的VLAN Tag或空Tag后,再压入PW标签和隧道标签后转发。对于PE侧的下行报文,根据实际配置选择重写、去除或保留服务界定符后转发给CE。
根据协议规定,缺省情况下PW使用VLAN模式对报文进行封装。
H-VPLS实现方式
H-VPLS(Hierarchy of VPLS,分层VPLS),延伸服务提供商的VPLS接入范围和降低成本。
1. H-VPLS接入的优点
H-VPLS对MTU-s((Multi-Tenant Unit switch,汇聚设备)的要求比较低,层次鲜明,分工明确。
H-VPLS能够减少PE全连接带来的逻辑复杂度和配置管理的复杂度。
2. H-VPLS的两种接入方式
H-VPLS的LSP方式接入
图 3 H-VPLS的LSP方式接入
如图 3所示,UPE作为汇聚设备MTU-s,它只跟NPE1建立一条虚链接接入链路U-PW,跟其他所有的对端都不建立虚链接。
数据转发流程如下:
(1)UPE负责将CE上送的报文发给NPE1,同时打上U-PW对应的多路复用分离标记(MPLS标签);
(2)NPE1收到报文后,先根据多路复用分离标记判断报文所属的VSI,再根据该报文的目的MAC压入N-PW对应的多路复用分离标记,然后转发该报文;
(3)NPE1从N-PW侧收到报文后,打上U-PW对应的多路复用分离标记将报文发送给UPE,UPE再将报文转发给CE。
如果CE1与CE2之间的数据交换为本地CE之间交换,由于UPE本身具有桥接功能,UPE将直接完成两者间的报文转发,而无需将报文上送给NPE1。不过对于目的MAC未知的第一个数据报文或广播报文,UPE在将数据通过桥广播到CE2的同时,仍然会通过U-PW转发给NPE1,由NPE1来完成报文的复制并转发到各个对端CE。
H-VPLS的QinQ方式接入
图 4 H-VPLS的QinQ方式接入
如图 4所示,MTU为标准的桥接设备,数据转发流程如下:
(1)在CE接入端口使能QinQ,为收到的报文添加压入VLAN Tag作为多路复用分离标记,在MTU与PE1之间通过QinQ隧道将报文透明传输到PE1上;
(2)PE1先根据报文携带MTU压入的VLAN Tag判断所属的VSI,再根据该报文的目的MAC为其压入PW对应的多路复用分离标记(MPLS标签),然后将其转发;
(3)PE1从PW侧收到报文后,根据多路复用分离标记(MPLS标签)判断报文所属的VSI,再根据用户报文的目的MAC打上VLAN Tag通过QinQ隧道将报文转发给MTU,由MTU将报文转发给CE。
如果CE1与CE2之间的数据交换为本地CE之间交换,由于MTU本身具有桥接功能,MTU将直接完成两者间的报文转发,而无需将报文上送给PE1。不过对于目的MAC未知的第一个数据报文或广播报文,MTU在通过桥广播到CE2的同时,仍然会通过QinQ隧道转发给PE1,由PE1来完成报文的复制并转发到各个对端CE。
3. 主备PW切换
UPE与NPE之间只有单条链路连接的方案具有明显的弱点:一旦该接入链路出现故障,汇聚设备连接的所有VPN都将丧失连通性。所以,对于H-VPLS的两种接入方式,都需要有冗余备份链路存在,如图 5和图 6所示。
图 5 LSP接入方式的冗余保护
图 6 QinQ接入方式的冗余保护
在正常情况下,设备只使用一条链路(主链路)接入。当主链路出现故障,即出现下列情况时,将启用备用链路继续提供VPN业务:
PW经过的隧道被删除,导致此PW的状态变为down;
利用BFD协议等链路检测机制,检测到链路故障;
PW对应的对等体间LDP会话down导致PW删除。
Hub-Spoke实现方式
Hub-Spoke是VPLS的一种组网应用方式。在这种组网方式下,存在一个中心节点(Hub站点)和多个接入节点(Spoke站点)。VPLS的Hub-Spoke组网中,Spoke-CE站点之间的数据必须通过Hub-CE站点进行交换,而不允许各个Spoke-CE站点之间直接进行数据交换。与中心站点或者接入站点相连的PE设备相应称作Hub-PE或者Spoke-PE。
1. Hub-Spoke组网接入的优点
Hub-Spoke组网方式下所有接入站点之间的数据流量都需要通过中心站点,便于中心站点对数据流量的统一管理。
2. Hub-Spoke组网方式
图 7 Hub-Spoke组网图
典型的Hub-Spoke组网如图 7所示,其数据转发流程如下:
(1)Spoke-PE 1接收到从接入站点Spoke-CE 1接收的数据报文,根据所属的VSI,为报文压入多路复用分离标记(MPLS标签)然后转发给指定的Hub-PE;
(2)Hub-PE从PW侧收到报文后,根据多路复用分离标记(MPLS标签)判断报文所属的VSI,将报文直接转发给Hub-CE;
(3)Hub-CE具有二层转发功能,将报文处理后重新转发给Hub-PE;
(4)Hub-PE从AC侧收到报文后,根据VLAN Tag判断所属的VSI,再根据该报文的目的MAC为其压入PW对应的多路复用分离标记(MPLS标签),然后将其转发给Spoke-PE 2;
(5)Spoke-PE从PW侧收到报文后,根据多路复用分离标记(MPLS标签)判断报文所属的VSI,将报文转发给对应的Spoke-CE 2。