P1-P2链路抓包:
P2-PE2链路:
通过上述ping包的内容和LSR之间的表项可以得出如下图的MPLS转发过程。
PUSHLabel 17Loopback11.1.1.1/32PE1SWAPLabel 16icmp requestethernetP1P2POPicmp requestethernetLoopback2 2.2.2.2/32PE2icmp requestethernetg1/0g1/0g2/0g1/0g2/0g1/0
PE1上ping PE2的2.2.2.2,PE1上查MPLS转发表(在IP转发和MPLS转发都可达的条件下,mpls会优先转发),获悉到出接口和出标签(LDP协议建立起来后分配的标签,即发往FEC 2.2.2.2对应LSR下一跳需要打上的标签,即下表中对应的Outgoing Label)
P1上经由g1/0接口收到带1层标签(label=17)的mpls数据之后,根据数据携带的label=17对应查mpls转发表(这里把label=17就视为inlabel或者这里对应的local label),根据查找到的转发表,执行标签交换(swap)操作。将标签更换为FEC 2.2.2.2对应的出标签(outgoing label)16,再从出接口(outgoin interface)gi2/0发送出去。
P2上经由g1/0接口收到带1层标签(label=16)的mpls数据之后,根据数据携带的label=16对应查mpls转发表(这里也是把label=16视为inlabel或者这里对应的local label),根据查找到的转发表,由于是倒数第二跳LSR(会执行PHP动作,即提前弹出外层标签),出接口标签是pop label执行标签弹出操作(pop)操作。将弹出标签后的IP数据包再封装为以太帧从出接口(outgoin interface)gi2/0发送出去。
PE2上经由g1/0接口收到不带标签的ip数据,由于已经没有mpls标签了,自然也不会再查mpls转发表,直接查ip路由表,进行路由转发。然后送CP 对应icmp模块进行处理,即回复icmp reply。
反向回复过程和发送过来的过程一样,只是分配的标签不同,在倒数第二跳LSR同样会执行PHP操作。
7. 附各接口接口信息: PE1#sho int gigabitEthernet 1/0
GigabitEthernet1/0 is up, line protocol is up
Hardware is 82543, address is ca01.2964.001c (bia ca01.2964.001c) Internet address is 55.1.1.1/24
P1#sho int gigabitEthernet 1/0
GigabitEthernet1/0 is up, line protocol is up
Hardware is 82543, address is ca00.2964.001c (bia ca00.2964.001c) Internet address is 55.1.1.2/24
P1#sho int gigabitEthernet 2/0
GigabitEthernet2/0 is up, line protocol is up
Hardware is 82543, address is ca00.2964.0038 (bia ca00.2964.0038) Internet address is 55.2.2.2/24
P2#sho int gigabitEthernet 1/0
GigabitEthernet1/0 is up, line protocol is up
Hardware is 82543, address is ca07.2944.001c (bia ca07.2944.001c) Internet address is 55.2.2.1/24
P2#sho int gigabitEthernet 2/0
GigabitEthernet2/0 is up, line protocol is up
Hardware is 82543, address is ca07.2944.0038 (bia ca07.2944.0038) Internet address is 55.3.3.1/24
GigabitEthernet1/0 is up, line protocol is up
Hardware is 82543, address is ca08.2944.001c (bia ca08.2944.001c) Internet address is 55.3.3.2/24
LDP邻居会话状态机: