前面简要介绍了MPLS的传播过程,这里我们来详细介绍MPLS的转发机制,在MPLS的转发机制中,通
常分为帧模式和信元模式。帧模式工作流程如下:
的CEF是唯一使用FIB表的第3层交换机制,所以必须在运行MPLS的所有路由器上启用CEF,而所有接收非标
签分组,并将其以标签分组的方式通过MPLS主干传播的入口接口,都必须支持CEF交换。核心路由器不执
行CEF交换—他们只交换标签分组---但为分配标签,他们仍然以全局方式启用CEF。通过如下命令可以查看
FIB的信息:
SanJose#show ip cef 192.168.2.0
192.168.2.0/24, version 11, cached adjacency to Serial1/0/1
0 packets, 0 bytes
tag information set
local tag: 29
fast tag rewrite with Se1/0/1, point2point, tags imposed: {30}
via 172.16.1.4, Serial1/0/1, 0 dependencies
next hop 172.16.1.4, Serial1/0/1
valid cached adjacency
tag rewrite with Se1/0/1, point2point, tags imposed: {30}
标签的转发通常使用特定的标签转发表.查看方式如下:
SanFrancisco#show tag forwarding-table tags 30 detail
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
30 28 192.168.2.0/24 0 Se0/0/1 172.16.3.1
MAC/Encaps=14/18, MTU=1504, Tag Stack{28}
00107BB59E2000107BEC6B008847 0001C000
Per-packet load-sharing
NewYork#show tag forwarding-table tags 37 detail
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
37 untagged 192.168.2.0/24 0 Se2/1/3 192.168.2.1
MAC/Encaps=0/0, MTU=1504, Tag Stack{}
Per-packet load-sharing
弹出标记(Pop tag):
删除MPLS标签栈顶的标签,将余下的有小负载作为一个标签分组进行传递。
删除MPLS标签栈顶的标签,并对低层的IP分组执行3层查找。被删除的标签是栈底标签,如
果不是则丢弃报文。
而不需要了解核心网络情况时可以启用这种转发方式。首先NewYork路由器分配标签为73,并且和SanJose
达成一致,数据在核心传送前就带有了双标签,但两个POP的用户通过73标签的封装,并不了解骨干网的
一些情况,如下图所示
专有协议,并且在IOS 11.1CT以及12.0中实现。而LDP为TDP在IETF标准化后的产物,IOS 12.2T以后的版本包
含此协议。功能上而言,两者是等价的俄,可以同时用于网络中,甚至可以在同一个LSR的不同接口启用
不同的标签分发协议。关于它们,我们将在稍后的章节介绍。
最后我们注意,在MPLS帧模式中,有一种特殊的机制为倒数第二跳弹出(Penultimate Hop Popping).
对于一个从MPLS邻居收到的目的地为MPLS域外的一个子网分组而言, MPLS网络中的出口边缘LSR可能必须
对它进行两次查找操作,该LSR必须检查标签栈头中的标签。并执行标签查找工作,就像认识到必须弹出
标签并检查并检查底层IP分组一样,必须对IP分组执行3层查找,然后再转发。
例如上图的NewYork POP路由器,在双重栈的查找下,使得性能下降剧烈。所以为了解决这个问题,
提出了PHP机制,如下图所示:
以便获得被发送到直接相连的目的地分组的小一条信息。如果前缀是一个聚合,也必须执行3层查找,以
获得具体的路由,然后使用它将分组路由给正确的出口。
使用倒数第二跳弹出机制后,edge-LSR可以请求上游邻居弹出标签,如上页图中的New York路由器。
邻居通告采用特殊的隐式无效(imp-null)LDP、TDP标签值告知。
NewYork#show tag tdp binding 192.168.2.0 24
tib entry: 192.168.2.0/24, rev 10
local binding: tag: imp-null(1)
remote binding: tsr: 172.16.3.1:0, tag: 28
Washington#show tag tdp binding 192.168.2.0 24
tib entry: 192.168.2.0/24, rev 10
local binding: tag: 28
remote binding: tsr: 172.16.3.2:0, tag: imp-null(1)
remote binding: tsr: 172.16.1.4:0, tag: 30
remote binding: tsr: 172.16.2.1:0, tag: 37
47.2.2 帧模式MPLS和BGP交互
我们知道在传统的以BGP链接的骨干网中,通常每个路由器都要运行BGP路由协议,特别是在核心网中,
IBGP是全互联的,如下图所示:
7200a#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
Gateway of last resort is 7.1.5.1 to network 0.0.0.0
B 171.68.0.0/16 [200/0] via 12.12.12.12, 01:10:44
3.0.0.0/32 is subnetted, 1 subnets
7200a#show ip cef 171.68.0.0
171.68.0.0/16, version 69, cached adjacency to POS3/0
0 packets, 0 bytes, wccp tag 139
via 12.12.12.12, 0 dependencies, recursive
next hop 10.0.3.5, POS3/0 via 12.12.12.12/32
valid cached adjacency
的设计模式有些冲突,在MPLS核心网络中,核心路由器不运行BGP,同时,iBGP链接仅在各POP之间运行,
如下图所示:
7200a#show ip cef 171.68.0.0 detail
171.68.0.0/16, version 1934, cached adjacency to POS3/0
0 packets, 0 bytes
tag information from 12.12.12.12/32, shared
local tag: 36
fast tag rewrite with PO3/0, point2point, tags imposed {12323}
via 12.12.12.12, 0 dependencies, recursive
next hop 10.0.3.5, POS3/0 via 12.12.12.12/32
valid cached adjacency
tag rewrite with PO3/0, point2point, tags imposed {12323}
在12008a上查询LFIB表如下:
12008a#show mpls forwarding
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
12318 Pop tag 10.0.57.0/24 0 PO1/0 point2point
1/43 10.0.57.0/24 0 AT3/0.1 point2point
12319 12320 10.0.86.0/24 0 PO1/0 point2point
1/44 10.0.86.0/24 0 AT3/0.1 point2point
12320 12321 10.1.1.1/32 0 PO1/0 point2point
1/45 10.1.1.1/32 0 AT3/0.1 point2point
12321 12322 10.1.1.2/32 0 PO1/0 point2point
1/46 10.1.1.2/32 0 AT3/0.1 point2point
12322 12326 16.16.16.16/32 0 PO1/0 point2point
1/51 16.16.16.16/32 0 AT3/0.1 point2point
12323 12324 12.12.12.12/32 575 PO1/0 point2point
1/49 12.12.12.12/32 0 AT3/0.1 point2point
12324 12325 13.13.13.13/32 0 PO1/0 point2point
1/50 13.13.13.13/32 0 AT3/0.1 point2point
12325 12327 17.17.17.17/32 144 PO1/0 point2point
12.12.12.12/32, version 385, per-destination sharing
0 packets, 0 bytes
tag information set, shared
local tag: 12323
via 10.0.5.11, POS1/0, 0 dependencies
traffic share 1
next hop 10.0.5.11, POS1/0
unresolved
valid adjacency
tag rewrite with PO1/0, point2point, tags imposed {12324}
via 10.0.4.11, ATM3/0.1, 1 dependency
traffic share 1
next hop 10.0.4.11, ATM3/0.1
unresolved
valid adjacency
tag rewrite with AT3/0.1, point2point, tags imposed {1/49(vcd=65)}
0 packets, 0 bytes switched through the prefix
tmstats: external 0 packets, 0 bytes
internal 0 packets, 0 bytes
Load distribution: 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 (refcount 2)
Hash OK Interface Address Packets Tags imposed
1 Y POS1/0 point2point 0 {12324}
2 Y ATM3/0.1 point2point 0 {1/49}
3 Y POS1/0 point2point 0 {12324}
4 Y ATM3/0.1 point2point 0 {1/49}
5 Y POS1/0 point2point 0 {12324}
6 Y ATM3/0.1 point2point 0 {1/49}
7 Y POS1/0 point2point 0 {12324}
8 Y ATM3/0.1 point2point 0 {1/49}
9 Y POS1/0 point2point 0 {12324}
10 Y ATM3/0.1 point2point 0 {1/49}
11 Y POS1/0 point2point 0 {12324}
12 Y ATM3/0.1 point2point 0 {1/49}
13 Y POS1/0 point2point 0 {12324}
14 Y ATM3/0.1 point2point 0 {1/49}
15 Y POS1/0 point2point 0 {12324}
16 Y ATM3/0.1 point2point 0 {1/49}
refcount 5
具体的转发规则如下图所示:
在信元模式MPLS中,存在一些局限:
ATM头没有字段承载TTL
不支持倒数第二跳弹出(PHP)
不支持ATM LSR的路由聚合
由于ATM头无法携带TTL,则在ATM中传输的环路问题难以避免,解决这个问题可以通过2方面解决:
1. LDP在LSP的LDP信令交互中使用路由跳计数TLV.因为ATM LSR不能每一跳都减少TTL,所以在心
愿出口,路由器要把TTL减掉信元网络中的跳数.
2. LDP的路径向量TLV保存了在信元网络中LSP经过的所有路由跳的列表信息.路径向量用来在
控制平面进行环路检测,当向量中发现某个LSP出现2次后,则认为是环路.
注意: 在帧模式网络中不使用LDP路径向量和跳计数TLV.
另一个问题需要解释的是ATM不支持PHP,我们知道,在传统的帧模式转发过程中,在倒数第二跳弹出标
签后,IP报文依旧可以传输到最后一跳路由器.而ATM的标签为VPI/VCI值,所以倒数第二跳弹出了以后,数据将
会面临无处可发的状态.同时虽然ATM LSR在控制平面运行路由协议,但路由不能进行汇总,因为这样将会导
致心愿的重组和再次分割,处理消耗过大,并且这样而言,ATM交换机成了一个路由器了.
在处理ATM的MPLS交换中,要求ATM eLSR控制层面具有纯粹的IP连接性.并且可以通过VC 0/32实现管
理信息的传递和互通 .在ATM LSR的控制层面,采用的是午夜行船(Ship-in-the-night)的模式, 即在VC交换层
面上方使用不同的控制层面,
信元模式MPLS转发流程如下, 采用逐渐的向下游发送转发标签请求,下游依次回复标签,完成LVC的建
立.
性能.当合并VC的时候,会遇到如下的问题.
0 1/30
0 1/30
output
Interface&VC
0 1/30
0 1/30
0 1/30
output
Interface&VC
47.2.4 MPLS TTL
我们已经熟悉在IP网络中的TTL机制,每经过一个路由器TTL值减一,当TTL等于零的时候,丢弃报文并发
送不可达的ICMP消息.并用于防止在路由环路的时候,报文在环路中反复传输.
在MPLS网络中,MPLS标签同样含有该字段,它采用类似的机制来防止IP报文在MPLS云中反复传递.当一
在Egress站中,将其复制到IP-TTL中,如下图所示: