VPLS技术白皮书
关键词:MPLS、VPLS、UPE、NPE、PW、AC、VSI
摘 要:VPLS是在公用网络中提供的一种点到多点的L2VPN业务。它结合了以太网和MPLS技术的优势,通过MAN或WAN使得分布在不同地域的多个用户站点在一个桥接域内互连,从而形成虚拟专用网络。本文描述了VPLS的技术特点和实现方式,以及H3C实现的技术特色。
缩略语:
缩略语 | 英文全名 | 中文解释 |
WAN | Wide Area Network | 广域网 |
MAN | Metropolitan Area Network | 城域网 |
LAN | Local Area Network | 局域网 |
ATM | Asynchronous Transfer Mode | 异步传输模式 |
FR | Frame Relay | 帧中继 |
MPLS | Multi-protocol Label Switching | 多协议标签交换 |
VPLS | Virtual Private LAN Service | 虚拟专用局域网服务 |
VLL | Virtual Leased Line | 虚拟租用线路 |
VPWS | Virtual Private Wire Service | 虚拟专用线服务,又称为VLL |
CE | Custom Edge | 用户边界网络设备 |
PE | Provider Edge | 运营商边界网络设备 |
UPE | User facing-Provider Edge | 面向用户的PE设备 |
NPE | Network Provider Edge | 面向网络的PE设备 |
PW | Pseudo Wire | 虚链路 |
AC | Attachment Circuit | 接入电路 |
VSI | Virtual Switch Instance | 虚拟交换实例 |
VC | Virtual Circuit | 虚电路 |
VE | VPLS Edge | VPLS边缘设备 |
MTU | Multi-Tenant Unit | 多租用单元,如路由器或交换机设备 MTU也可以表示最大传输单元,但本文中的MTU均指多租用单元 |
BFD | Bidirectional Forwarding Detection | 双向转发检测 |
STP | Spanning Tree Protocol | 生成树协议 |
目 录
2.7.1 Ethernet接入Raw模式的报文转发... 13
2.7.2 Ethernet接入Tagged模式的报文转发... 14
2.7.4 VLAN接入Tagged模式的报文转发... 15
随着社会发展,经济全球化的趋势越来越明显,越来越多的企业分布范围日益扩大,公司员工的移动性也不断增加。这就迫切需要电信运营商提供链路连接,以便企业将各分支机构囊括进来,组成自己的企业网,以方便公司员工在企业以外的地方很方便地访问企业内部网络。
最初,电信运营商是以租赁专线的方式为企业提供链路,这种方式的主要缺点是:不适应当前企业分支多、增加快的特点,且价格相对昂贵,难以管理。此后,随着ATM和FR技术的兴起,电信运营商转而使用虚电路方式为客户提供点到点的二层连接,客户在其上建立自己的三层网络以承载IP、IPX等数据流。但是这些技术提供的都是点到点的二层连接,配置比较复杂,尤其当增加一个站点时,管理员需要进行大量的配置工作。
当今IP网络已经遍布全球,利用现有IP网络为企业提供低成本专网逐渐成为各大运营商的关注点。因此,一种在IP网上提供VPN服务、可方便设定速率、配置简单的技术应运而生,这种技术即MPLS VPN技术。基于MPLS的VPN技术有两种,分别是MPLS L3VPN和MPLS L2VPN。MPLS L3VPN需要介入用户的内部路由管理,运营商的管理比较复杂。传统VLL方式的MPLS L2VPN,在公网中提供一种点到点的L2VPN业务,可以让两个站点之间的连接效果像直接用链路连接一样,但它不能直接在服务提供者处进行多点间的交换。VPLS在传统MPLS L2VPN方案的基础上发展而成,它可以实现多点到多点的VPN组网。VPLS为运营商提供了一种更加完备的解决方案。
VPLS结合了以太网技术和MPLS技术的优势,是对传统LAN全部功能的仿真,其主要目的是通过运营商提供的IP/MPLS网络连接地域上隔离的多个由以太网构成的LAN,使它们像一个LAN那样工作。
如图1所示,服务提供商利用VPLS技术在MPLS骨干网络上为用户网络模拟了一个以太网桥,基于MAC地址或者MAC地址加VLAN标识来做出转发决策。在最简单的情况下,一个VPLS实例包括连接到多个PE的多个站点,允许CE设备直接跟所有与该VPLS实例关联的其它CE通信。在CE设备看来,服务提供商网络是一个以太网桥(以太网交换机)。

