Icmp

ICMP - TTL - 跟踪路由

  • April 4, 2010

我在 Stack Overflow 上問了這個問題,然後認為這可能是更好的提問地方。

鑑於以下情況:

PC — |aa RTR1 bb| — |aa RTR2 bb| — |aa RTR3 bb| 等等

|aa rtr bb| 中的每一個 意味著是具有兩個埠aa和bb的路由器。

我的問題是這個。當您從 PC 進行跟踪路由時,哪個路由器埠地址應該響應超過傳輸消息中的生存時間?

我似乎記得被教導將路由器視為與埠一樣多的部分,因此在我的場景中,當 aa 將數據包轉發到 bb 並將 ttl 遞減為 0 時,它將是 aa 埠的地址失敗消息。我正在努力尋找確定的答案。

謝謝。

無需過多討論路由的工作原理。您只會看到來自“面向”您機器的界面的響應。

因此,在您的範例中,TTL Exceeded 消息將始終來自“aa”介面之一。基本上處理數據包的邏輯發生在兩個介面之間,然後任何響應或轉發都發送到正確的介面。在您的情況下,將從“aa”發送一條 TTL 超出消息,因為這是返回您的機器的唯一方法。

確定的反應,也許不是,但在我所做的所有測試中都是如此。我認為路由器無法路由,因為 TTL 為空,所以在路由之前,發送 ICMP 數據包。所以它是路徑中找到的第一個 IP。

引用自:https://serverfault.com/questions/128799