MPLS L2VPN VPWS的实现方式 下载本文

www.xahztx.com

图1-4 Martini支持的拓扑模型

VPN1Site1PCEPE1ISP NetworkPPE2CEVPN1Site2Site1PPSite2CEVPN2VPN1 Remote ConnectionVPN2 Remote ConnectionCEVPN2

对于图1-4中,VPN1的Site1和Site2,通过Martini远程连接(红色虚线)互连。VPN2的Site1和Site2,也通过Martini远程连接(蓝色虚线)互连。VPN1和VPN2在ISP的网络里分别通过两条不同的LSP互联,也可以复用一条LSP,通过一条LSP进行互联。

Martini方式的报文交互过程

图1-5 Martini的报文交互过程

VPN1Site110003000CE100040001001300010014000PPE1ISP NetworkPPE21002300010024000VPN1Site2VLAN20CEVCI100PPVCI209Site1VLAN20Site2CEVPN210ANVL200235002002450020ANVLCEVPN24I10VC5I20VC20013500200145002000350020004500Site1 to Site2Site2 to Site1

如图1-5所示,Martini的报文交互过程分为从Site1到Site2和从Site2到Site1。

?

从Site1到Site2

VPN1的Site1中发送到PE1的VLAN10的报文,在到达PE1后,PE1先打上VC Label=3000,然后再打上LSP1的出标签1000,即进入LSP1隧道(红色虚线);对于VPN2的Site1发送到PE1的VCI=100的ATM报文,PE1在其上打上VC Label=4000,然后再打上LSP1的出标签1000,同样进入LSP1隧道(红

www.xahztx.com

色虚线)。

这些报文在到达PE2后,PE2去掉LSP1的入标签1002,根据内层VC Label=3000,选择到VPN1的Site2的出接口;根据VC Label=4000,选择到VPN2的Site2的出接口。因为VC Label(3000、4000)是Egress PE2在建立各自VC时,通过LDP信令传给Ingress PE1的。 从Site2到Site1

VPN1的Site2中发送到PE2的VLAN20的报文,在到达PE2后,PE2先打上VC Label=3500,然后再打上LSP2的出标签2000,即进入LSP2隧道(蓝色虚线);对于VPN2的Site2发送到PE1的VCI=205的ATM报文,PE2在其上打上VC Label=4500,然后再打上LSP2的出标签2000,同样进入LSP2隧道(蓝虚线)。

这些报文在到达PE1后,PE1去掉LSP1的入标签2002,根据内层VC Label=3500,选择到VPN1的Site1的出接口;根据VC Label=4500,选择到VPN2的Site1的出接口。因为VC Label(3500、4500)是Egress PE1在建立各自VC时,通过LDP信令传给Ingress PE2的。

从上面的交互过程中,我们可以看到,外层的LSP隧道是被共享的。PE2收到报文后会根据内层标签的不同映射到不同的VC上。

在Martini方式中,由于在运营商网络中,只有PE设备需要保存VC Label和LSP的映射等少量信息,P设备不包含任何二层VPN信息,所以扩展性好。此外,当需要新增加一条VC时,只在相关的两端PE设备上各配置一个单方向VC连接即可,不影响网络的运行。

与Kompella方式相比,Martini使用LDP作为信令而不是使用BGP作为信令,不依赖于定时刷新机制,所以对故障的感知速度要快。

Martini方式适合稀疏的二层连接,例如星型连接。

VC标签的交互信令

前面已经提到过Martini方式对传统的LDP做了扩展,用于交互VC的信息,也就是传递VC标签。 Martini方式中,如果要在PE间配置一条VC连接,只需在相关的两个PE上各配置一个单向连接即可。当PE与CE相连的接口变为UP状态后,如果存在从本端PE到对端PE的LSP,则本地PE通过LDP向对端发送一个Label Mapping消息,在此Label Mapping消息中携带新定义的VC FEC,此VC FEC描述了CE接口的类型、使用的内层VC Label以及接口的参数等信息。当前定义的接口参数有:MTU、最大可拼接的ATM信元数、接口描述等。

在LDP会话中VC FEC出现在标签映射消息中,图1-6是一个标签映射消息的结构。

