跟踪路由中不同目的地的跳数相同

跟踪路由中不同目的地的跳数相同

当我对不同的目标地址使用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。当 TTL 达到 0 时,如果数据包未到达其预期目的地,则会发回 ICMP 不可达消息,其中包含最后到达的路由器的 IP 地址。

因此,当您发出该tracert命令时,Windows 会发出一系列 ICMP 数据包,其 TTL 值不断增加。第一个数据包的 TTL 值为 1,下一个数据包的 TTL 值为 2,依此类推。通过这种方式,可以发现通往目的地的路径上的每个路由器 - 如果它回复 ICMP 不可达。如果它只是丢弃数据包,您会从 tracert 获得 * * * 响应,而没有任何信息。

因此,这里发生的情况似乎是您的 ISP(AngelDrops)不遵守 TTL 设置。相反,他们似乎在数据包到达他们时从数据包中剥离或过滤该信息。因此,一旦数据包到达 AngelDrops,他们就会以更高的“默认”TTL 将其转发到目的地。这会导致数据包一直穿越到目的地,您看到的最终响应来自目的地。

IP 数据包中的 TTL 实际上是为防止网络环路而设计的,网络环路是指数据包在网络内部不断地循环弹跳。

我希望这说得通。那么,您的 ISP 为什么要这样做呢?我不太清楚,但可能是他们认为篡改 TTL 可能会给网络带来安全风险,因此会对其进行过滤。遵守 TTL 数据对于网络正常运行来说并不是必要的。

因为我对天使滴,可能是因为这个 ISP 存在一些非标准问题,可能是无线问题,或者是 VPN 服务,或者诸如此类的问题。有很多可能的技术问题导致它们出现问题。

根据我在您的跟踪路由中看到的信息,您似乎正在使用某种共享互联网服务。您没有获得真正的公共 IP,因此您可能位于某种 NATted 网络之后,您与多个用户共享同一个公共 IP。这可以解释一切。

相关内容