CCIE V5.0 TS 之 MPLS VPN网络Traceroute问题分析(2)

2019-04-13 22:26

回一个端口不可达的报错,R1收到该报错信息后,在traceroute的输出结果中显示R5的接口IP地址45.1.1.5。Traceroute详细原理建议参考其他资料。

为了确认traceroute的时候,数据包在各个路由器之间是如何交互的,需要在各个路由器之间进行抓包,分析数据包的特征,最终定位原因。

当R5发布默认路由后,在R1上traceroute R5(注:参数probe设置为1),可以输出中间各跳的IP地址信息,这时,在R1至R5之间的每个网段上进行抓包,收到的数据包截图如下所示, R1-R2

R2-R3

R3-R4

R4-R5

从以上抓包结果来看,网段R1-R2和R2-R3的抓包结果,直观上来说,应该是比较符合预期的,而网段R3-R4和R4-R5的抓包结果,则有点出乎意料,为什么23.1.1.3回应1.1.1.1的数据包会出现在这两个网段呢?同样,45.1.1.4回应1.1.1.1的数据包为什么会出现在网段R4-R5之间?

经过对数据包的观察,发现可以基于每个数据包的TTL值,分析每个数据包的在每台路由器上的转发行为,进而梳理出以下表格,来表示每个数据包会出现在哪些网段上,以及在每个网段上的TTL值信息。

说明:IP表示IP报头的TTL值,L1表示MPLS外层标签的TTL值,L2表示MPLS内层标签的TTL值,冒号后面的数字表示TTL值。

在整个traceroute过程中,实际上总产生了8个数据包,下面结合以上表格,描述每个数据包转发过程:

1、1.1.1.1-->5.5.5.5:R1产生,IP层TTL值为1,转发到R2上,R2丢弃该数据包; 2、12.1.1.2-->1.1.1.1:R2产生,对上一个数据包的回应,IP层TTL值为255;

3、1.1.1.1-->5.5.5.5:R1产生,IP层TTL值为2,转发到R2上;R2对其进行转发,IP层TTL值变为1;由于进入MPLS域,数据链路层有外层、内层MPLS标签,TTL值均为1;R3收到该数据包,执行丢弃;

4、23.1.1.3-->1.1.1.1:R3产生,往R3-R4网段转发,MPLS内层标签值不变,外层标签变为0(显式倒数第二条弹出),三个TTL值均为255;R4收到后,执行IP转发,查看路由表(vrf B路由表),往R5方向纯IP转发,IP层TTL值为254;R5收到后,根据路由表,再转发给R4,IP层TTL值为253;R4收到后,往R3方向执行标签转发,IP层、MPLS内层标签、MPLS外层标签的TTL值均为252;R3收到后,往R2方向执行标签交换,IP层、MPLS内层标签的TTL值不变,均为252,MPLS外层标签变为251;R2收到后,往R1方向执行纯IP转发,IP层TTL值变为250;R1正常收到该数据包;

5、1.1.1.1-->5.5.5.5:R1产生,IP层TTL值为3,往R2方向转发;R2收到后,往R3方向执行标签转发,IP层、MPLS内层标签、MPLS外层标签的TTL值均为2;R3收到后,往R4方向执行标签交换,IP层、MPLS内层标签的TTL值不变,均为2,MPLS外层标签变为1;R4收到后,由于TTL值为1,执行丢弃;

6、45.1.1.4-->1.1.1.1:R4产生,目的IP为1.1.1.1,执行IP转发,查看路由表(vrf B路由表),往R5方向纯IP转发,IP层TTL值为255;R5收到后,根据路由表,再转发给R4,IP层TTL值为254;R4收到后,往R3方向执行标签转发,IP层、MPLS内层标签、MPLS外层标签的TTL值均为253;R3收到后,往R2方向执行标签交换,IP层、MPLS内层标签的TTL值不变,均为253,MPLS外层标签变为252;R2收到后,往R1方向执行纯IP转发,IP层TTL值变为251;R1正常收到该数据包;

7、1.1.1.1-->5.5.5.5:R1产生,IP层TTL值为4,往R2方向转发;R2收到后,往R3方向执行标签转发,IP层、MPLS内层标签、MPLS外层标签的TTL值均为3;R3收到后,往R4方向执行标签交换,IP层、MPLS内层标签的TTL值不变,均为3,MPLS外层标签变为2;R4收到后,执行IP转发,查看路由表(vrf B路由表),往R5方向纯IP转发,IP层TTL值为1;数据包正常到达R5;

8、45.1.1.5-->1.1.1.1:R5产生,目的IP为1.1.1.1,执行IP转发,查看路由表,往R4方向纯IP转发,IP层TTL值为255;R4收到后,往R3方向执行标签转发,IP层、MPLS内层标签、MPLS外层标签的TTL值均为254;R3收到后,往R2方向执行标签交换,IP层、MPLS内层标签的TTL值不变,均为254,MPLS外层标签变为253;R2收到后,往R1方向执行纯IP转发,IP层TTL值变为252;R1正常收到该数据包;

