从上图中看出,复用层可采用的适合协议有L2TPv3和MPLS。但选择MPLS更具现实意义。 一个MPLS标记可被用做为一个“垫片(shim)”来标识特定的 PW,即VC标记。
在IETF标准范围内有三种可选的 PSN 类型,即 IPv4、IPv6和MPLS。IPv4和 IPv6这两个基础协议提供了必要的交换、长度处理和分片(fragmentation)能力,并可支持所有以此为基础的协议。L2TP3是特定地直接运行在IPv4和IPv6之上。因此当选择PSN 是IPv4 或IPv6时,则无需PSN汇聚层的出现。
MPLS提供了交换功能,但不提供长度操作和分片功能。因此,当选择MPLS做为PSN时,在封装层就必须提供长度操作和分片处理的功能。 在实施时,该功能的完成是借助一PW-PDU前的一控制字来实现。该控制字的格式如下:

多协议标记交换(MPLS)的一个突出优点是在一个公共包交换平台上提供虚拟专网的连通性。借助MPLS平台所提供的第一种VPN业务是第3层VPN,遵循RFC2547或RFC2764标准。目前,运营商迫切需要将VPN的连通性扩展到第2层,便于提供新业务,节省投资,集成多业务功能并可以在一个统一的核心网络中同时开展层3和层2 VPN业务。
IETF PWE3工作组制定的两个Martini标准涉及到了点到点L2VPN的内容。其中,Draft-martini-l2circuit-trans-mpls描述了标记分配机制,而draft-martini-l2circuit-encap-mpls则描述了所仿真VC的封装机制。
按照Martini设计的方式,L2VPN是使用一个PE间的直联标记分发协议(LDP)会话来建立和保持连接。转发是通过在PE路由器间的标记交换来实现的。两级标记的采用是为了具有更好的可扩展性。外部标记被称为“隧道标记”。这一标记是让MPLS骨干网用来完成至出口PE的包转发。内部标记则用来决定输出接口和对应电路,称为“虚电路标记(VC Label)”,它完成了层2输出接口至一虚电路(仿真VC)的绑定。所有的虚电路标记绑定是通过两个PE路由器间的单一的LDP会话来互换信息的。在具体实现上是利用了LDP标记映射信息中虚电路转发等效类(FEC元素类型128)做为传递信息手段。通过LDP的“下游主动模式”来完成PE对之间VC标记的动态建立和信息互换。
在Martini设计方式中,L2 VPN网络参考模型严格遵循了伪线的设计思想。
伪线(PW)提供了下列功能以仿真所需服务的行为和特性。
- 对到达入口(逻辑的或物理的)处的业务特定PDU或电路数据进行封装。
- 承载封装好的数据穿过一事先建立好的隧道。
- 在伪线边界处管理信令、定时、顺序或业务的其它方面。
如下图所示, PW在CE之间提供了一个仿真业务。

从实现的角度出发,隧道头字段是以MPLS标记的形式加以实现的。这一隧道标记的获得是相对独立的。例如从LDP中学到。完成数据帧从入口PE传输到出口PE即要使用此隧道标记,因此它是MPLS域中的外层标记。除了这一标记外,紧接下来添加了一层去复用字段(Demultiplexer Field)。这一层是为进行业务息分,增强可扩展性。在实现中体现为一个VC标记(VC Label)。这一VC标记是通过PE路由器间运行的一个直联LDP会话(Directed LDP Session)来学到的。
这一VC标记被承载在LDP标记映射消息的通用标记TLV中。为此定义了一个新的LDP FEC元素,用来承载与此VC相关的必要信息。它使用FEC元素类型 ‘128’来代表虚电路FEC元素,也在LDP标记映射消息中加以承载。VC信息是以下游主动标记分发的方式来进行互换的。

VC类型是一个比特量值,代表了VC的类型。分配值为:
|
VC Type |
Description |
|
0x0001 |
Frame Relay DLCI |
|
0x0002 |
ATM AAL5 VCC transport |
|
0x0003 |
ATM transparent cell transport |
|
0x0004 |
Ethernet VLAN |
|
0x0005 |
Ethernet |
|
0x0006 |
HDLC |
|
0x0007 |
PPP |
|
0x0008 |
CEM |
|
0x0009 |
ATM VCC cell transport |
|
0x000A |
ATM VPC cell transport |
VC类型的最高阶比特被用来标志控制字的出现,具体操作是:比特15 = 1 代表控制字出现在这一VC上;而bit 15 = 0代表没有控制字出现在这一VC上。
VC信息长度代表了VC ID字段和接口参数字段的长度,单位按字节数计算。如果该值为0,则它代表了使用特定组ID的所有VC,并包括了没有VC ID出现也没有任何接口参数的情况。
设置组ID的目的是用来做为一个端口索引,或一个虚拟隧道索引。为简化配置,入口路由器上的一特定VC ID是传输至出口路由器虚拟通道的一部分。 组ID是非常有用的,用于在遇到物理端口失败时向远端LSR发送通配的标记撤销指令。
VC ID是一个非零的32比特连接ID。它与VC类型结合在一起共同标识一个VC。
接口参数(可变长度值)用来提供接口特定参数,如接口MTU。这一字段规定了接口特定参数。如果应用的话,必须使得LSR及电路两端边界的入口和出口具有彼此间相互协商的必要能力。这一字段结构定义如下:

有关参数ID,定义如下:
|
参数ID |
长度 |
描述 |
|
0x01 |
4 |
以字节为单位的接口MTU |
|
0x02 |
4 |
级联ATM信元的最大数目 |
|
0x03 |
最多82 |
可选的接口描述串 |
|
0x04 |
4 |
CEM载荷字节 |
|
0x05 |
4 |
CEM选项 |
长度字段被定义为接口参数的长度,它包括了参数ID和长度字段本身,单位为字节。
接口MTU是一个2字节的值,以字节为单位指示了MTU。它代表了最大传输单元,不包括封装开销。出口分组接口发送从MPLS网络接收到的去封装的PDU。这一参数仅适用于VC类型1、2、4、5、6和7。而且对这些类型而言是需要的。如果这一参数对一特定VC而言不能在其两个方向上匹配的话,则该VC不能被使能。
级联ATM信元的最大数目是一2个字节的值,它规定了可以被出口LSR当做一个单一的PDU加以处理的级联ATM信元的最大数目。一个在这一VC上发送级联信元的入口LSR能够级联多至这一参数值的信元,但不能超这一参数值。 这一参数仅适用于VC类型3、9和0x0a,对这些VC类型而言这一参数要求有的。这一参数无需在特定VC的双向上匹配。
载荷字节是一个2字节的值,用来指示CEM流中所有分组包含的TDM载荷字节数,数目为从48字节到1023字节。在一给定的CEM流中的所有分组均具有相同数目的载荷字节数。.
一个LDP标记映射互换过程如下图所示:

在获得了隧道标记和VC标记之后,接下来要完成的是封装转换,即把第2层的载荷转变为可传送的MPLS的帧。在完成这一任务时需考虑三个因素:保持传送包的序列完整性、对于小包应加以填充(前提是介质的最小MTU大于实际包尺寸的话)、在第2层帧头有时需传送控制比特,因为MPLS未提供长度处理和分片技术。在形成了MPLS网络中PE间的外层隧道标记和内部VC标记后,即可以通过针对不同L2技术如ATM、FR、Eth、PPP与MPLS帧间的封装转换来完成跨MPLS平台的传输。
三、 MPLS L2 VPN的一种现实应用-VPLS
就目前营运商的网络构成而言,利用MPLS平台对外开展ATM、FR和TDM的L2 VPN的实际需求并不是十分强烈,原因是国内大的电信营运商已建成的ATM网络工作良好,且均经过新的扩容,可以提供ATM、FR和TDM的L2 VPN。
实际上,目前电信营运商更为迫切需求的是在城域或广域范围内提供透明LAN服务(TLS)。这种服务又称之为VPLS(Virtual Private LAN Service)。VPLS仿真了IEEE 802.1D桥接功能。在业务提供上是要满足可扩展性、简单的配置和管理、运行要求。
针对应用规模,VPLS存在两种模型:一种是非分布式模型,即MAC学习和转发均是在PE中进行的;另一种模型是分布式模型,即MAC学习和转发在接入网络中是分解的。对于营运规模比较大的VPLS网络,应采用第二种模型-分解模型(Decoupled Model)。这种分解模型的核心思想如下:
l PE-Edge(PE边界设备)负责MAC学习,PE-Core(PE-核心设备)不再重复此工作。
l 在PE-Edge设备之间无需全网状的目标LDP会话。在PE-Edge和PE-Core之间只有一个LDP会话。
l 简化可管理性和配置工作量。简化故障查找的过程。
l 在PE-Edge中只需最小的协议栈,而无需OSPF-TE和RSVP-TE等协议。

在PE-Edge中内置有VB(Virtual Bridge)。它负责学习本地以太帧和来自远端以太帧的源MAC地址(依照每个Attachment-VC)。
依据上面的VPLS组网示意图,为了转发用户的数据流至远端VPLS端点的话,针对每个终结于那一VB的Attachment-VC,VB学习相应的源和目的MAC地址。在PE-Core中,用户数据流会被转发至VPLS Port(VP)。在PE-Core中完成Attachment-VC至VPLS-VC的切换。这一切换过程可以依据VC标记、VC标记和目的MAC地址的结合或仅借助于目的MAC地址。
在LDP DU(下游主动分发)信令过程中,VPLS port将利用Attachment-VC标记来指示出远端PE-Edge-ID,利用VPLS-VC标记(从远端PE-Core学到)指示出相同的PE-Edge-ID。在PE-Core中无需进行MAC学习和转发。
利用这种VPLS应用模式可方便地开展集团客户分公司间跨城域或广域的大批量数据传输,而对营运商而言,其配置工作量相比L3 VPN要少。而且用户路由信息将不在营运商网络中出现,更容易向客户提供SLA服务,运维可靠性得以提高。
四、 MPLS L2 VPN业务实施的难度
MPLS L2 VPN的业务实施难度取决于其设计过程。一个典型的设计过程如下:
l 确定位置并设计业务呈现点(PoP)。
l 规划与应用相关的网络中的骨干物理链路
l 设计IP路由。
l 规划MPLS标记空间
l 进行MPLS流量工程配置,构建外层隧道(Tunnel)。
l 进行L2 VPN的相关配置。
l 网络运行起来后的精细调整。
从上面所列步骤可以看出,由于MPLS仍需路由协议的支持,因此MPLS运行之前首先要配置IGP协议,如OSPF或IS-IS。此外,MPLS跨AS的配置工作也较为复杂。MPLS TE也需额外配置。因此开展MPLS L2 VPN的配置工作量并不比IP-over-ATM节省。因此从营运商的角度出发,需要有可靠的VPN管理配套工具才能方便地开展和运维此项新的增值业务。
五、 运维可靠性保证
由于VPLS是借助于MPLS的平台,因此开展这种业务时可充分利用MPLS平台的优势,即通过预先建立的回复路径(restoration path)及快速重路由(fast-re-routing)来提高企业客户数据帧的可靠性。此外营运商自身可以具备增强的SLA管理能力,具体体现为:为无连接的业务提供面向连接的通道;提高流量工程提高业务规划和运行能力;自动路径发现能力简化配置工作量。
从服务质量的角度讲,对于一个以太802.1q VLAN而言,整个的以太帧(去除了前导序列和FCS)将被做为一个单独的包。入口路由器可以考虑VLAN标志头中的用户优先级。这一优先级可被植入到选定封装协议的QoS字段(例如MPLS标记栈中的EXP字段)。类似地,出口路由器在进行出口包排队时也可以考虑封装协议的QoS字段。具有原始错误的以太包必须在输入端被丢弃。
在封装转换包在MPLS核心平台上传送时,必须确保针对不同用户需求的服务质量保证