MPLS VPN技术原理( 二 )


文章插图
 
如上图,所有LSR上启动了LDP协议 。以LSR-B为例,它已经通过路由协议获得网络X的路由了,一旦启动LDP协议,LSR-B立即查找路由表,如果X网络的路由是由IGP路由协议学到的,则在LIB表中为通向X网络的路由生成一个本地标签25,由于LSR-B和LSR-A、LSR-C、LSR-E形成了LDP邻居关系,所以下游LSR-B会主动给所有的邻居发送这个X=25的路由条目和标签的绑定!LSR-A、LSR-E、LSR-C会把该路由条目和标签的绑定放置到本地的LIB表中,再结合本地的路由表,在FIB表中生成有关X网络的“网络地址->出标签”条目,在LFIB中生成有关X网络的“进标签->出标签”条目 。所有的LSR上都如此操作 。最终的结果使整个MPLS网络内部所有LSR上达到路由表、LIB表、FIB表、LFIB表的动态平衡 。
如果LSR-A接收到要去X网段的数据,由于LSR-A处在MPLS网络的边缘,必须查找FIB表,对接收到的IP包,做标签插入操作 。对于LSR-B,LSR-C则纯粹是分析标签包,对包头的标签做转换,再转发标签包而已 。数据到了LSR-D,该边缘LSR会去掉标签包中的标签,再对恢复的IP包做转发!如下图:

MPLS VPN技术原理

文章插图
 
2.3.2
信元模式(Cell Mode)下的标签分配和分发
在信元模式下,下游ATM-LSR接收到了上游ATM-LSR标签绑定请求后,下游受控分配标签,被动向上游分发标签 。如下图
MPLS VPN技术原理

文章插图
 
最上游的LSR-A向ATM-LSR-B发起对网络X的标签求情,ATM-LSR-B再向ATM-LSR-C发请求,最后请求到达LSR-D,LSR-D生成本地对X网络的标签1/37,把该标签告诉ATM-LSR-C,C做同样操作,这样一步一步到达LSR-A 。最终生成一条从A->B->C->D的LSP(Label Switch Path) 。这样如果A收到要到X网络的数据,A就把IP数据包分割成带有标签的信元,通过ATM接口发送到B,接下来B和C就纯粹做ATM信元的转发,到了D后再把信元组合成IP数据包,发向网络X 。
在此要强调的如果要组建以ATM交换机为核心的MPLS网络,那么在ATM网络的边缘必须设置路由器,原因在于ATM交换机只转发信元,无法处理用户数据IP包 。当然上面也提到要在ATM交换机上实现MPLS功能,必须在ATM交换机的信令控制部分加入路由协议,而路由信息包往往是打在IP包中的,如RIP,OSPF,BGP等路由协议 。ATM交换机为了确保这些以IP包形式传递的路由信息能够在ATM交换机间传递,使用了专门的带外连接通道或者带内的管理VC 。
2.4 BGP协议在MPLS网络中的特殊应用
上面提到LSR根据路由表分配标签时,只对从IGP协议获得的路由条目分配标签 。原因何在?这是有特殊意义的!看下图:
MPLS VPN技术原理

文章插图
 
整个Transit AS中启动MPLS交换 。保证ISP2和LSR-Border2之间的网段发布到Transit AS内部的IGP路由协议中,对ISP1和LSR-Border2之间的网段也做同样的要求 。前面提到过LSR为路由条目分配标签时,只对从IGP学来的路由分配标签,而网络1.2.3.4是被发布到Transit AS内部的IGP路由协议中了,可以肯定在Border1处是可以获得Core1告诉它有关1.2.3.4网络的标签23 。LSR-Border1,LSR-Border2之间形成IBGP邻居关系,通过BGP协议,LSR-Border2把从ISP2处学来的10.0.0.0/8这条路由告诉给LSR-Border1,这条路由的下一跳地址是1.2.3.4,这样一来让LSR-Border1得知要给网络10.0.0.0/8发送数据,先把数据发送到1.2.3.4这个网络来 。1.2.3.4被绑定了标签23,所以在生成FIB表时,也给10.0.0.0/8这个网段绑定一个标签23 。这样,如果有数据从ISP1穿越Transit AS到达ISP2,在Border1处就会给IP包插上23这个标签,把生成的标签包转发到Core1,Core1就只要分析标签头做标签包的转发就可以了!由于Transit AS内部核心路由器不必要运行BGP协议,这样一来,MPLS网络的核心路由器就不会知道外部用户的路由,缩小了核心路由器的路由表,提高了搜索效率 。大家也看到,由于打上了标签,IP包头是不会在核心路由器被分析的,即使IP包头含有10.0.0.1这样的私有IP地址,也会因为只分析标签的原因被正常转发,这就是服务提供商提供VPN服务所追求的 。当然在此必须重声,LSP在整个Transit AS不能被断开,如果断开,标签包就恢复成IP包,而核心路由器是不含用户路由的,最终导致数据包的丢失 。
BGP在MPLS网络中的作用为我们提供了VPN服务打开了方便之门,但也应该意识到VPN服务两个最基本的要求是1.用户可以独立规划IP地址;2.安全性非常重要!看下图:


推荐阅读