网络排错,常常需要借助许多工具,今天就让琪麟老师给大家介绍一下最基础的网络排错工具----Traceroute(路径追踪)的工作原理。
Traceroute作用:基于UDP探测包和ICMP TTL超时报文来检测从源到目的地之间的IP地址,同时如果源和目的不通,也可以检测到哪个节点出了问题。
Traceroute工作原理:
探测者首先发出3个TTL=1的探测包;
然后再发出3个TTL=2的探测包;
然后再发出3个TTL=3的探测包................以此类推,直到探测到目的地。
注意
一、默认每个TTL的探测包发三个,防止中间节点没有收到UDP探测包,误以为中间节点目的地不可达,数值可以修改。
二、中间节点收到UDP探测包,都会以自己收包接口IP地址为源,以探测者为目的,用ICMP文格式给探测者进行回复,当探测者收到ICMP回包的同时就探测到了中间节点。
三、TTL是IP包头里面的字段,用来标识这个数据包可以传递多少跳,如果TTL=1,那么数据包只能在本网段传递,如果TTL=2,那么就可以传递给邻居路由器的直连设备.....以此类推。
我们用下面三台路由器抓包来分析一下Traceroute的路径追踪过程!!!
![](https://img.haomeiwen.com/i15200494/56e2ac5d0547b0d6.png)
地址规划:
R1 e0/0 12.1.1.1/24 lo0 1.1.1.1/32
R2 e0/0 12.1.1.2/24 e0/1 23.1.1.2/24
R3 e0/0 23.1.1.3/24 lo0 3.3.3.3/32
保证全网通,我启用EIGRP协议,如下:
![](https://img.haomeiwen.com/i15200494/56d1313c72d3bab1.png)
![](https://img.haomeiwen.com/i15200494/593d8b052954ee89.png)
![](https://img.haomeiwen.com/i15200494/3c2f0b39b4d6dd6a.png)
我们在R1直接traceroute看现象:
![](https://img.haomeiwen.com/i15200494/a70834552af165c4.png)
探测到了中间两个节点的IP地址,同时每个地址有三个时间,代表每个TTL发了三个探测包。
下面我们抓包分析一下:
先打开R1和R2之间的抓包,然后让R1发起Traceroute,如下
![](https://img.haomeiwen.com/i15200494/e847b81f7fb085a6.png)
上面的效果图每个TTL的数据包只发一个(probe 1)。
下面我们直接traceroute,默认每个TTL的探测包发三个,然后我们看抓包结果,如下
![](https://img.haomeiwen.com/i15200494/b19cab7f11899252.png)
![](https://img.haomeiwen.com/i15200494/3bf8c38562c5f4f8.png)
看上面,一共抓包6个UDP数据包,每个UDP探测包后面跟一个ICMP的回包,当然第5个UDP没有收到ICMP回包(我设备bug),因此下面的效果图关于23.1.1.3这个节点中间那个时间就是*,没探测到。
如果仔细看抓包里面的UDP,你会发现前面三个UDP探测包TTL=1,后面三个UDP探测包TTL=2,看下图:
![](https://img.haomeiwen.com/i15200494/ac13eab4e88beefd.png)
![](https://img.haomeiwen.com/i15200494/825f39b1655af38c.png)
如果R2或者R3没有到达R1lo0接口的路由,那么探测肯定是失败的,比如,我把R3路由表里面的1.1.1.1/32干掉,做个过滤吧。
![](https://img.haomeiwen.com/i15200494/d5257d8e761577a3.png)
这样R3就没有了1.1.1.1/32的条目
![](https://img.haomeiwen.com/i15200494/12214f0ba3e3c7e3.png)
然后我们用R1去追踪R3的lo0接口,并且让R1以自己的lo0为源去发探测包
![](https://img.haomeiwen.com/i15200494/3f706f0b5f201b23.png)
![](https://img.haomeiwen.com/i15200494/b21a72ab7dd8b500.png)
可以看到只有前三个UDP探测包收到了回包(R2回的),后面的RDP探测包都没有收到回包,因为R3没有去往R1 lo0接口的路由,无法回包,这样我们就可以判定R3出了问题。
原文来自公众号“思科CCIE训练营”定期更新网络技术干货文章,学习资料视频教程+文档PPT+工具软件包及安装使用教程免费领,欢迎关注,一起吹皮,一起飞!
![](https://img.haomeiwen.com/i15200494/4c2671259faba3de.png)
网友评论