网络通信 频道

基于MPLS网络的LDP-VPLS组网方案

一、引言
  MPLS是下一代宽带互联网技术的发展方向,它基于标签交换并且能有效利用基于IP交换的设备。在MPLS的核心,它使用硬件设备来转发分组,从而提供速度更快、功能更完善以及扩展性更高的服务。它消除了在IP和ATM之间过多的复杂映射而且更好地支持了传统IP路由技术难以支持的QoS业务。相对IP协议基于目的地址的路由,MPLS提供基于多种因素的路由,从而更好地满足流量工程的需要。
  随着互连网和企业内部网的不断发展,将分散的网络在逻辑上整合成一个大型专用网的业务需求越来越强烈,虚拟专用网(VPN)技术因此应运而生。经过近20年的发展,基于第三层的 VPN已日渐成熟。但这种技术存在明显的不足,即运营商需要介入客户的路由计划,导致客户不能自行决定网络层,从而带来了维护和应用的困难。为了解决上述问题,IETF提出了基于MPLS的二层VPN技术——虚拟专用局域网业务(VPLS),并征集草案准备将这一技术标准化。需要指出的是目前VPLS的局域网特指以太网,它结合了MPLS和以太网的双重优点,是透明的、与网络层协议无关的服务,并支持从64 kbps到1 Gbps的带宽为客户提供服务。VPLS使得用户可以直接用以太网端口来接入广域网,并且可以自行配置网络层,这一切都使得利用VPLS构建的虚拟专网安全性更高、维护更方便。
  IETF目前一共收到了3份VPLS草案,它们主要的区别在于信令及组网结构的不同,简称为LDP草案、BGP草案和RADIUS草案,其中LDP草案提出最早并且已经得到众多厂商的支持。本文将详细讨论MPLS网络中基于LDP信令的 VPLS的核心技术:虚电线 (Pseudo Wire)、标签分布协议(LDP)以及VPLS的实现与组网。对基本的MPLS技术本文不作详细讨论,相关术语及原理可参考文献[1]、[2]。

二、MPLS网络中实现VPLS的关键性技术
1. 虚电线(Pseudo Wire)原理
  一条虚电线由一收一发2条虚电路(Virtual Circuit)构成,它的功能是将所有的广播(broadcast)帧和跨局域网的单播帧、组播(multicast)帧从一个局域网转发到另一个局域网,使得其所连接两个局域网在数据链路层上被整合。
  以太网虚电线技术的核心是帧的封装及其在MPLS网络中的传输控制。Martini等人编写的IETF草案[3]对含以太网在内的多种局域网帧的封装给予了建议。一般地,以太网数据帧可以归为2类,即普通以太网帧和带VLAN标签的以太网帧。对于普通以太网帧,封装格式如图1所示。其中隧道标签(tunnel label)用于在MPLS网络中标识一条确定的标签交换路径(LSP),该标签实际上是由MPLS网络为一个等价转发类(FEC)自动分配的标签。如果帧需要经过几个MPLS域,隧道标签将多于一个。由于同一隧道上可以承载多条虚电路,而不同虚电路上的流量在到达接收端服务提供商边缘(PE)设备后必须加以区分,然后转发给相应的用户。因此与一般的MPLS流量不同,虚电路上的流量需要增加一个标签来标识其虚电路ID。隧道标签与虚电路标签均在发送端 PE处被封装,但隧道标签在MPLS网络中可能被逐跳修改,而虚电路标签则一般维持不变直到帧到达接收端PE。在帧到达接收端PE后,隧道标签首先被剥离,然后,根据虚电路标签的值,转发帧到相应以太网端口。

  有时需要借助虚拟局域网(VLAN)标签来将一个物理上联通的局域网划分成若干逻辑上独立的虚拟局域网[4]。如果VLAN标签是由客户定义的,即该标签由客户设备封装,那么含此类VLAN标签的帧的封装与普通帧一致。但虚电路标签封装在VLAN标签之外,且VLAN标签在接收端PE处不被剥离,而是直接被发送到客户局域网。另一种情况是,不同客户的局域网连接到了同一PE上,为了区分这些不同客户,需要由服务提供商来定义VLAN标签,这类标签称为服务划分(service-delimiting)标签。对于服务划分标签,Martini草案定义了2种数据处理模式。一种是擦除模式(raw mode),即在帧被送往虚电路发送之前,剥离其所有服务划分标签后再封装虚电路标签与隧道标签。另一种是追加模式(tag mode),即对不含服务划分标签的帧先封装一个服务划分标签,然后封装虚电路标签与隧道标签。由于服务划分标签只被发送端PE设备区用来区分不同客户,因此采用擦除模式或追加模式都不会对虚电路的接收产生影响。
  用一收一发两条虚电路连接两个远程局域网便定义了一条虚电线。发送端PE利用 LDP信令建立隧道、虚电路及学习接收端局域网内的MAC地址集,并转达给本地CE,使得CE能够根据MAC地址将响应的帧提交PE转发。对于不能判定目的地址归属的单播帧、多播帧和所有的广播帧,发送端CE设备将在局域网内广播,发送端PE设备收到这类帧后则默认转发至接收端PE设备。因此保证了目的地址未知的帧不会被系统丢弃,其代价是损失了带宽。
