网络故障排查之tracert命令详解

1、Tracert简介
Tracert是测试报文从发送端到目的地所经过的路由的方法 。它能够直观展现报文在转发的时候所经过的路径 。Tracert基于ICMP协议来实现的 。当网络出现故障时 , 用户可以使用Tracert确定出现故障的网络节点 。
2、Tracert实现过程
 

网络故障排查之tracert命令详解

文章插图
 
图1 Tracert的流程
Tracert的实现如上图1所示 , Tracert的工作流程为:
1、源端(SwitchA)向目的端(日志主机)发送一个UDP报文 , TTL值为1 , 目的UDP端口号是大于30000的一个数 , 因为在大多数情况下 , 大于30000的UDP端口号是任何一个应用程序都不可能使用的端口号 。
2、第一跳(SwitchB)收到源端发出的UDP报文后 , 判断出报文的目的IP地址不是本机IP地址 , 将TTL值减1后 , 判断出TTL值等于0 , 则丢弃报文并向源端发送一个ICMP超时(Time Exceeded)报文(该报文中含有第一跳的IP地址10.1.1.2) , 这样源端就得到了SwitchB的地址 。
3、源端收到SwitchB的ICMP超时报文后 , 再次向目的端发送一个UDP报文 , TTL值为2 。
4、第二跳(SwitchC)收到源端发出的UDP报文后 , 回应一个ICMP超时报文 , 这样源端就得到了SwitchC的地址(10.1.2.2) 。
5、以上过程不断进行 , 直到目的端收到源端发送的UDP报文后 , 判断出目的IP地址是本机IP地址 , 则处理此报文 。根据报文中的目的UDP端口号寻找占用此端口号的上层协议 , 因目的端没有应用程序使用该UDP端口号 , 则向源端返回一个ICMP端口不可达(Destination Unreachable)报文(该报文含有目的端的IP地址10.1.3.2) 。
6、源端收到ICMP端口不可达报文后 , 判断出UDP报文已经到达目的端 , 则停止Tracert程序 , 从而得到数据报文从源端到目的端所经历的路径(10.1.1.2;10.1.2.2;10.1.3.2) 。
3、华为设备支持的Tracert命令
华为设备《命令参考》手册提供了详细的命令参数和使用方法 。这里只列举了常用的参数 , 并对参数进行解释说明 。tracert [ -a 


    推荐阅读