对于网络工程师来说,需要熟练掌握的windows路由追踪命令有两个:tracert和pathPing,其中pathPing是tracert和Ping命令的结合,不但可以追踪目标IP地址的路由,还可以测试经过的每一跳的时延和丢包率。
tracert命令及举例
tracert命令,通过向目标IP地址发送不同TTL值的Internet控制消息协议ICMP回应数据包,发送规则是:先发送TTL为1的回应数据包,并在随后的每次发送过程将TTL递增1,直到目标IP地址响应或TTL达到最大值。
路径上的每个路由器,在转发数据包之前至少将数据包上的TTL递减1,直到TTL减为0时,路由器将ICMP超时消息发回源地址。通过检查ICMP超时信息,tracert命令就可以显示出目标IP地址所经过的路径。
Tracert命令格式如下:
用法: tracert [-d] [-h maximum_hops] [-j hOSt-list] [-w timeout] [-R] [-S srCADdr] [-4] [-6] target_name
选项:
-d 不将地址解析成主机名。
-h maximum_hops 搜索目标的最大跃点数。
-j hOSt-list 与主机列表一起的松散源路由(仅适用于 IPv4)。
-w timeout 等待每个回复的超时时间(以毫秒为单位)。
-R 跟踪往返行程路径(仅适用于 IPv6)。
-S srCADdr 要使用的源地址(仅适用于 IPv6)。
-4 强制使用 IPv4。
-6 强制使用 IPv6。
如果不带选项的话,会将IP地址解析成主机名,因为需要查询DNS,所以速度比较慢。
-d选项:不将IP地址解析成主机名,因此路由追踪速度快很多。
-h选项:说明路由的最大跳数,默认是30跳。
-w选项:说明等待每一个ICMP响应报文的时间,默认4s,如果接收超时,则显示星号*。跳数和等待时间,使用默认值即可,所以平时一般都不需要添加这两个选项。
-j选项:说明ICMP报文要使用IP头中的松散源路由选项,后面是经过的中间节点的地址或主机名字,最多9个,各个中间节点用空格隔开。
这里说明下松散源路由和严格源路由,严格源路由是指,相邻路由器之间不得有中间路由器,并且所经过路由器的顺序不可更改。而松散源路由,则相反,相邻路由器之间可以有中间路由器。一般的路由追踪,也用不到-j这个选项。除非是针对大的网络故障,需要检测几条路径到达同一个目的地址,才需要使用-j选项。所以,通常情况下,我们使用tracert–d这种格式就可以了。我们以追踪163网站为例。

从路由表中,可以清楚看出到达163点的每一跳的IP地址。如果追踪不了目的地址,那么故障肯定出在第一个请求超时的节点。(图中因为我是强制使用IPv4,所以会有的地方如是不是IPv4会出现请示超时)

上图不是强制IPv4的
当能够追踪目的地址的时候,有时候也会出现请求超时的现象。这是因为某些核心节点,为了防止IP泄露,设置了禁止跟踪。从路由表中,我们还可以看出,每一条都有三个时间,这是因为tracert每一跳会发出三个TTL包,三个数字都表示ping值。
有时候,这三个时间,也有可能个别出现星号,即意味着数据报超时没有返回,该节点可能存在问题。当然,也有可能是由于路由器限速的原因。从tracert每一跳的三个时间值,我们也可以大致得出每一跳的网络时延。比如在私网和省内,时延都在10ms以内,到了省外就超过了20ms了。如果需要了解每一跳的丢包率等信息,那就必须使用pathping命令了。
pathping命令及举例
Pathping命令的格式如下:
用法: pathping [-g hOSt-list] [-h maximum_hops] [-i address] [-n] [-p period] [-q num_queries] [-w timeout]
[-4] [-6] target_name
选项:
-g host-list 与主机列表一起的松散源路由。
-h maximum_hops 搜索目标的最大跃点数。
-i address 使用指定的源地址。
-n 不将地址解析成主机名。
-p period 两次 Ping 之间等待的时间(以毫秒为单位)。
-q num_queries 每个跃点的查询数。
-w timeout 每次回复等待的超时时间(以毫秒为单位)。
-4 强制使用 IPv4。
-6 强制使用 IPv6。
因此,在通常情况下,我们使用pathping -n格式就行了,路由追踪速度更快。下面,以百度为例:Pathping运行的第一个结果就是路由表,这个和tracert的结果是一致的。

经过200秒的统计时间,显示时延和丢包率的测试结果。往返时延RTT,显示省内都在10ms以内,省外时延20毫米以上,链路丢包率都是0,网络质量还是不错的。

针对CDN网络,当接到客户反馈网络质量不稳定的时候,就可以用pathping命令,根据时延和丢包率,来简单判断到底是哪个节点出现了问题。












暂无评论内容