路由跟踪

来自术语
跳转至: 导航搜索

    一种网络工具,方便用户了解分组从本地主机到达远程主机经过的通路,主要跟踪沿通路的中间路由器。

属性

应用 确定数据包在网络上的停止位置 领域 互联网
英文名 trace-route 中文名 路由跟踪

工作原理

通过向目标发送不同 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。

相关实例

在下例中,数据包必须通过两个路由器(10.0.0.1 和 192.168.0.1)才能到达主机172.16.0.99。主机的默认网关是 10.0.0.1,192.168.0.0 网络上的路由器的 IP 地址是 192.168.0.1。

C:\>tracert 172.16.0.99 -d

Tracing route to 172.16.0.99 over a maximum of 30 hops

1 2s 3s 2s 10,0.0,1

2 75 ms 83 ms 88 ms 192.168.0.1

3 73 ms 79 ms 93 ms 172.16.0.99

Trace complete.

解决问题

可以使用 tracert 命令确定数据包在网络上的停止位置。下例中,默认网关确定 192.168.10.99主机没有有效路径。这可能是路由器配置的问题,或者是 192.168.10.0 网络不存在(错误的 IP 地址)。

C:\>tracert 192.168.10.99

Tracing route to 192.168.10.99 over a maximum of 30 hops

1 10.0.0.1 reports:Destination net unreachable.

Trace complete.

Tracert 实用程序对于解决大网络问题非常有用,此时可以采取几条路径到达同一个点。

Tracert 命令行选项

Tracert 命令支持多种选项,如下表所示。

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

选项

描述

-d

指定不将 IP地址解析主机名称。

-h maximum_hops

指定跃点数以跟踪到称为 target_name 的主机的路由。

-j host-list

指定 Tracert 实用程序数据包所采用路径中的路由器接口列表。

-w timeout

等待 timeout 为每次回复所指定的毫秒数。

target_name

目标主机的名称或 IP 地址。

当我们不能通过网络访问目的设备时,网络管理员就需要判断是哪里出了问题。问题不仅仅会出现在最终目的设备,也可能出现在转发数据包的中间路由器

探测方式

有3种方式用来探测一个数据包从源点到目的地经过了哪些中转路由器,这3种方式分别是:基于记录路由选项的路由探测,基于UDP协议的路由探测,基于ICMP Echo Request的路由探测。三种方式都可以用来探测一个数据包到达目的设备经过了哪些中间路由器,但实现的过程却截然不同。

注意:理解这些探测方法的关键要领是熟悉IP数据报和ICMP数据报的格式。

如何跟踪IP地址

作为网管员,在我们解决Windows 操作系统的DHCP故障时,有时要找出某个地址范围内有哪些地址没有被使用。本人以前介绍过一种方法:打开命令提示窗口,在For…in…Do循环中调用ping命令。

例如,为了找出在地址范围192.168.1.1 到 192.168.1.100有哪些地址没有被使用,可以使用这个命令:For /L %f in (1,1,100) Do Ping.exe -n 2 192.168.1.%f

该命令会报告指定范围内的所有IP地址,不管是在用的还是未用的,用户都不得不在认证系统命令行窗口中翻看大量的内容。其实,我们完全可以避免这些麻烦,只需建立一个批处理文件,要求它只返回那些未用的IP地址,然后再将命令的

结果输入到一个文本文件中。Windows系统如何跟踪IP地址,下面介绍方法:

打开记事本,在窗口中输入如下的命令:

@Echo off

date /t > IPList.txt

time /t >> IPList.txt

echo =========== >> IPList.txt

For /L %%f in (1,1,100) Do Ping.exe -n 2 192.168.1.%%f |find"Request timed out." && echo 192.168.1.%%f Timed Out >>IPList.txt && echo off

:如果是正win7中"request timed out"要修改成"请求超时"

cls

Echo Finished!

@Echo on

Notepad.exe IPList.txt

将此文件存为IPTracker.bat,关闭记事本程序。

需要注意的是,在这个批处理文件中,整个的For…In…Do命令由几个被“&&”连接起来的命令组成。该命令以“For”开始,以“Off”结尾,而且整个命令必须在一行上。当然,如果用户要使用此方法的话,需要使用用户自己的IP

地址来替换示例中的IP地址。

以后,如果用户要解决DHCP问题,可以在浏览器窗口中定位并双击IPTracker.bat文件,然后启动一个IP地址跟踪工具,这个批处理只查找那些未用的IP地址,并将结果存到记事本文件中。(在此例中,这个保存的批处理文件成为一

个IP地址跟踪工具,它可以一次创建,反复使用。[1] 



链接

Zhishi.me http://zhishi.me/baidubaike/resource/路由跟踪
http://zhishi.me/hudongbaike/resource/路由跟踪