如何使用Tracert命令进行故障排查?

2021-05-17 15:56:10 浏览数 (1)

1 tracert命令简介

Ping可以告诉用户目标是否可达,而Tracert命令用于测试数据包从发送主机到目的地所经过的设备,它主要检查网络连接是否可达,以及分析网络什么地方发生了故障。

Tracert的执行过程如下:

  • 首先发送一个TTL为1的UDP报文。
  • 到达第一跳时TTL超时,第一跳设备发回一个ICMP错误消息,指明此数据包不能被发送。
  • 发送主机将TTL加1,重新发送此数据包。
  • 第二跳设备返回TTL超时报文。

以上步骤循环进行,直到到达目的地。这样,发送主机就能够记录每一个ICMP TTL超时消息的源地址,得到IP数据包到达目的地所经历的路径。

2 Tracert命令格式

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

  • -a:指明本次tracert命令配置的报文源地址。如果不指定源地址,将采用出接口的IP地址作为tracert报文发送的源地址。
  • -f:指定初始TTL。设置first-TTL,当经过的跳数小于此参数值,由于TTL字段的值大于0,经过的这几个节点不会返回ICMP超时报文给源主机。如果已经设置了max-TTL参数值,first-TTL的取值必须小于max-TTL。
  • -m:指定最大TTL。通常情况下,max-TTL的值被设置为经过站点的跳数。如果已经设置了first-TTL参数值,max-TTL的取值必须大于first-TTL。
  • -q:指定每次发送的UDP探测数据包个数。当网络质量不高时,可以增加发送探测数据包数目,保证探测报文能够到达目的节点。
  • -vpn-instance:指定tracert目的地址的VPN属性,即关联的VPN实例名称。
  • -w:等待响应报文的超时时间。当发送数据包到达某网关超时,则输出“ * ”。如果网络质量不高且速度很慢,建议增加发送数据包的超时时间。
  • host:可以是IP地址或域名,如果是域名会首先进行DNS解析,并显示解析后的IP地址。

3 tracert 举例

PC上的tracert功能与操作系统相关,这里以Windows操作系统为例说明:

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

  • -d:不解析主机名。
  • -h:指定最大TTL的数值。
  • -j:设定松散源地址路由列表。
  • -w:用于设置UDP报文的超时时间,单位为毫秒。
代码语言:javascript复制
<HUAWEI> tracert 10.1.1.2
 traceroute to  10.1.1.2(10.1.1.2), max hops: 30 ,packet length: 40,press CTRL_C to break
 1 192.168.200.100 10 ms  2 ms  2 ms
 2  *  *  *
 3 10.1.1.2 10 ms  1 ms  2 ms

显示信息每行包含编号、到达的设备IP地址、3次报文的响应时间

中间部分显示为“* * *”,说明该节点设备配置不允许ping和tracert。

当网络上出现路由环路时,使用ping命令只能知道接收端出现超时错误,而tracert命令能够很容易发现路由环路等潜在问题。在tracert某地址时,多次出现相同的地址,即可认为出现了路由环路。

0 人点赞