tracert //命令用于查看数据包从源端到目的端的路径信息,从而检查网络是否可用,当网络出现故障时,用户可以使用该命令定位故障点
命令格式
tracert [ -a source-ip-address | -f first-ttl | -m max-ttl | -name | -p port | -q nqueries | -s packetsize | -w timeout ] * host
| 参数 | 参数说明 | 取值 |
|---|
| -a source-ip-address | | 点分十进制形式。 |
| -f first-ttl | 指定初始TTL。 TTL(time to live)是IP报文首部的生存时间字段,它指定了数据包的生存时间,设置了数据包可以经过的最多跳数。TTL字段由发送报文的源主机设置,每经过一个三层设备,TTL字段的值都会减1,当该字段的值为0时,数据包就被丢弃,并发送ICMP超时报文通知源主机。 设置first-ttl,当经过的跳数小于此参数值,由于TTL字段的值大于0,经过的这几个节点不会返回ICMP超时报文给源主机。 如果已经设置了max-ttl参数值,first-ttl的取值必须小于max-ttl。 | 整数形式,取值范围是1~255。缺省值是1。 |
| -m max-ttl | 指定最大TTL。 通常情况下,max-ttl的值被设置为经过站点的跳数。当需要修改TTL的值时,使用此参数。 如果已经设置了first-ttl参数值,max-ttl的取值必须大于first-ttl。 | 整数形式,取值范围是1~255。缺省值是30。 |
| -name | 使能显示每一跳的主机名。 | - |
| -p port | 指定目的主机的UDP端口号。
- 如果不指定目的主机的UDP端口号,tracert命令使用大于32768的随机的端口作为目标设备的接收报文端口。
- 如果指定目的UDP端口号,需要避免采用对端已经开启的端口号,否则会导致tracert失败。
| 整数形式,取值范围是0~65535。缺省值是33434。 |
| -q nqueries | 指定每次发送的UDP探测数据包个数。 当网络质量不高时,可以增加发送探测数据包数目,保证探测报文能够到达目的节点。 | 整数形式,取值范围是1~65535。缺省值是3。 |
| -w timeout | 指定等待响应报文的超时时间。 当发送数据包到达某网关超时,则输出“ * ”。 如果网络质量不高且速度很慢,建议增加发送数据包的超时时间。 | 整数形式,取值范围是0~65535,单位是毫秒。缺省值是5000毫秒。 |
| -s packetsize | 指定ICMP ECHO-REQUEST报文长度(不包括IP和ICMP报文头)。 | 整数形式,取值范围是12~9600。单位是字节,缺省报文长度是12字节。 |
| host | | 字符串形式主机名,不支持空格,区分大小写,长度范围是1~255。或者合法的点分十进制IPv4地址。 |
应用场景
在日常的系统维护中,首先可以执行ping命令查看网络连通的情况。当网络不通,然后进一步使用tracert命令查看网络中出现故障的位置,为故障诊断提供依据。
可以使用tracert命令参数组合,对特定场景进行检测:
执行
tracert
host命令,可以检测源端到目的主机间的节点信息。
网络环境较差时,执行
tracert
-q
nqueries
-w
timeout
host命令可以检测源端到目的主机间的节点信息。对于可靠性较差的网络,建议发包次数(
-q)和超时时间(
-w)取较大值,这样可以更加准确的得到检测信息。
执行
tracert
-f
first-ttl
-m
max-ttl
host命令,通过指定起始TTL(
first-ttl)和最大TTL(
max-ttl)实现对某一段路径节点的检测。
前置条件
节点设备UDP模块正常工作,否则
tracert失败。
节点设备ICMP模块工作正常,否则返回超时“ * * * ”。
执行过程
tracert命令的执行过程:
发送一个TTL为1的数据包,TTL超时,第一跳发送回一个ICMP错误消息以指明此数据包不能被发送。
发送一个TTL为2的数据包,TTL超时,第二跳发送回一个ICMP错误消息以指明此数据包不能被发送。
发送一个TTL为3的数据包,TTL超时,第三跳发送回一个ICMP错误消息以指明此数据包不能被发送。
上述过程不断进行,直到到达目的地。
在每一跳的目标设备接收到IPv4报文后,由于报文探测指定的端口是一个在目标设备没有应用的端口,目标设备就会响应ICMP port unreachable信息给源端,表示目标端口不可达,同时说明tracert执行完毕。从而可以从源端显示的结果中,看到目标设备所经过的路径。
配置影响
执行tracert命令发现网络出现故障可能输出以下信息符号,具体信息如下:
!H:表示主机不可达
!N:表示网络不可达
!:表示端口不可达
!P:表示协议类型错误
!F:表示报文分片错误
!S:表示源路由错误
注意事项
tracert命令检测和ping命令指定-r参数检测都会返回从源端到目的主机间的节点信息。但是二者最主要区别在于:
ping命令一旦在中间某一个节点超时,则整个ping测试返回超时,不显示任何路径信息。
tracert命令如果在中间某一个节点超时,只会在显示信息中标识此节点信息超时“ * * * ”,不影响整个
tracert命令操作。
使用实例
# 查看从本地主机到目的地址10.26.0.115所经过的网关。
<HUAWEI> 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
3 10.32.216.1 39 ms 19 ms 19 ms
4 10.32.136.23 19 ms 39 ms 39 ms
5 10.32.168.22 20 ms 39 ms 39 ms
6 10.32.197.4 59 ms 119 ms 39 ms
7 192.168.2.5 59 ms 59 ms 39 ms
8 172.16.70.13 80 ms 79 ms 99 ms
9 172.16.71.6 139 ms 139 ms 159 ms
10 172.16.1.7 199 ms 180 ms 300 ms
11 172.16.7.2 300 ms 239 ms 239 ms
12 * * *
13 10.11.4.72 59 ms 499 ms 279 ms
14 * * *
15 * * *
16 * * *
17 * * *
18 10.26.0.115 339 ms 279 ms 279 ms
| 项目 | 描述 |
| traceroute to | 到某个目的地址的tracert检测。 |
| max hops | 最大TTL数。 |
| packet length | 发送的报文长度。 |
| 1 10.3.112.1 10 ms 10 ms 10 ms | “1”表示第一跳网关。每增加一跳,序号递增。缺省情况下,最大跳数是30跳。 “10 ms 10 ms 10 ms”表示发送的三个UDP报文和相应接收的ICMP超时报文或者ICMP端口不可达报文的时间差。缺省情况下,检测每跳时,发送的UDP探测数据包个数是三个。 |
| * * * | 经过第N跳时,在一定时间内没有收到ICMP超时报文或者ICMP端口不可达报文。缺省情况下,等待响应报文的超时时间是5000ms。 |
转载: