网络故障排查之tracert命令详解
首页 > HuaWei > 故障处理   作者:杭州清默网络  2016年7月20日 12:16 星期三  字号:   评论:0 条
时间:2016-7-20 12:16   评论:0 条 

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


    1Tracert简介

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

 

    2Tracert实现过程

       Tracert的流程.png

                                          1 Tracert的流程

    Tracert的实现如上图1所示,Tracert的工作流程为:

    1、源端(SwitchA)向目的端(日志主机)发送一个UDP报文,TTL值为1,目的UDP端口号是大于30000的一个数,因为在大多数情况下,大于30000UDP端口号是任何一个应用程序都不可能使用的端口号。

    2、第一跳(SwitchB)收到源端发出的UDP报文后,判断出报文的目的IP地址不是本机IP地址,将TTL值减1后,判断出TTL值等于0,则丢弃报文并向源端发送一个ICMP超时(Time Exceeded)报文(该报文中含有第一跳的IP地址10.1.1.2),这样源端就得到了SwitchB的地址。

    3、源端收到SwitchBICMP超时报文后,再次向目的端发送一个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.210.1.2.210.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。通常情况下,max-ttl的值被设置为经过站点的跳数。如果已经设置了first-ttl参数值,max-ttl的取值必须大于first-ttl。缺省情况下,最大TTL30

     -p

     指定目的主机的UDP端口号。 如果不指定目的主机的UDP端口号,Tracert命令使用大于32768的随机的端口作为目标设备的接收报文端口。 如果指定目的UDP端口号,需要避免采用对端已经开启的端口号,否则会导致Tracert失败。

    -q

    指定每次发送的UDP探测数据报文的个数。当网络质量不高时,可以增加发送探测数据报文的数目,保证探测报文能够到达目的节点。缺省情况下,每次发送三个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地址。

 

     5Tracert示例

     <SwitchA> 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”表示发送的三个UDP报文和相应接收的ICMP超时报文或者ICMP端口不可达报文的时间差。缺省情况下,检测每跳时,发送的UDP探测数据包个数是三个。

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

*

    经过第N跳时,在一定时间内没有收到ICMP超时报文或者ICMP端口不可达报文。缺省情况下,等待响应报文的超时时间是5000ms

 您阅读这篇文章共花了: 
二维码加载中...
技术交流:欢迎在本文下方留言或加入QQ群:647682417 互相学习。     
本文地址:http://www.023wg.com/guzhang/305.html
版权声明:若无注明,本文皆为“杭州清默网络”原创,转载请保留文章出处。

返回顶部    首页   
版权所有:杭州清默网络    杭州清默网络