跟踪路由 tracert
由于最近遇到网络出现故障的问题,便使用到Tracert来确定了下出现故障的网络节点
记录下tracert命令相关内容
-
1. 简介
- 2. Tracert工作原理...
-
3. 常用参数
- 4. 使用示例与输出信息描述
1.tracert命令简介
Tracert是路由跟踪程序,用于确定 IP 数据报访问目标所经过的路径。Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。 在工作环境中有多条链路出口时,可以通过该命令查询数据是经过的哪一条链路出口。
Tracert一般用来检测故障的位置,我们可以使用用tracert IP命令确定数据包在网络上的停止位置,来判断在哪个环节上出了问题,虽然还是没有确定是什么问题,但它已经告诉了我们问题所在的地方,方便检测网络中存在的问题。
不带参数的Tracert 或 tracert /? 命令显示帮助信息。
2.Tracert工作原理
通过向目标发送不同 IP 生存时间 (TTL) 值的“Internet 控制消息协议 (ICMP)”回应数据包,Tracert 诊断程序确定到目标所采取的路由。要求路径上的每个路由器在转发数据包之前至少将数据包上的 TTL 递减 1。数据包上的 TTL 减为 0 时,路由器应该将“ICMP 已超时”的消息发回源系统。
Tracert 先发送 TTL 为 1 的回应数据包,并在随后的每次发送过程将 TTL 递增 1,直到目标响应或 TTL 达到最大值,从而确定路由。通过检查中间路由器发回的“ICMP 已超时”的消息确定路由。某些路由器不经询问直接丢弃 TTL 过期的数据包,这在 Tracert 实用程序中看不到。
Tracert 命令按顺序打印出返回“ICMP 已超时”消息的路径中的近端路由器接口列表。如果使用 -d 选项,则 Tracert 实用程序不在每个 IP 地址上查询 DNS。
3.常用参数
3.1 不带参数:
不带选项的tracert命令将显示到达目标IP地址所经过的路径,并将IP地址解析为主机名一同显示。如下图所示,第一跳是网关地址,可以根据看到的主机名,判断我使用的是极路由。
3.2 -d选项
不将地址解析成主机名,能够更快地显示路由器路径。与上图对比,路径是一样的,只是不将IP地址解析成主机名,速度更快。下图中红色框所示的主机名已消失。
3.3 -h选项
指定跟踪的跃点数。以下的命令只显示5跳,可以看到命令只跟踪到5跳就结束了。一般来说,5跳之内可能还是本地省内链路。
3.4 -w选项
指定等待每个应答的时间(以毫秒为单位)。默认值为 3000 毫秒(3 秒)。
4、Tracert示例
<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。 |
本文参考了 http://blog.51cto.com/hichuann/1570325。