有关虚拟专用局域网业务VPLS的总结

来源:互联网 发布:nero刻录软件免费版 编辑:程序博客网 时间:2024/06/01 15:48
******************************************************************************************************
********************LDP摘要:Label Distribution Protocol*******************************


MPLS使用LDP进行标签交换和LSP链路的建立;
VPLS对LDP进行了扩展,用于VC标签的交换和PW的建立。


一:LDP in MPLS
LDP:根据路由表确定LSP路径上的每一跳,LSP路径与原IP分组经过的路由是相同的,故LDP不具有负载均衡等功能。
通过LDP,LSR可以把网络层的路由信息映射到数据链路层的交换链路上,进而建立LSP。


LSP的建立包括四个步骤:
1、邻居发现(UDP):发现LSR对等体,包括基本发现机制和扩展发现机制
2、session建立和维护:在对等体间建立TCP链接,通过hello消息和keepalive消息进行维护
3、LSP建立与维护:将FEC和标签进行绑定,并将绑定通告给相邻的LSR,进而在LSR建立标签转发表。
包括下游自主方式DU和下游按需方式DoD
标签分配控制方式则分为:独立标签控制方式和有序标签控制方式
4、session撤销:




LDP消息的封装与处理(详见RFC3036)
LDP消息用于会话的建立维护及撤销、标签交换及LSP的建立。
LDP PDUs包含LDP header和若干个LDP messages,header包含了Version、PDULength和LDP Identifier。
LDP messages则是由若干TLV构成:
FEC TLV:FEC由一组FEC element组成,目前定义了两类FEC元素:前缀和主机地址
Label TLV:定义了一组在不同链路上的标签格式,如ATM、Frame Relay以及PPP和Ethernet
标签映射消息:LSR发送该消息给对端LSR,通告FEC-label绑定到对端
 该消息包含了FEC TLV和Label TLV以及可选参数


 
二、LDP in VPLS
session建立:扩展发现机制
标签分发:下游自主方式DU
标签映射消息仍然包含一个FEC TLV、一个Label TLV和若干可选TLVs:
FEC TLV用来表明标签的意义。在当前背景下,它可以用来识别绑定了一个特定标签的特定PW。


VPLS中定义了两个新的FEC TLV,两个新的FEC element
为了建立和维持PW,必须使用LDP中的通用Label TLV(PPP、Ethernet)


1、PWid FEC element
当PW两端为该PW配置了同样的32bit标识符,此时可以使用PWid FEC element;
PW type和PW ID一起标识了某一特定PW,并且和对端一样;
group id代表一个PW空间,被用作一个端口标识或是一个虚拟隧道标识;

2、Gereralized PWid FEC element
Gereralized PWid FEC element 规定PW端点被独一无二的标识,PW自身被识别为一对端点。
另外,构造端点标识符可以支持远端自动发现,而不是静态配置。
该FEC element不再包含group id,其功能由一个分离的可选LDP TLV所代替,即新增加的PW Grouping TLV

AI:Attachment Identifiers
建立PW的协议必须允许PW一端的Forwarder能够识别另一端的Forwarder,这由AI完成,
一个PE上的每个Forwarder必须与一个AI相关联。

Forwarder:A PE subsystem that selects the PW to use in order to transmit a payload received on an AC
PE收到AC上的数据帧,由转发器选定转发报文的PW,转发器实际上就是转发表(华为VPLS详解)。

在PWid FEC中,PWid field充当AI;
在Gereralized PWid FEC element,定义了一种更加通用的结构化的、可变长度的AI格式。

AI在一个Forwarder所驻留的PE路由器上必须是唯一的。
<PE router IP address, AI>必须全球有效。

构造AI的常用方法是:
AI=AGI + AII
Attachment Group Identifier 可以被看做一个VPN id或是vlan id
Attachment Individual identifier
构造AGI和AII的细节不在本文档(RFC 4447)的范围。

PE1到PE2方向的PW可以通过下面的元组识别:<PE1,<AGI,AII1>,PE2,<AGI,AII2>>
需要注意:两个端点的AGI必须相同,但AII在每个端点一般是不同的。所以从一个特定PE的角度来看,每条PW拥有一个本地或是源AII(SAII),和一个远端或是目标AII(TAII)。如果AGI非空,Source AI(SAI)就由AGI和SAII组成,Target AI(TAI)就由TAII和AGI构成。如果AGI为空,SAII和TAII则分别为SAI和TAI。

总结1:每个PE设备都会为该设备上的每个VPLS实例建立一个对应的VSI,而每个VSI维护一个MAC转发表。
上面提到的Forwarder应该就是VSI所维护的MAC转发表,既然AI可以标识一个Forwarder,上面提到的就可以理解为,
在PE上,通过AI来寻找对应的VSI以及MAC转发表,再通过MAC地址可以找到相应的本地PWID,应该就是本地AII。



信令过程:
PE1和PE2间交换信令,PE1必须知道PE2的地址和一个TAI。
这些信息可以在PE1端进行配置,或者是通过一些自动发现机制动态学习。


-----------------------------------------------------------------------------------------------------------------
RFC4762 VPLS Using LDP Signaling


使用PWid FEC Element的标签映射消息已被移到附录部分,使用更加通用的Generalized PWid FEC Element进行替换。


AGI标识一个VPLS的名字,术语AGI可以与VPLS Identifier互相替换;
TAII和SAII为空,这是因为,在一个VPLS中的PWs的mesh终结于MAC学习表,而不是终止于individual Attachment circuits。
使用非空的TAII和SAII是为未来改善而预留的。


地址学习:
qualified learning:默认模式,必须被支持
unqulaified learning:可选的支持模式
在qualified模式,每个用户Vlan被分配到它自己的VPLS实例,意味着每个用户VLAN拥有自己的广播域和MAC地址空间。
所以,该模式下,在用户的VLANs中的MAC地址可以相互重叠,但他们仍能被正确处理,这是因为每个用户VLAN拥有自己的FIB;
例如,每个用户VLAN用户有自己的MAC地址空间。
因为VPLS默认广播多播帧,所以qualified learning提供了限制广播范围(用户VLAN)的优势。
由于逻辑mac地址变成了VLAN tag + MAC address,所以此模式下会导致FIB表变大。
PE根据用户以太报文的MAC地址和VLAN Tag进行学习,即,基于每个VSI的每个VLAN进行学习


在unqualified learning,PE仅根据用户以太报文的MAC地址进行学习,即,基于每个VSI进行学习。
这种模式下,所有用户VLAN共享一个广播域和一个MAC地址空间,用户VLAN的MAC地址必须唯一,不能发生地址重叠。


FIB:Forwarding Information Base,追踪用户以太帧地址和要使用的合适PW的映射
每个PE为每个VPLS服务实例维护一个转发信息库(FIB)


在以太PW上转发数据:
一个用户帧在到达用户侧端口时,携带了一个VLAN TAG,该tag标识了用户的VPLS实例,也标识了一个用户VLAN。




VPLS实例被分配一个标识符(AGI);
一个VPLS实例由一组伪线链接的VPLS Forwarder组成;
不同类型的L2VPN具有不同类型的Forwarder。


***************************************************************************************************************
***************************************VPLS 网络交互过程**************************************************


MPLS L2VPN技术包括VPLS和VPWS,前者提供点到多点通信,后者为点到点通信。
简单来说,VPLS就是将分散在多个地方的LAN虚拟为一个LAN,每一个虚拟LAN成为一个VPLS instance。


在一个VPLS网络中,主要存在PE和CE两类设备,PE之间为全连接,构成网络核心,CE通过AC接入某一个PE设备。
在PE设备之间通过MPLS隧道进行数据帧的传递,在CE之间则是通过伪线PW进行数据帧的传递。
也可以这样理解,MPLS隧道的端点为PE设备的上行端口,PW的端点为PE设备的下行端口。


既然每个VPLS实例是一个虚拟LAN,那么就需要有网桥交互设备进行数据帧的转发,这项任务由VSI完成,PE设备会为每一个VPLS实例维护一个VSI。实际上,可以将VSI看做每个VPLS实例这个虚拟LAN的交换机,只不过这个交换机是由PE设备虚拟出来。
另外,每一个VSI与一个MAC转发表(转发器)关联,所有的数据帧通过该转发表进行寻址和转发。


将上面的论述进行总结,MPLS隧道负责数据包在PE之间进行传递,而PW则是终结于PE上的每个特定VSI的转发表,通过查找转发表进而通过合适的PE端口将数据帧发送给正确的CE。


当PE1收到CE的一个数据帧,通过查找转发表为数据帧打上内层标签,作为特定PW的标记;然后在打上外层标签作为MPLS隧道的标记;该数据帧随后会通过MPLS的LSP链路到达对端PE2,PE2去掉外层标签,然后根据内层标签找到该PW所关联的VSI,通过查找转发表确定转发端口,最后去掉内层标签,将数据帧通过该端口转发给正确的CE设备。


两个关键问题:
1、伪线PW的建立
建立伪线实际上就是标签的绑定和交互过程,目前有多种协议可供选择,主要有扩展的LDP协议和扩展的BGP协议。
LDP协议不具有设备发现功能,在使用时,需要手工为PE设备配置对端PE的参数,包括IP地址、VPLS实例标识符等。
BGP协议虽然比LDP复杂,但具有设备发现功能,不需要手工配置参数。
2、MAC地址的学习
通过上面的论述可以看出,PW的两端实际上每个VPLS实例的转发表,而这个转发表的填充是通过地址学习建立的。该表中的条目包括与PE设备直连的CE设备的MAC地址以及该PE所有对端PE链接的CE设备的MAC地址。
原创粉丝点击