MPLS转发机制讲解.docx
《MPLS转发机制讲解.docx》由会员分享,可在线阅读,更多相关《MPLS转发机制讲解.docx(13页珍藏版)》请在冰豆网上搜索。
![MPLS转发机制讲解.docx](https://file1.bdocx.com/fileroot1/2022-11/16/581e0aa6-9f42-4f8c-a932-eb8572c752d0/581e0aa6-9f42-4f8c-a932-eb8572c752d01.gif)
MPLS转发机制讲解
MPLS转发机制讲解
47.2.1 帧模式MPLS转发
前面简要介绍了MPLS的传播过程,这里我们来详细介绍MPLS的转发机制,在MPLS的转发机制中,通
常分为帧模式和信元模式。
帧模式工作流程如下:
首先,当SanJose路由器收到IP分组以后,将会根据其目的地址,对IP转发表FIB进行3层查找。
由于Cisco
的CEF是唯一使用FIB表的第3层交换机制,所以必须在运行MPLS的所有路由器上启用CEF,而所有接收非标
签分组,并将其以标签分组的方式通过MPLS主干传播的入口接口,都必须支持CEF交换。
核心路由器不执
行CEF交换—他们只交换标签分组---但为分配标签,他们仍然以全局方式启用CEF。
通过如下命令可以查看
FIB的信息:
SanJose#showipcef192.168.2.0
192.168.2.0/24,version11,cachedadjacencytoSerial1/0/1
0packets,0bytes
taginformationset
localtag:
29
fasttagrewritewithSe1/0/1,point2point,tagsimposed:
{30}
via172.16.1.4,Serial1/0/1,0dependencies
nexthop172.16.1.4,Serial1/0/1
validcachedadjacency
tagrewritewithSe1/0/1,point2point,tagsimposed:
{30}
标签的转发通常使用特定的标签转发表.查看方式如下:
SanFrancisco#showtagforwarding-tabletags30detail
Local Outgoing Prefix Bytestag Outgoing NextHop
tag tagorVC orTunnelId switched interface
30 28 192.168.2.0/24 0 Se0/0/1 172.16.3.1
MAC/Encaps=14/18,MTU=1504,TagStack{28}
00107BB59E2000107BEC6B0088470001C000
Per-packetload-sharing
NewYork#showtagforwarding-tabletags37detail
Local Outgoing Prefix Bytestag Outgoing NextHop
tag tagorVC orTunnelId switched interface
37 untagged 192.168.2.0/240 Se2/1/3 192.168.2.1
MAC/Encaps=0/0,MTU=1504,TagStack{}
Per-packetload-sharing
MPLS标签使用栈结构,也就是一个分组可以包含多个标签,并利用BoS位标识栈底。
在帧模式MPLS中,运行CiscoIOS软件并作为MPLSLSR的Cisco路由器可以对分组标签执行大量的操作:
弹出标记(Poptag):
删除MPLS标签栈顶的标签,将余下的有小负载作为一个标签分组进行传递。
聚集(Aggregate):
删除MPLS标签栈顶的标签,并对低层的IP分组执行3层查找。
被删除的标签是栈底标签,如
果不是则丢弃报文。
标签栈进行MPLS交换的工作原理如下:
在网络中通过某些功能使得边缘路由器就分组规则达成一致,
而不需要了解核心网络情况时可以启用这种转发方式。
首先NewYork路由器分配标签为73,并且和SanJose
达成一致,数据在核心传送前就带有了双标签,但两个POP的用户通过73标签的封装,并不了解骨干网的
一些情况,如下图所示
标签具体的分配流程采用TDP或者LDP协议。
由MPLS的发展史可以看到,TDP是LDP的前身,为Cisco
专有协议,并且在IOS11.1CT以及12.0中实现。
而LDP为TDP在IETF标准化后的产物,IOS12.2T以后的版本包
含此协议。
功能上而言,两者是等价的俄,可以同时用于网络中,甚至可以在同一个LSR的不同接口启用
不同的标签分发协议。
关于它们,我们将在稍后的章节介绍。
最后我们注意,在MPLS帧模式中,有一种特殊的机制为倒数第二跳弹出(Penultimate Hop Popping).
对于一个从MPLS邻居收到的目的地为MPLS域外的一个子网分组而言,MPLS网络中的出口边缘LSR可能必须
对它进行两次查找操作,该LSR必须检查标签栈头中的标签。
并执行标签查找工作,就像认识到必须弹出
标签并检查并检查底层IP分组一样,必须对IP分组执行3层查找,然后再转发。
例如上图的NewYork POP路由器,在双重栈的查找下,使得性能下降剧烈。
所以为了解决这个问题,
提出了PHP机制,如下图所示:
倒数第二跳弹出机制只用于直接连接的子网或者聚合路由。
对于直接相连的接口,需要执行3层查找,
以便获得被发送到直接相连的目的地分组的小一条信息。
如果前缀是一个聚合,也必须执行3层查找,以
获得具体的路由,然后使用它将分组路由给正确的出口。
使用倒数第二跳弹出机制后,edge-LSR可以请求上游邻居弹出标签,如上页图中的New York路由器。
邻居通告采用特殊的隐式无效(imp-null)LDP、TDP标签值告知。
NewYork#showtagtdpbinding192.168.2.024
tibentry:
192.168.2.0/24,rev10
localbinding:
tag:
imp-null
(1)
remotebinding:
tsr:
172.16.3.1:
0,tag:
28
Washington#showtagtdpbinding192.168.2.024
tibentry:
192.168.2.0/24,rev10
localbinding:
tag:
28
remotebinding:
tsr:
172.16.3.2:
0,tag:
imp-null
(1)
remotebinding:
tsr:
172.16.1.4:
0,tag:
30
remotebinding:
tsr:
172.16.2.1:
0,tag:
37
47.2.2 帧模式MPLS和BGP交互
我们知道在传统的以BGP链接的骨干网中,通常每个路由器都要运行BGP路由协议,特别是在核心网中,
IBGP是全互联的,如下图所示:
在如上配置的情况下,查看7200a的路由表和转发表如下:
7200a#showiproute
Codes:
C-connected,S-static,I-IGRP,R-RIP,M-mobile,B-BGP
D-EIGRP,EX-EIGRPexternal,O-OSPF,IA-OSPFinterarea
N1-OSPFNSSAexternaltype1,N2-OSPFNSSAexternaltype2
E1-OSPFexternaltype1,E2-OSPFexternaltype2,E-EGP
i-IS-IS,L1-IS-ISlevel-1,L2-IS-ISlevel-2,ia-IS-ISinterarea
*-candidatedefault,U-per-userstaticroute,o-ODR
Gatewayoflastresortis7.1.5.1tonetwork0.0.0.0
B 171.68.0.0/16[200/0]via12.12.12.12,01:
10:
44
3.0.0.0/32issubnetted,1subnets
7200a#showipcef171.68.0.0
171.68.0.0/16,version69,cachedadjacencytoPOS3/0
0packets,0bytes,wccptag139
via12.12.12.12,0dependencies,recursive
nexthop10.0.3.5,POS3/0via12.12.12.12/32
validcachedadjacency
这种结构由于核心路由器要运行BGP,配置比较复杂,出现故障恢复也比较麻烦,和核心层尽量简单
的设计模式有些冲突,在MPLS核心网络中,核心路由器不运行BGP,同时,iBGP链接仅在各POP之间运行,
如下图所示:
查看7200a的FIB信息如下:
7200a#showipcef171.68.0.0detail
171.68.0.0/16,version1934,cachedadjacencytoPOS3/0
0packets,0bytes
taginformationfrom12.12.12.12/32,shared
localtag:
36
fasttagrewritewithPO3/0,point2point,tagsimposed{12323}
via12.12.12.12,0dependencies,recursive
nexthop10.0.3.5,POS3/0via12.12.12.12/32
validcachedadjacency
tagrewritewithPO3/0,point2point,tagsimposed{12323}
在