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封包有一個TTL旗幟。每次路由資料包時,該值都會減 1。當值變為 0 時,路由器丟棄資料包並發送 ICMP 訊息運送過程中超過生存時間
這樣做是為了防止當網路上有路由問題時資料包被無限路由。這就是您的情況,您有一個路由循環,因此封包永遠不會到達目的地,並最終被其中一台路由器丟棄,因為 TTL 達到 0。

答案4

您沒有提到協議,但我發現過度使用靜態路由經常會導致錯誤。使用動態路由協定應該可以解決這個問題,管理員只需付出很少的努力。

我只想說從第一層開始。確保路由器已打開,並且將其連接到網路的連接埠已啟動。然後將您的路由從 ICMP 來源對應到目標路由器,檢查路徑上每一跳的路由表。

相關內容