it-swarm.cn

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
...

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

57
Leonardo

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

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

route -n 

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

route print

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

show ip route

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

33
Saurabh Barjatiya

您的网络配置中有一条循环路由,请在相关设备上检查路由表。

“ TTL传输中过期”与数据包的TTL=值有关;它经过的每个路由器都将其降低1,如果达到0,则将数据包返回给发送方。无限循环,其中数据包永远循环。

18
Eric

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

13
radius

在检查四个路由器的路由表时,重点关注路由的网络掩码,以及路由器是否能够路由“ classless”。

在较老的Cisco上,您需要明确启用此功能,否则它们将路由整个有类网络而不是您的子网。例如。配置10.20.30.0/24将导致类似10.0.0.0/8

1
PEra

当ping导致Expired In Transit ...短图时-ISP ==>路由器==>交换机==>到PC

如果ISP可以看到他们的设备,则可能需要重新启动服务器。如果有效,那么您一切就绪。如果不是,那么您可能需要重新启动路由器。

我收到相同的错误消息。我重启了交换机,一切恢复了。

祝好运。

0
Lake Seri

好的,我将和其他所有人一起讨论。您有一个路由循环,这一事实证明了ICMP回声请求在相同的4个路由器之间保持循环。从x.x.x.250处的路由器开始,检查路由器上的路由表。

0
joeqwerty

您没有提到协议,但是我发现静态路由的过度使用经常会导致错误。使用动态路由协议应该可以轻松解决此问题。

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

0
HeavyObjectLifter