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