图1 VPLS模拟以太网桥
VPLS具有以下优点:
l VPLS在面向用户网一侧使用以太网接口,简化了LAN/WAN边界,可以支持快速和灵活的服务部署;
l VPLS将用户网络的路由策略控制和维护权利交给了用户,简化了运营商网络的管理;
l VPLS服务内的所有用户路由器CE是相同子网的一部分,简化了IP寻址规划;
l VPLS服务既不需要感知,又不需要参与IP寻址和路由。
l CE:直接与服务提供商相连的用户边缘设备。
l PE:服务提供商网络上的边缘设备,与CE相连,主要负责VPN业务的接入。它完成报文从私网到公网隧道和报文从公网隧道到私网的映射与转发。在分层VPLS(H-VPLS)体系结构下,PE可以细分为UPE和NPE。
l UPE:面向用户网络的PE设备,用于连接CE设备与服务商网络,主要作为用户接入VPN的汇聚设备,为用户提供接入服务。
l NPE:处于VPLS网络的核心域边缘,在核心网上提供VPLS透明传输服务。
l 服务界定符:服务提供商加在用户数据帧前用来标识特定VPN的报文标识符,服务界定符只具有本地意义,服务界定符的典型例子是QinQ的外层TAG。
l QinQ(802.1Q in 802.1Q):一种基于802.1Q封装的隧道协议,能够提供点到多点的L2VPN服务机制。它将用户网络的VLAN TAG封装在公网VLAN TAG中,最终报文带着两层TAG穿越服务提供商的骨干网络,从而为用户提供一种较为简单的二层VPN隧道。
图2 VPLS网络架构
如图2所示,VPLS网络主要包括以下几个重要的组成部分:
l AC:接入电路,用户与服务提供商之间的连接,即连接CE与PE的链路。对应的接口只能是以太网接口。
l PW:虚链路,两个PE设备上的VSI之间的一条双向虚拟连接。它由一对方向相反的单向的MPLS VC(Virtual Circuit,虚电路)组成,也称为仿真电路。
l Tunnel:隧道,用于承载PW,一条隧道上可以承载多条PW。隧道是一条本地PE与对端PE之间的直连通道,完成PE之间的数据透明传输,可以是MPLS或GRE隧道等。
l PW Signaling:PW信令协议,VPLS实现的基础,用于创建和维护PW。PW信令协议还可用于自动发现VSI的对端PE设备。目前,PW信令协议主要有LDP和BGP。
l VSI:虚拟交换实例,VPLS实例在一台PE设备上的一个以太网桥功能实体,根据MAC地址和VLAN TAG进行二层报文转发。
PW是VPLS在公网上的通信隧道,它建立在MPLS(包括普通LSP和CR-LSP)或GRE等隧道之上。创建PW需要:
(1) 首先在本端和对端PE之间建立MPLS或GRE等隧道。
(2) 确定对端PE的地址。对于同一个VSI内的PE设备,可以通过手工配置来指定对端PE地址,也可以通过信令协议自动发现对端PE。
(3) 利用LDP或BGP信令协议为PW分配多路复用分离标记(VC标签),并将分配的VC标签通告给对端PE,建立单向的VC,从而创建PW。如果PW建立在MPLS隧道之上,则PW上传输的报文将包括两层标签:内层标签为VC标签,用来判断报文属于的VC,从而将报文转发给正确的CE;外层标签为公网MPLS隧道标签,用来保证报文在MPLS隧道上的正确传输。
下面将分别介绍通过两种信令协议(LDP和BGP)创建PW的过程。
采用扩展LDP(远端LDP会话)作为PW信令协议的VPLS,称为Martini方式的VPLS。

图3 利用LDP信令协议建立PW
如图3所示,利用LDP信令协议建立PW的过程为:
(1) PE和特定的VSI关联后,采用LDP的DU(Downstream unsolicited,下游自主)方式主动向对端PE发送标签映射消息,该消息中包含PWID FEC和与该PWID FEC绑定的VC标签,以及接口参数(如最大传输单元等)。
(2) 如果对端PE和这个特定的PWID关联,它将接受标签映射消息,并回应自己的标签映射消息。
(3) 一对单向的VC建立成功后,它们组合起来形成双向的PW,这个双向的PW可以看作是VSI上的一个虚拟以太网接口。
Martini方式实现简单。但是LDP不能提供VPLS成员的自动发现机制,需要手工指定PE的各个对等体。新的PE加入时,每个PE上都要修改配置。
采用扩展BGP作为PW信令协议的VPLS,称为Kompella方式的VPLS。

图4 利用BGP信令协议建立PW
如图4所示,利用BGP信令协议建立PW的过程为:
(1) PE利用BGP的Update消息向所有对端PE设备发送VE ID和标签块信息。其中,VE ID为与PE相连的每个Site在VPN内的唯一编号,由服务供应商统一规划;标签块包含一组连续的标签。
(2) 接收到Update消息的PE设备,根据自己的VE ID和报文中的标签块,计算出唯一的一个标签值,作为VC标签。同时,接收Update消息的PE设备,根据报文中的VE ID和本地的标签块,也可以得知对端PE的VC标签值等信息。
(3) 两个PE设备互相发送Update消息,并计算出VC标签后,两台设备间的PW创建成功。
Kompella方式中,通过配置VPN Target实现了VPLS成员的自动发现,增加或删除PE时,无需手工配置,具有较好的可扩展性,但BGP协议本身比较复杂。
AC上的报文封装方式分为两种:VLAN接入和Ethernet接入。其含义如下:
l VLAN接入:CE发送给PE或PE发送给CE的以太网帧头带有一个VLAN TAG,该TAG是一个服务提供商网络为了区分用户而压入的“服务界定符”。服务界定符一般是服务提供商设备添加的,我们把这个作为服务界定符的TAG称为P-TAG。
l Ethernet接入:CE发送给PE或PE发送给CE的以太网帧头中没有服务界定符,如果此时帧头中有VLAN TAG,则说明它只是用户报文的内部VLAN TAG,对于PE设备没有意义。这种用户内部VLAN的TAG称为U-TAG。
PW由PWID和PW封装类型唯一标识。两端PE设备通告的PWID和PW封装类型必须相同。
PW上的报文封装方式分为两种:Raw模式和Tagged模式。
l Raw模式下,PW上传输的帧不能带P-TAG:对于CE侧的报文,如果收到带有服务界定符的报文,则将其去除后再压入PW标签和隧道标签后转发;如果收到不带服务界定符的报文,则直接压入PW标签和隧道标签后转发。对于PE侧的下行报文,根据实际配置选择添加或不添加服务界定符后转发给CE,但是它不允许重写或去除已经存在的任何TAG。
l Tagged模式下,PW上传输的帧必须带P-TAG:对于CE侧的报文,如果收到带有服务界定符的报文,保留P-TAG,或者将P-TAG改写为对端PE期望的VLAN TAG或者空TAG(TAG值为0),再压入PW标签和隧道标签后转发;如果收到不带服务界定符的报文,则添加一个对端PE期望的VLAN TAG或空TAG后,再压入PW标签和隧道标签后转发。对于PE侧的下行报文,根据实际配置选择重写、去除或保留服务界定符后转发给CE。
VPLS为用户网络模拟了一个以太网桥,基于MAC地址或者MAC地址加VLAN TAG来做出转发决策。跟一个特定的VPLS服务关联的每个PE设备都为该VPLS实例建立一个VSI,每个VSI维护一张MAC地址表,并具有泛洪和转发、MAC地址学习和老化的功能,以便实现报文的转发。
VPLS中的数据转发是通过查找VSI的MAC地址表来完成的。
如果PE从VSI的一个AC上收到目的MAC未知的单播报文(在VSI的MAC地址表中未找到匹配的MAC地址的单播报文)、组播报文或广播报文时,PE将向该VSI内所有连接本地CE的AC和连接远端VSI的PW泛洪。
如果PE从PW上收到目的MAC未知的单播报文、组播报文或广播报文时,则只向该VSI内的连接本地CE的AC泛洪,而不再向连接其他远端VSI的PW泛洪。
MAC地址学习过程包含两部分:
l 与PW关联的远程MAC地址学习
PW是由一对单向的VC LSP组成(只有两个方向的VC LSP都up才被认为PW是up的)。当在入方向的VC LSP上学习到一个原来未知的源MAC地址后,PE设备将源MAC地址学习到收到该报文的PW(虚拟的以太网接口)上,也就是将MAC地址与出方向的VC LSP建立对应关系。
l 与用户直接相连端口的本地MAC地址学习
对于从CE上收到的报文,需要将报文中的源MAC地址学习到与CE直连的以太网接口上。
PE的MAC地址学习与泛洪过程如图5所示。

图5 MAC地址学习
PE学习到的MAC地址转发表项如果不再使用,需要有老化机制来移除。老化机制根据报文中的源MAC地址进行处理:PE收到报文时,除了学习源MAC地址外,对于已经生成的MAC表项,还需要设置“激活”或者“有效”标记,一定时间内未被设置“激活”或者“有效”标记的MAC表项,将从MAC转发表中移除。
为了避免环路,一般的二层网络都要求使能STP协议。但是对使用VPLS的用户来说,不会感知到ISP的网络,因此在私网侧使能STP的时候,不能把ISP的网络考虑进来。因而,VPLS中使用PW全连接和水平分割转发来避免环路。
VPLS环路避免的方法如下:
l PE之间逻辑上全连接(PW全连接),也就是每个PE必须为每一个VPLS转发实例创建一棵到该实例下的所有其他PE的树。
l 每个PE设备必须支持水平分割转发来避免环路。如果从PW上收到报文,那么这个报文将不再向这个VSI关联的其它PW上转发,也就是说要求任意两个PE之间通过直接相连的PW通信,而不能通过第三个PE设备中转报文,这也就是VPLS的VSI实例之间要求建立全连接PW的原因。
根据AC接入方式和PW上报文封装模式的不同,报文转发分为以下四种:
l Ethernet接入Raw模式的报文转发
l Ethernet接入Tagged模式的报文转发
l VLAN接入Raw模式的报文转发
l VLAN接入Tagged模式的报文转发

图6 Ethernet接入Raw模式的报文转发过程
如图6所示,AC采用Ethernet接入方式,PW上的报文封装模式为Raw模式时,报文的转发过程为:
(1) CE 1将携带用户所属VLAN信息(U-Tag)的报文发送给PE 1。
(2) PE 1根据用户目的MAC地址(或用户所属的VLAN和目的MAC地址),选择合适的PW,并在报文中添加PW对应的VC标签。
(3) 为了在公网上利用MPLS隧道转发报文,PE 1在报文中添加公网隧道标签,通过公网隧道将报文传递给PE 2。
(4) PE 2收到报文后,根据VC标签找到报文所属的VSI,并将携带U-TAG的报文发送给CE 2。

图7 Ethernet接入Tagged模式的报文转发
如图7所示,AC采用Ethernet接入方式,PW上的报文封装模式为Tagged模式时,报文的转发过程与Ethernet接入方式、Raw模式的报文转发过程类似。所不同的是,PW上传输的帧必须带P-TAG。PE 1从CE 1收到不带P-TAG的报文后,首先添加一个对端PE期望的VLAN TAG或空TAG,再压入两层MPLS标签转发。PE 2接收到报文后,去除MPLS两层标签和P-TAG,再将报文转发给CE 2。

图8 VLAN接入Raw模式的报文转发
如图8所示,AC采用VLAN接入方式,PW上的报文封装模式为Raw模式时,报文的转发过程为:
(1) CE 1发送的报文携带服务界定符P-TAG;
(2) PE 1接收到报文后去除P-TAG,并添加两层MPLS标签,通过公网MPLS隧道,将报文发送给PE 2;
(3) PE 2去除接收到报文中的两层MPLS标签,增加P-TAG后,将报文转发给CE 2。

图9 VLAN接入Tagged模式的报文转发
如图9所示,AC采用VLAN接入方式,PW上的报文封装模式为Tagged模式时,报文的转发过程与VLAN接入方式Raw模式的报文转发过程类似。二者的区别是,PW上传输的帧携带P-TAG,PE接收到报文后,修改或保留报文中的P-TAG。
如上文所述,VPLS要求PE之间全连接,因此一个VPLS实例的PW的条数跟PE设备的个数之间的关系是:PW的条数=PE的个数×(PE的个数-1