在 ping 尝试中,“TTL 在传输中过期”是什么意思?

在 ping 尝试中,“TTL 在传输中过期”是什么意思?

当我们尝试 ping 不同网段的服务器时,我们收到消息“TTL 在传输中过期”。当我们运行 tracert 时,4 个 IP 地址无限重复:

14    60 ms    59 ms    60 ms  xxx.xxx.xxx.2
15    83 ms    81 ms    82 ms  xxx.xxx.xxx.128
16    75 ms    80 ms    81 ms  xxx.xxx.xxx.249
17    81 ms    78 ms    80 ms  xxx.xxx.xxx.250
18    82 ms    80 ms    77 ms  xxx.xxx.xxx.2
19   102 ms   101 ms   100 ms  xxx.xxx.xxx.128
20   101 ms   100 ms    98 ms  xxx.xxx.xxx.249
21    97 ms    98 ms    99 ms  xxx.xxx.xxx.250
...

解决此错误的基本步骤是什么?

答案1

正如以上所有答案所述,路由中存在循环,导致 TTL 过期。

检查 IP 地址重复的设备上路由。在 Linux 上,您可以使用

route -n 

以 root 用户身份查看当前路由表。在 Windows 上,您可以转到 cmd 并使用命令

route print

查看当前路由表。在思科可管理交换机上,您可以使用命令

show ip route

对所有四个重复的 IP 使用上述命令,您应该会看到哪个路由表是错误的。所涉及的四个设备/主机中的一个应该理想地将流量路由到您正在使用其他网关 ping 的目的地。

答案2

您的网络配置中有一个循环路由,请检查所涉及设备上的路由表。

“TTL 在传输中过期”与数据包的 TTL 值有关;数据包经过的每个路由器都会将其降低一。如果达到 0,则丢弃数据包并向发送者发送 ICMP 消息(“传输中过期”消息)。它可以防止无限循环,即数据包永远循环传输。

答案3

IP 数据包有一个生存时间标志。每次路由数据包时,该标志都会减 1。当该值变为 0 时,路由器会丢弃数据包并发送 ICMP 消息传输过程中超出生存时间
这样做是为了防止在网络出现路由问题时数据包被无限路由。这就是您的情况,您有一个路由循环,因此数据包永远无法到达目的地,最终被其中一个路由器丢弃,因为 TTL 达到 0 。

答案4

您没有提到协议,但我发现过度使用静态路由经常会导致错误。使用动态路由协议应该可以解决这个问题,管理员只需付出很少的努力。

我只想说从第 1 层开始。确保路由器已打开,并且将其连接到网络的端口已打开。然后映射从 ICMP 源到目标路由器的路由,检查路径上每一跳的路由表。

相关内容