表格的最后一行“每个网段通过的数据包数量”和抓包截图的包数量进行对比,可以确认包数量一致。

六、 问题原因和解决

回到R5没有发布默认路由,R1 traceroute R5第三跳为星号的情况,观察各个网段的数据包情况,如下截图所示:

R1-R2

R2-R3

R3-R4

R4-R5

对比R5发布默认路由时,各网段经过的数据包的情况,可以发现区别在于:R5没有发布默认路由时,少了数据包6(即:45.1.1.4到1.1.1.1),即上面表格中,红色字体部分数据包,其他数据包不变;那么,也就可以认为,R4收到数据包5之后,没有成功发出数据包6,这是为什么?

首先想到的是,R4上有没有去往1.1.1.1的路由呢?

R4上有三个路由表,全局路由表、vrf B路由表和vrf C路由表,那么R4应该依照哪个路由表来转发呢?数据包6是用于对数据包5的回应,那么数据包5属于哪个VRF?数据包5源于1.1.1.1,目的为5.5.5.5,在R4上之后VRF B Export了路由,所以数据包5属于VRF B,数据包6也应该依据VRF B路由表来转发。

查看数据包5的MPLS内层标签,为19;

查看R4上bgp分配的标签,VRF B为5.5.5.5/32分配的标签是19,而VRF C为5.5.5.5/32分配的标签是20,证明了数据包5属于VRF B。

R4#show bgp vpnv4 uni all labels

Network Next Hop In label/Out label Route Distinguisher: 1:1

1.1.1.1/32 2.2.2.2 nolabel/19 Route Distinguisher: 2:2 (B)

5.5.5.5/32 45.1.1.5 19/nolabel Route Distinguisher: 3:3 (C)

1.1.1.1/32 2.2.2.2 nolabel/19 5.5.5.5/32 45.2.2.5 20/nolabel

既然确定数据包6要按照VRF B路由表来转发,那么查看一下该路由表,如下所示,VRF B路由表中,并没有1.1.1.1的路由,这就是数据包6没有正常发送的原因。

R4#show ip route vrf B

Routing Table: B

Codes: C - connected, S - static, 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

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

5.0.0.0/32 is subnetted, 1 subnets

B 5.5.5.5 [20/0] via 45.1.1.5, 05:28:20 45.0.0.0/24 is subnetted, 1 subnets

C 45.1.1.0 is directly connected, FastEthernet0/1.1

为何VRF B路由表没有1.1.1.1的路由?这是VRF规划的原因,VRF B只执行Export路由,VRF C只执行Import路由,所以VRF B无法直接从vpnv4邻居学习到路由,只能通过CE侧R5学习路由。

解决方案一:CE侧R5发布默认路由,R4上VRF B路由表中,可增加一条默认路由指向R5,所以数据包6就可以正常转发,这也是CCIE TS中使用的解决方案。路由表如下所示:

R4#show ip route vrf B

Routing Table: B

Codes: C - connected, S - static, 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

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route

Gateway of last resort is 45.1.1.5 to network 0.0.0.0

5.0.0.0/32 is subnetted, 1 subnets

B 5.5.5.5 [20/0] via 45.1.1.5, 05:34:40 45.0.0.0/24 is subnetted, 1 subnets

C 45.1.1.0 is directly connected, FastEthernet0/1.1 B* 0.0.0.0/0 [20/0] via 45.1.1.5, 00:01:12

解决方案二:在R4的VRF B中增加一条静态路由,如下所示,同样可以使R4正常转发数据包6;这个方案不具备可扩展性,只是再一次证明数据包6需要通过VRF B的路由表在转发。

R4(config)#ip route vrf B 1.1.1.1 255.255.255.255 45.1.1.5

Routing Table: B

Codes: C - connected, S - static, 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

i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2

ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

1.0.0.0/32 is subnetted, 1 subnets S 1.1.1.1 [1/0] via 45.1.1.5

5.0.0.0/32 is subnetted, 1 subnets

B 5.5.5.5 [20/0] via 45.1.1.5, 00:01:09 45.0.0.0/24 is subnetted, 1 subnets

C 45.1.1.0 is directly connected, FastEthernet0/1.1

解决方案三:如果R4上,不分开两个VRF,分别执行Export和Import路由,而是在一个VRF中同时Export和Import路由,也不会出现本文所述的问题;当然,分开两个VRF,应该也是因特殊需求而规划的。


CCIE V5.0 TS 之 MPLS VPN网络Traceroute问题分析(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017届高考化学第一轮实战训练题9

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: