traceroute 命令

用途

显示 IP 信息包至某个网络主机的路由。

语法

traceroute [ -m Max_ttl ] [ -n ] [ -p 港口 ] [ -q 查询 ] [ -r ] [ -d ] [ -g gateway_addr ] [ -s SRC_Addr ] [  -t TypeOfService ] [ -f 流动 ] [ -v ] [  -w WaitTime ] 主持人 [ PacketSize ]

描述

注意: traceroute 命令旨在用于网络测试,测量和管理。 它应主要用于手动故障隔离。 由于它对网络施加的负荷, traceroute 命令不应用于正常的操作中或自动脚本。

traceroute 命令试图跟踪 IP 信息包至某个因特网主机的路由,其具体方法是:先启动具有小的最大存活时间值(Max_ttl 变量)的 UDP 探测信息包,然后侦听从网关开始一路上的 ICMP TIME_EXCEEDED 响应。 探测以一个一跳跃位的 Max_ttl 值开始,该值一次增加一个跳跃值,直至返回 ICMP PORT_UNREACHABLE 消息。 ICMP PORT_UNREACHABLE 消息可以指出主机已经被定位,或命令已经达到允许跟踪的最大跳跃数目。

traceroute 命令在每一个 Max_ttl 设置上发送三个探测值以记录以下一些内容:

  • Max_ttl
  • 网关的地址
  • 每个成功探测器的往返时间

通过使用 -q 标志,可以增加发送的探测数目。 如果探测的回答来自不同的网关,那么命令会显示各个响应系统的地址。 如果在 3 秒的超时时间间隔中没有来自探测的应答,那么会针对该探测显示出 *(星号)。

traceroute 命令打印! (感叹号) 在往返时间之后 (如果 Max_ttl 值等于或小于一个中继段)。 一个跳跃或更小的最大存活时间值一般都指出了不同网络软件处理 ICMP 应答的方式的不兼容性。 不兼容性通常是通过将上次使用的 Max_ttl 值加倍并再次尝试来解析的。

在往返注释后,其他可能的注释有:

描述
!H 主机不可到达
!否 网络不可达
!步 协议不可达
!六 源路由失效
!F 需要分段

如果有许多探测都产生某一错误,那么 traceroute 命令退出。

traceroute 命令唯一的强制性参数就是目标主机名称或 IP 数字。 traceroute 命令将根据输出接口的最大传输单元(MTU)确定探测信息包的长度。 UDP 探测信息包被设置为一个不可能的值,以防止目标主机的处理。

标志

描述
-d 启用套接字级别调试。
-f 在 IPv6 包头设置流量标签字段。 缺省值为 0。
-g 网关地址 通过 IP 源路由选项,使出局包通过指定网关。 使用此标志之前,路由器必须启用 IP 源路由。 此标志仅对 IPv6 地址可用。
-m Max_ttl 设置用于输出探测信息包的最大存活时间(最大的跳跃数)。 缺省值为 30 个跳跃(TCP 连接也使用相同的缺省值)。
-n 以数字方式而不以符号加数字的方式显示跳跃地址。 该标志为在路径上找到的每个网关保存名称服务器的“地址到姓名”查询。
-p 端口 设置用于探测的基本 UDP 端口号。 缺省值为 33434。 traceroute 命令取决于目标主机的开放式 UDP 端口范围,basebase + nhops - 1。 如果 UDP 端口不可用,那么该选项可以用于选择一个未曾使用的端口范围。
-q Nquery 指定 traceroute 命令在每个 Max_ttl 设定值处发出的探测数目。 缺省值为三次探测。
-r 忽略正常的路由表,并直接发送探测信息包至已链接网络上的主机。 如果指定的主机不在直接连接的网络上,那么返回一个错误。 该选项可以用于通过 routed 守护程序路由表中未注册的接口向本地主机发出 ping命令。
-s SRC_Addr 以数字格式将下一 IP 地址用作输出探测信息包的源地址。 在具有不止一个 IP 地址的主机上,可以使用 -s 标志强制将源地址转变成与发送探测包的接口的 IP 地址不同的地址。 如果下一个 IP 地址不是机器接口地址之一,那么返回一个错误且不发送任何内容。
-t TypeOfService 将探测信息包中的 TypeOfService 变量设置为 0 至 255 范围内的一个十进制整数。 缺省值是 0。 此标志可用于调查不同服务类型是否导致不同的路径。 有关更多信息,请参阅 Performance Tools Guide and Reference中的 TCP/IP 协议 。 有用的数值为 -t 16(低延迟)和 -t 8(高吞吐量)。
-v 接收除 TIME_EXCEEDEDPORT_UNREACHABLE 以外的信息包(详细输出)。
-w WaitTime 设置等待探测响应的时间(以秒为单位)。 缺省值为 3 秒。

参数

描述
主机 通过主机名或 IP 数字指定目标主机。 该参数是必要的。
PacketSize 指定探测数据报长度。 缺省信息包大小可以通过 traceroute 命令根据输出接口的 MTU 来确定。

安全性

RBAC 用户注意: 此命令可以执行特权操作。 只有特权用户才能执行特权限定的操作。 有关授权和权限的更多信息,请参阅安全中的特权命令数据库。 有关该命令的权限和授权列表,请参阅 "lssecattr命令或 "getcmdattr子命令。

示例

  1. 一个使用和输出的样本为:
    [yak 71]% traceroute nis.nsf.net.
    traceroute to nis.nsf.net (35.1.1.48), 30 hops max, 56 byte packet
     1 helios.ee.lbl.gov (128.3.112.1) 19 ms 19 ms 0 ms
     2 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 39 ms 19 ms
     3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 39 ms 19 ms
     4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 39 ms
     5 ccn-nerif22.Berkeley.EDU (128.32.168.22) 39 ms 39 ms 39 ms
     6 128.32.197.4 (128.32.197.4) 40 ms 59 ms 59 ms
     7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 59 ms
     8 129.140.70.13 (129.140.70.13) 99 ms 99 ms 80 ms
     9 129.140.71.6 (129.140.71.6) 139 ms 239 ms 319 ms
    10 129.140.81.7 (129.140.81.7) 220 ms 199 ms 199 ms
    11 nic.merit.edu (35.1.1.48) 239 ms 239 ms 239 ms
    由于第二中继段系统上的内核中存在错误,行 2 和 3 相同 (lbl-csam.arpa) 转发具有零生存时间的包。 由于国家科学基金会网络 (NSFNet ,129.140) 不提供其节点的地址到名称转换。
  2. 另外一个输出样本如下:
    [yak 72]% traceroute rip.Berkeley.EDU (128.32.131.22)
    traceroute to rip.Berkeley.EDU (128.32.131.22), 30 hops max
     1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms
     2 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 39 ms
     3 lilac-dmc.Berkeley.EDU (128.32.216.1) 19 ms 39 ms 19 ms
     4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 19 ms
     5 ccn-nerif35.Berkeley.EDU (128.32.168.35) 39 ms 39 ms 39 ms
     6 csgw/Berkeley.EDU (128.32.133.254) 39 ms 59 ms 39 ms
     7 * * *
     8 * * *
     9 * * *
    10 * * *
    11 * * *
    12 * * *
    13 rip.Berkeley.EDU (128.32.131.22) 59 ms! 39 ms! 39 ms!
    在本示例中,恰好“丢失”了 12 个网关跳跃的一半(13 是最后的目标)。 但是,这些跳跃实际并不是网关。 目标主机,一个运行 Sun OS3.5 的 Sun-3 工作站,将来自到达数据报的 ttl 用作其 ICMP 回复的 ttl,因此回复会在返回路径上发生超时。 由于 ICMP 不是对 ICMP 发送的,因此不会接收到任何通知。 我的! (感叹号)每次往返时间只会指示某一类型软件的不兼容性问题。 (其原因是在 traceroute 命令发布一个两倍路径长的探测之后进行诊断。 目标主机实际只是在 7 个跳跃以外。)