Traceroute 中不同目的地的跳數相同

Traceroute 中不同目的地的跳數相同

當我使用traceroute(實際上tracert是 Windows 的命令)不同的目標位址時,我總是得到相同的跳數。

例如: 對於superuser.com,我得到:

Tracing route to superuser.com [151.101.1.69]
over a maximum of 30 hops:

  1     6 ms     1 ms     1 ms  192.168.0.1
  2     2 ms     3 ms     3 ms  10.201.0.1
  3     4 ms     2 ms     2 ms  angeldropsltd.com [103.242.217.37]
  4     8 ms     4 ms     4 ms  151.101.1.69

Trace complete.

對於microsoft.com,我得到:

Tracing route to microsoft.com [23.100.122.175]
over a maximum of 30 hops:

  1     3 ms     3 ms     1 ms  192.168.0.1
  2     5 ms     2 ms     2 ms  10.201.0.1
  3     4 ms     2 ms     2 ms  angeldropsltd.com [103.242.217.37]
  4     7 ms     4 ms     4 ms  23.100.122.175

Trace complete.

到目前為止我嘗試過的所有其他網站都是類似的。

我想知道發生這種情況的可能原因。我對如何traceroute運作有一些簡短的了解。不同的目的地應該有不同的跳數。我的 ISP (天使滴) 可能沒有所有目標伺服器直接地連接的。我想,我的 ISP 正在這裡做點什麼。那麼出現這種情況的原因有哪些呢?

答案1

我將盡力向您解釋這一點。但是,我不知道你的 ISP 為什麼要這樣做。

首先,了解 Traceroute 的工作原理非常重要。 Traceroute 透過設定其發出的 IP 封包中的 TTL(生存時間)值來運作。封包沿途經過的每一跳都會將 TTL 減 1。

因此,當您發出該tracert命令時,Windows 會發出一系列具有遞增 TTL 值的 ICMP 封包。第一個資料包以 TTL 1 發出,下一個資料包以 TTL 2 發出,依此類推。透過這種方式,可以發現通往目的地的路徑上的每個路由器 - 如果它回覆 ICMP 無法存取。如果它只是丟棄資料包,您會收到來自tracert的***回應,但沒有任何資訊。

因此,這裡發生的情況似乎是您的 ISP (AngelDrops) 不遵守 TTL 設定。相反,當資料包到達他們時,他們似乎正在從資料包中剝離或過濾該資訊。因此,一旦資料包到達 AngelDrops,它們就會將其轉發到具有更高「預設」TTL 的目的地。這會導致資料包一路遍歷到目的地,並且您看到的最終回應來自目的地。

IP 封包中的 TTL 的真正目的是防止網路循環,即封包繼續在網路內永遠繞圈反彈。

我希望這是有道理的。那麼,為什麼您的 ISP 會這樣做呢?我不太確定,但他們可能認為篡改 TTL 可能對其網路造成安全風險,因此他們會對其進行過濾。對於網路的正常運作來說,遵守 TTL 數據並不是真正必要的。

因為我什麼都不知道天使滴,可能是這個 ISP 有一些非標準的東西,也許是無線的,或是 VPN 服務,或是類似的東西。有許多可能的技術問題導致事情變得奇怪。

根據我在您的追蹤路由中看到的內容,您似乎正在使用某種共享的網路服務。您沒有獲得真正的公共 IP,因此您可能位於某種 NAT 網路後面,在該網路中您與多個使用者共用相同的公共 IP。這就能解釋一切了。

相關內容