在一跳中跟踪路由 RTO,但下一跳有效

网络工程 网络 跟踪路由
2021-08-01 21:36:36

今天当我在做 tracert 的时候,在第 6 跳我得到了 RTO,但我的下一跳似乎可以到达。它是怎么工作的?

6         *       *       *           Request Timed Out
7         58ms    58ms    61ms        63.149.172.54

据我所知:

Tracert 将在 TTL=1 和 3 个数据包的第 1 跳启动 ICMP 回显请求。

当它到达路由器 (1) 时,TTL 变为 0,并且超时消息由路由器 (1) 发送到源。

现在 source 将设置 TTL=2 并再次发送。现在路由器(1)将 TTL 递减为 1 并将其发送到下一个路由器(2)。

Router(2) 将在 TTL 到期时向源发送 Time Exceeded Message。同样,源增加 TTL 值并将其发送到目的地。

如果我的第 6 跳获得 RTO,则路由器已关闭或防火墙阻止,因此它不会向源发送 ICMP 回复。那么,源怎么知道下一个路由器还活着,而没有从前一个路由器得到ICMP回复,源如何找到下一跳或路由器呢?

2个回答

traceroute 所做的所有事情都是随着 TTL 的增加而发送的。您的第六跳可能禁用了该跳的 ICMP 消息,或者它可能太忙而无法及时回复(ICMP 是路由器的低优先级;路由器想先路由,它会在有时间时绕过 ICMP )。这并不意味着它不会传递来自不同来源的 ICMP,因为来自不同来源的 ICMP 流量只是到您的第六跳的更多数据。

根据我的理解,第 6 跳将用作第 2 层设备,并在下面的测试中用作防火墙块。

防火墙在 6 跳之前禁用 ICMP 数据包。从源头来看,Operator 无法使用 ICMP 测试工具进行检查。我们可以对你的 TCP 端口进行测试。就像第 6 跳 IP 地址是 10.20.1.6,您可以远程登录第 6 跳。如果第 6 跳不是路由器/交换机,则它可能是任何设备。它必须使用 tcp 端口提供服务。telnet 有 23 个 tcp 工具号。你可以更换这个号码。与任何 TCP 端口号。它还有助于检查路径之间是否有任何所需的 tcp 端口被阻止或打开。

您使用 telnet 工具进行测试

telnet 10.30.1.6 <tcp port no.>