2.基于标签分布协议(LDP)的VPLS信令分析
  本节将主要讨论在MPLS网络中使用LDP建立标签交换路径(LSP)、虚电路及PE间MAC地址学习和维护的机制。
  (1)LDP邻机发现机制
  两个运行LDP的相邻路由器构成邻机。如果两个路由器中的多个接口互相连接,那么每对接口构成一对邻机。LDP邻机发现机制能够使PE发现潜在的LDP 同位体,那么就没有必要去明确地配置PE的标签交换同位体,从而降低了网络的复杂性。LDP的发现协议运行于UDP之上。如果所有的路由器都位于一个子网内,那么标签交换路由器(LSR)就周期性地组播一个HELLO消息给一个UDP端口,所有的LSR都在这个端口上侦听这个HELLO消息。因此,LSR 将发现与它直接相连的所有其它LSR。当LSR通过这种机制获悉了另一个LSR的地址时,这两个LSR之间就会建立一个TCP连接(LDP使用TCP作为可靠传输协议。当两个PE需要多个LDP会话时,每一个LDP会话将拥有一个TCP会话),那么一个双向的LDP会话就可以在这两个LSR之间建立。如果多个LSR没有直接连接于一个公共的子网,那么附加的发现机制也能够使得LSR彼此发现对方。在这种情况下,LSR周期性地单播HELLO消息给某个特定 IP地址上的UDP端口,而这个特定的IP地址必须通过其他途径获得。HELLO消息的接收者通过单播返回另一个HELLO消息给初始的LSR,那么便可以象前面所述的那样建立会话。
  (2)LDP的会话和信令
  如前所述,为了建立外部隧道的全网格,PE设备使用目的UDP端口来确定邻机,建立LDP会话和TCP会话,然后通过LDP请求和LDP映射消息来建立一个LSP。接下来我们详细分析LDP会话和信令。
  一个LDP标签映射消息包含一个FEC类型长度值(TLV),一个标签类型长度值(TLV)和零值或者更多的可选参数的类型长度值(TLV)。在 VPLS中,一个LDP标签映射消息携带VPLS的信息,其中包括如图2所示的虚电路FEC的类型长度值(VC FEC TLV)。FEC TLV用来说明标签的含义。LDP允许每个FEC TLV包含一组FEC要素。但是为了建立和维护虚电线,每个FEC TLV必须正确地包含一个FEC要素[5]。 

  VPLS服务需要定义一个虚电路标识符(VCID),用来鉴别一个模拟的局域网段,它是一个非零32位长的连接标识符。VCID和VC类型一起标识一个点对点虚电线的服务。基于VCID FEC,虚电线的两个端点都独立地建立单向VC LSP,它在VPLS的环境中起始并中止于两个局域网的以太网端口, 这样就在所有的局域网间形成了一个逻辑桥(bridge),使得VPLS服务类似于IEEE 802.3 标准规定的学习桥接一样,即构成了一个“虚拟专用局域网”。
  (3)MAC地址学习
  VPLS桥接功能之一就是MAC地址学习。以太网的一个特征是所有的广播帧和未知目的地址的帧都会被扩散到所有的端口。为了在VPLS里实现地址扩散,所有未知地址的单播、广播和组播帧将被扩散到相应的虚电线,从而到达VPLS中相应的PE节点[6]。
  举例来说,如图3所示,首先PE1获悉VPLS100中某个终端的MAC地址为X,并且依附于本地端口1,然后PE1将此信息广播给PE2和PE3,让PE2和PE3获悉在VPLS100内,MAC地址X是远程依附于PE1的端口1。当X发送一个请求到Z时,由于PE1上并没有Z的信息,此时PE1将会将此请求广播到PE2和PE3,而PE2和PE3会对本地局域网广播此请求,当PE2下的Z使用单播响应X时,PE2便获悉了VPLS100中的Z的地址,并且是依附于本地端口1。然后PE2将广播Z的信息,PE1及PE3便获悉Z在VPLS100内,远程依附于PE2端口1。用同样的方法,PE1和PE3也能学习到MAC地址Y。

  每个PE设备维护一个单独的转发信息库(FIB),其中包括它所学习到的所有的地址和接口标识符,以及转发VPLS流量到这些地址所需的相关信息。在VPLS中,PE从其他PE发来的源地址中学习MAC地址。为了转发帧,PE必须能够将MAC地址与虚电线对应起来。因此,在VPLS中的PE必须有能力在物理端口和虚电路上动态地学习MAC地址,并且通过物理端口和虚电线转发和复制数据包。

0
相关文章