摘要 VPLS是一项利用MPLS实现跨域广域网提供LAN业务的技术,它使得在基于包交换的网络架构上可以实现多点服务,适应了网络发展的需要。从各个角度出发介绍了VPLS的原理、关键技术,在文章的最后,还给出了一个具体的网络实例来进一步解析VPLS的机制。对于要想了解VPLS的读者而言,具有一定的参考价值。
1、引言
MPLS(Multiprotocal Label Switching)是一项利用绑定在IP包中的标签通过网络进行数据包转发的技术。MPLS目前最为广泛的应用是在虚拟专用网(VPN,Virtual Private Network)方面。
基于MPLS的第二层VPN是服务供应商为客户提供第二层服务的一种网络。MPLS VPN的网络采用标签交换,一个标签对应一个用户数据流,非常易于用户间数据的隔离;MPLS自身提供流量工程的能力,可以最大限度的优化配置网络资源,自动快速修复网络故障,提供高可用性和高可靠性。MPLS提供了电信、计算机、有线电视网网络三网融合的基础,除了ATM,是目前唯一可以提供高质量的数据、语音和视频相融合的多业务传送、包交换的网络平台。因此基于MPLS技术的MPLS VPN,在灵活性、扩展性、安全性各个方面是当前技术最先进的VPN。
但在除了VPLS(Virtual Private LAN Services)之外的其他两层VPN都是点到点的业务,为了能在MAN/WAN上提供类似以太网的多点服务,VPLS应运而生。
VPLS在公用网络中,提供点到多点的L2VPN业务,同时它结合了以太网和MPLS VPN各自的优点,使得构建跨广域网的以太网或VLAN成为可能。通过VPLS,地域上隔离的站点能通过MAN/WAIN相连,并且各个站点间的连接效果像在一个LAN中一样。
2、VPLS网络模型
VPLS相关的草案中提供了两种VPLS网络模型:虚链路PW(Pseudo Wire)逻辑全连接的VPLS网络模型和分层的VPLS(HVPLS,Hierarchical VPLS)模型。
2.1 全连接的VPLS模型
对用户来说,L2VPN好似一个虚拟的网络。用户端的虚连接是一个数据流的入口,用于把用户端的流量传给服务提供商的VPLS域。通过利用VPN和广域VLAN的优点,提供商可以保证客户信令和数据流的私密性。在高层,从用户的角度看来,VPLS就是一个虚拟的广域网交换机,通过二层的单播、广播以及多播,在用户的VPN内把数据帧转发到正确的目的地。下图是全连接的VPLS的一个基本模型:
在服务提供商网络内,VPLS通常是建立在MPLS网络结构上,用MPLS PE(Provider Edge Router)设备创建合理的私有的用户VPN。最简单的组网就是把用户站点和一些PE设备连接起来提供VPLS服务。一旦用户数据包到达PE路由器之后,PE设备决定以太网的帧转发,通过PE在MPLS网络上交换数据。PE设备使用路由协议,比如MPLS的标签分发协议(LDP)在提供商的网络云图内创建合理的、全网格的以太网虚拟电路。一个通过以太网连接到提供商VPLS网络的用户站点可以互通多个其他用户终端站点,这样就实现了多点以太网服务。MPLS网络的PE设备通过给每个用户MPLS VPN创建独立的虚拟路由转发表或者VRF表来实现多重VPN。这些VRF表包含三层的路由信息,在维持用户间路由的独立性的同时它还使得PE路由器可以实现多用户间的通信。以太网VPLS服务环境中,PE设备维护虚拟交换实例VSI(Virtual Switch Instance)。虚拟交换实例实质是每个用户VPLS独有的两层转发表。提供商的PE设备根据特定VPLS VPN内以太网帧交换所需要的转发信息创建独立的VSI表。通过PE的VSI就可以实现MAC地址学习。当有新的转发信息时,MAC地址就会进行更新。
图1 全连接VPLS模型
2.2 分层VPLS(HVPLS)
提供VPLS服务的所有的PE路由器之间建立全连接的隧道LSP(Label Switched Path)。对每个VPLS服务,必须在PE路由器之间建立n×(n-1)/2条PW。提供VC(Virtual Channel)的PE路由器需要复制数据包,对于广播和多播报文,每个PE设备需要向所有的对端设备广播报文。通过分层连接,可以减少信令协议和数据包复制的负担,从而使VPLS可以大规模的应用。
在分层VPLS模型中,要定义两类PE设备:面向用户的PE(u-PE,User facing-Provider Edge)和网络PE(n-PE,Network Provider Edge)。
用户边缘VPLS服务直接和u-PE相连。u-PE在采用可选的QinQ(802.1Q in 802.1Q)干道之前聚合VPLS流量给n-PE。在PE处,VPLS转发基于VSI。这种双重封装IEEE QinQ隧道使得来自u-PE的QinQ干道可以作为访问n-PE的端口,n-PE则连接到VPLS网络的核心层。n-PE同样可以在一个VSI内提供多达4k个VLAN,同时不同的用户VLAN之间保持为不可见;通过干道连接,数据在n-PE所分派的VLAN内传输。结合分层VPLS和QinQ两种技术,服务提供商可以在大范围内更好的分级以太网域以及以太网服务。
下图描述了HVPLS网络服务的基本思想。
图2 HVPLS
3、VPLS关键技术
VPLS技术主要包括两个层面:信令控制层和数据转发层。
3.1 信令控制层
信令控制层的主要作用是通过使用信令协议在PE之间建立相应的虚拟电路,换句话说,也就是对标识VPLS实例的VC标记进行交换,使得各个PE设备能够将VC标记映射到不同的VPLS实例,从而对所收到的MPLS封装的流量进行识别。
VPLS信令协议有LDP和MP-BGP两种,前者利用LDP作为传递VC信息的信令,此方式只能手工静态指定PE邻居。后者利用MP-BGP作为传递VC信息的信令,MP-BGP支持拓扑自动发现。
LDP方式适合用在VPLS的站点比较少,不需要或者很少跨域的情况,特别是PE不运行BGP的时候。当VPLS网络比较大时,可以采用两种方式结合的HVPLS,核心层使用BGP方式,接入层使用LDP方式。
3.2 数据转发层
在数据转发层,每个PE为每个VPLS服务实例维护一个转发信息库(FIB),并且把已知的MAC地址加入到相应的FIB表中。所有流量都基于MAC地址进行交换,未知的数据包(如目的MAC地址未知)将广播给所有参与该VPN的PE,直至目的站响应且与该VPN相关的PE学习到该MAC地址。在数据转发层,主要涉及以下几方面:
1)MAC地址学习:VPLS模拟LAN交换机的功能,因此PE必须学习每个VPN中用户的MAC地址以实现点到点的转发。每个VPN学习MAC地址的来源分为两类:来自对端PE的MAC地址和来自本地CE(Custom Edge Router)的MAC地址。
2)泛洪:当FIB表不包含目的MAC地址的时候,就需要VPLS泛洪,广播和多播同样也需要泛洪。要泛洪的包有可能是从用户端口或者其他PE站点收到的。如果是从用户端口收到的,包必须要泛洪到其他的用户端口以及其他的PE。如果是从其他的PE收到的,则只能泛洪到面向端口的用户,这类似于水平分割。
3)环路避免:PE转发用户报文时根据用户的目的MAC来选择目的PE并完成公网标签封装;当用户目的MAC在VSI的条目中并不存在或用户的报文目的MAC是广播地址时,PE要在本VPN内给每个PE发送一份。VPN中,PE如果和其他PE不建立全连接,则CE间要互相通信必然需要PE转发其他PE的报文。对于大型网络部署,稍有不慎就会产生环路。VPLS中,一般的,为了避免环路,在核心层采用全连接,PE间转发采用水平分割;边缘层采用树形拓扑。
4、VPLS实例分析
以下通过具体实例来进一步分析VPLS技术。
图3 组网图
4.1 组网图
4.2 相关配置
RTA:
配置远端LDP邻居:
mpls ldp
remote-peer local-ip 2.2.2.8 remote-ip 3.3.3.8
remote-peer local-ip 2.2.2.8 remote-ip 1.1.1.8
在vlanif100上配置:
interface vlanif100
CCC vpls encapsulation vlan mtu 1500
mpls l2transport 1.1.1.8 101 encapsulation vlan mtu 1500
mpls l2transport 3.3.3.8 encapsulation vlan mtu 1500
RTB:
配置远端LDP邻居:
mpls ldp
remote-peer local-ip 1.1.1.8 remote-ip 3.3.3.8
remote-peer local-ip 1.1.1.8 remote-ip 2.2.2.8
在vlanif200上配置:
interface vlanif200
mpls l2transport2.2.2.8 101 encapsulation vlan mtu 1500
mpls l2transport 3.3.3.8 encapsulation vlan mtu 1500
4.3 访问过程
以PC-A访问PC-B为例分析VPLS的访问过程。
1)PC-A将ARP广播帧发送给RTA;
2)初始时,RTA的转发表为空,RTA将广播帧打上内层VC label和外层tunnel标签后通过隧道LSP广播给RTB和RTC,同时RTA会从ARP的请求报文中学习到PC-A的源MAC地址,并加入到转发表。
3)RTB收到此MPLS报文,剥掉外层标签头后根据内层标签判断其所属的VPLS,发现是广播帧就将它复制,并从所有连接到RTB的属于同一个VPLS的CE的接口上发送出去。同时RTB会从ARP请求报文中学习到PC-A的源MAC地址,并加入到转发表。
4)PC-B收到此ARP请求后发送ARP应答报文(目的MAC地址是PC-A的MAC地址);
5)RTB收到PC-B发送的应答报文后,根据入端口和VLAN找到对应的VPLS转发表,如果在转发表里发现存在到PC-A的转发条目,就按照转发表进行转发,打上内外层标签,通过LSP转发给RTA。同时RTB从ARP应答报文中学到PC-B的源MAC地址。
6)RTA收到此MPLS报文后,剥掉外层标签后根据内层标签找到对应的VPLS转发表,查找转发表,找到PC-A的转发条目,就根据转发表制定的接口发送此ARP应答帧。同时RTA从ARP应答报文中学到PC-B的源MAC地址。
以后的报文在PE上就按照转发表进行转发。
5、结语
VPLS结合以太网和MPLS技术的优点,为服务提供商带来巨大的发展潜力。它符合当前企业用户的采购标准,并得到了运营商和厂商的广泛支持。VPLS的部署正如雨后春笋在世界各地如火如荼地进行,VPLS的标准也已经趋向稳定,标准化已为时不远。随着技术的发展和完善,VPLS的优势会越来越大。