您的位置:

使用traceroute探查网络故障

一、 traceroute的基本概念

traceroute是一个用于探查网络故障的命令,也可以用于了解数据包通过互联网在哪些路由器上传输、经过了多长时间等信息。 traceroute通过向目标设备发送UDP数据包并在每个中间路由器上等待一段时间以获取响应时间,进而推断跟踪到目标设备所经过的中间路由器

完整的traceroute命令是:“traceroute [参数] 目标地址”,其中参数常见的有如下选项:

-f TTL:起始TTL值
-m TTL:最大TTL值
-I :使用ICMP协议而非UDP
-p port:UDP数据包的目的端口
-t timeout:等待时间
-w waittime:等待每一个回应之间的时间间隔
-q probes:每个TTL发送N个请求包

二、traceroute解决的问题

traceroute可以用于解决如下网络故障:

1.网络间路由故障:通常在从源端到目的端中间会经过多个路由器,当其中一个故障导致了源端和目的端之间的不可达时,可以使用 traceroute 命令来找到具体的问题所在,进而解决问题。

2.网络延迟问题:traceroute 命令的另一个应用场景是检查网络延迟。我们使用 traceroute 命令并关注命令输出的 delay 时间,来检查数据传输丢失或延迟的问题。

三、使用traceroute诊断故障案例

下面给出两个案例来演示如何使用 traceroute 诊断网络故障。

案例1: 连接局域网学校服务器被卡在中间路由器上

1.直接执行 ping 操作,发现学校网络的情况不太好,掉包率很高。

ping 192.168.1.1

2.使用traceroute 不断地尝试从本地主机访问学校的服务器,发现在中间一台路由器上被拦截了:

traceroute 192.168.1.200
traceroute to 192.168.1.200 (192.168.1.200), 30 hops max, 38 byte packets
1  192.168.1.1 (192.168.1.1)  17.187 ms  10.135 ms  3.433 ms
2  192.168.10.1 (192.168.10.1)  13.201 ms  13.527 ms  11.912 ms
3  219.141.135.194 (219.141.135.194)  36.472 ms  31.182 ms  279.790 ms
4  * * *
5  61.148.249.210 (61.148.249.210)  61.892 ms  64.077 ms  65.596 ms
6  61.148.249.162 (61.148.249.162)  67.833 ms  69.629 ms  64.748 ms
7  61.148.57.106 (61.148.57.106)  67.905 ms  69.581 ms  71.183 ms
8  * * *
9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

3.提示信息显示,从第四台路由器首包就无法到达了,路由太远,网络不稳定。联系网络管理员进行排查。

案例2:从本地主机访问上海公安局无法连接

1.首先执行 ping 的操作,可以得到确认其 IP 地址为 211.148.8.30

ping shpd110.shsp.gov.cn

2.使用traceroute 进一步诊断,从距离该服务器较近的计算机连不上,考虑是路由过程出现问题。

traceroute -I -n 211.148.8.30
traceroute to 211.148.8.30 (211.148.8.30), 30 hops max, 40 byte packets
 1  192.168.1.1  1.788 ms  2.566 ms  3.223 ms
 2  118.103.240.1  12.695 ms  13.482 ms  14.562 ms
 3  210.52.143.193  12.231 ms  12.021 ms  9.479 ms
 4  202.97.53.218  17.723 ms
    202.97.54.82  70.103 ms  70.372 ms
 5  202.97.57.146  76.354 ms
    202.97.52.62  98.138 ms  119.873 m
 6  219.158.22.106  87.251 ms  86.784 ms  93.242 ms
 7  219.158.96.17  91.581 ms  91.494 ms  91.970 ms
 8  219.158.17.77  95.553 ms  98.108 ms  98.389 ms
 9  219.158.26.9  90.105 ms  91.636 ms  95.205 ms
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

3.可见一直跑到了第 10 层就停住了,原因是目标IP设置了过滤规则,被当成垃圾数据过滤掉了,无法进入上海公安服务器集群,需要了解目标IP是否设置了过滤规则,由网络管理员进行排查。

总结

traceroute 命令是网络故障排查的重要手段,可以用于确定网络中哪个节点或设备出现故障,帮助管理员快速定位故障原因和解决问题,从而提高网络运营效率和用户满意度。