www.xahztx.com

图1-6 LDP的标签映射消息

00Label Message(0x0400)Message ID00FEC TLV(0x0010)VC TLV(0x80)cVC TypeGroup IDVC IDInterface Parameters00Generic Label(0x0200)LabelOptional ParametersLengthLengthVC Info Length15Message Length31

Martini方式在PE间建立扩展的远程LDP会话,通过会话来交互VC信息。为了交互VC信息,增加了新的FEC的定义,新的FEC类型为128。图1-7是VC FEC结构。

图1-7 128类VC FEC结构

0VC TLV(0x80)78cVC TypeGroup IDVC IDInterface Parameters23VC Info Length31

在128类FEC类型里,Interface Parameters是长度是不确定的,其长度信息包含在VC Info Length里。

表1-1 128类VC FEC报文字段描述 字段名 VC TLV C 含义 VC的TLV值 控制字 位数(bit) 8 1 说明 取值为0x80,即十进制的128。 1表示支持控制字;0为不支持控制字。 类型包括FR、ATM、VLAN、Ethernet,PPP和HDLC。 VC ID和interface parameters的长度。 VC Type VC类型 15 VC Info Length VC信息长度 8

www.xahztx.com 字段名 Group ID 含义 组ID值 位数(bit) 32 说明 一些VC组成一个组,主要用来批量撤消相应的VC信息。 VC ID值,一个VC是由VC ID和VC Type来唯一确定。 一些接口参数值,常用的是接口的MTU值。 VC ID VC的ID值 32 Interface Parameters 接口参数 不确定

Martini方式通过VC Type + VC ID来区分不同的VC,在Interface parameters部分描述了与CE连接的接口以及MTU等其它一些信息。128类VC FEC报文就封装在本地PE通过LDP向对端发布的Label Mapping消息中。

五.Kompella方式MPLS L2VPN

Kompella方式

Kompella方式的L2VPN与RFC2547定义的三层BGP/MPLS VPN很相似,是使用BGP作为交换信令。与MPLS L3 VPN类似,各个PE之间通过建立BGP会话自动发现L2 VPN的各个节点,使用BGP作为传递二层信息和VC标签的信令协议,在MPLS网络上以端到端(CE到CE)方式实现L2VPN。类似于BGP/MPLS VPN,Kompella方式也使用VPN Target来进行VPN路由收发的控制,给组网带来了很大的灵活性。 与Martini完全不同的是这里出现了真正VPN的概念,在不同的VPN内,CE ID是可以相同的,但是同一VPN的CE ID必须唯一。Kompella方式的MPLS L2VPN不直接对CE与CE之间的连接进行操作,而是在整个运营商网络中划分不同的VPN,在VPN内部对CE进行全局编号。

在内层标签的分配上,Kompella方式与Martini方式完全不同。Kompella采取标签块的方式,事先为每个CE分配一个标签块,这个标签块的大小决定了这个CE可以与其它CE建立多少个连接。这样做的好处是允许为VPN分配一些额外的标签,留待以后扩容使用。PE根据这些标签块进行计算,得到的实际的内层标签,用于报文的传输。

无论是使用Kompella方式还是Martini方式,二层报文传递时的MPLS封装是完全相同的,都是二层标签。另外,Kompella支持本地连接。

要建立两个CE之间的连接时,需要在PE上设置本地CE和远程CE的CE ID。 Kompella方式支持本地连接和远程连接;并支持下述两种方式的跨域L2VPN: Multi-Hop方式:采用BGP标签路由。

VRF-to-VRF方式:在ASBR上保存标签块。

标签块

Kompella方式采用标签块(Label Block)分配标签,一次为多个连接分配标签。 用户可以指定一个本地CE的范围(CE range),表明这个CE能与多少个CE建立连接。系统一次为这个CE分配一个标签块,标签块的大小等于CE range。这种方式允许用户为VPN分配一些额外的标签,短期可能会造成标签资源的浪费,但能够减少VPN扩容时的配置工作量。

假设一个企业的VPN包括10个CE,考虑到企业扩展业务,将来可能会有20个CE。这时,可以把每个