tracert命令

2024-05-1905:40:15综合资讯1

1、Tracert简介
Tracert是一种工具,用于追踪网络数据包从一个源地址到一个目标地址的路径。它清晰地显示了数据包在转发过程中的经过路径。Tracert基于ICMP协议实现。当网络出现故障时,用户可以使用Tracert来识别有问题的网络节点。
2、Tracert实现过程
Tracert的工作流程如下:
1. 源端(SwitchA)发送一个UDP数据包到目标端(日志主机),TTL值设为1,目的UDP端口号大于30000(通常大于30000的UDP端口号没有被任何应用程序占用)。
2. 第一次路由跳点(SwitchB)收到源端发送的数据包后,由于目标IP地址不是自己的IP地址,故将TTL值减1。如果TTL值变为0,则丢弃数据包并在源端发送一个ICMP超时报文(其中包含第一次跳点的IP地址10.1.1.2),这样,源端就会得知SwitchB的地址。
3. 源端收到SwitchB的ICMP超时报文后,再次发送一个UDP数据包到目标端,并设置TTL值为2。
4. 第二次路由跳点(SwitchC)收到源端发送的数据包后,回复一个ICMP超时报文,这样,源端就会得知SwitchC的地址(10.1.2.2)。
5. 上述过程持续进行,直到目标端收到源端发送的UDP数据包并将其处理。此UDP数据包的目标IP地址是自身IP地址,目标端根据数据包中的目的UDP端口号查找占用此端口号的上层协议。由于目标端没有应用程序在使用该UDP端口号,因此它会返回一个ICMP端口不可达报文(其中包含目标端的IP地址10.1.3.2)。
6. 源端收到ICMP端口不可达报文后,确定UDP数据包已到达目标端,从而得知数据包从源端到目标端所经过的路径(10.1.1.2;10.1.2.2;10.1.3.2)。
3、华为设备支持的Tracert命令
查看华为设备命令参考手册获取具体命令参数和使用方法。以下列出常用的参数及解释:

tracert [ -a source-ip-address | -f first-ttl | -m max-ttl | -p port | -q nqueries | -vpn-instance vpn-instance-name | -w timeout ] host

-a:指定数据包的源地址。如果不指定,则使用出接口的IP地址作为Tracert数据包的源地址。
-f:指定初始TTL。在经过的跳数小于此值的情况下,由于TTL字段值大于0,经过的这些节点不会向源主机返回ICMP超时报文。如果不设置max-ttl参数,则first-ttl的值必须小于max-ttl。
-m:指定最大TTL。通常设置为经过站点的跳数。如果不设置first-ttl参数,则max-ttl的值必须大于first-ttl。默认最大TTL为30。
-p:指定目标主机的UDP端口号。如果不指定,Tracert命令会使用大于32768的随机端口作为目标设备接收数据包的端口。如果指定目标UDP端口号,需避免使用对端设备已开启的端口号,否则可能导致Tracert失败。
-q:指定每次发送的UDP探测数据包的数量。当网络质量较差时,可以增加发送探测数据包的数量以确保能到达目标节点。默认每次发送3个UDP探测数据包。
-w:指定等待响应报文的超时时间。当发送的数据包到达某网关超时时,会显示“ ”。如果网络质量差且速度较慢,建议增加发送数据包的超时时间。默认超时时间为5000毫秒。
-host:可以是IP地址或域名。如果是域名,会首先进行DNS解析并显示解析后的IP地址。
4、电脑支持的Tracert命令
计算机上的Tracert功能与操作系统有关,以下是Windows操作系统中常用的参数及解释:

tracert [ -d | -h maximum_hops | -j host-list | -w timeout ] host

-d:不解析主机名。
-h:指定最大TTL的值。
-j:设置松散源地址路由列表。
-w:设置UDP数据包的超时时间(单位:毫秒)。
-host:指定目标主机的域名或IP地址。
5、Tracert示例
以下是一个Tracert命令的示例:

tracert 10.26.0.115

输出如下:

traceroute to 10.26.0.115 (10.26.0.115), max hops: 30, packet length: 40, press CTRL_C to break
1 10.3.112.1 10 ms 10 ms 10 ms
2 10.32.216.1 19 ms 19 ms 19 ms
4 10.32.136.23 19 ms 39 ms 39 ms
5
6
7
8 10.26.0.115 69 ms 79 ms 79 ms

表1:Tracert命令输出信息的说明
| 项目 | 描述 |
|---|---|
| traceroute to | Tracert检测的目标地址。 |
| max hops | 最大TTL数。 |
| packet length | 发送的数据包长度。 |
| 1 10.3.112.1 10 ms 10 ms 10 ms | “1”表示第一跳网关。每增加一跳,序号递增。默认最大跳数为30跳。 |
| “10.3.112.1”表示第一跳的网关地址。每跳序号后的IPv4地址表示本跳的网关地址。 |
| “10 ms 10 ms 10 ms”表示发送的3个UDP数据包和与相应的接受ICMP超时报文或ICMP端口不可达报文的时间差。默认情况下,探测每跳时的UDP探测数据包数量为3个。 |
| 当网络上出现路由环路时,Ping命令只能知道接收端出现超时错误,而Tracert命令可以轻松地发现路由环路等潜在问题。在使用Tracert检测某个地址时,如果多次出现相同的地址,则可以认为出现了路由环路。 |
| | 在经过第N跳后,一定时间内没有收到ICMP超时报文或ICMP端口不可达报文。默认等待响应报文的超时时间为5000毫秒。 |