路由跟踪结果中的私有地址

路由跟踪结果中的私有地址

我通过 SSH 连接到远程主机194.199.68.165,然后使用 traceroute 检查路径132.227.62.122,我注意到有一些私有 IP,例如 10.230.10.1

    bash-4.0# traceroute -T 132.227.62.122
    traceroute to 132.227.62.122 (132.227.62.122), 30 hops max, 60 byte packets 
     1  194.199.68.161 (194.199.68.161)  1.103 ms  1.107 ms  1.097 ms
     2  sw-ptu.univ.run (10.230.10.1)  1.535 ms  1.625 ms  2.172 ms
     3  sw-univ-gazelle.univ.run (10.10.20.1)  6.891 ms  6.937 ms  6.927 ms
     4  10.10.5.6 (10.10.5.6)  1.544 ms  1.517 ms  1.518 ms
     5  194.167.142.22 (194.167.142.22)  2.993 ms  2.985 ms  2.976 ms

为什么主机附近有私人地址?

这些私有地址的用途是什么?我的意思是为什么他们要将公共 IP 放在私有 IP 后面?

谢谢!

答案1

看起来你很难理解弗兰克·托马斯所说的话。

简单网络

假设您位于主机 A。如果您想到达主机 D,则需要通过路由器 B 和 C。B 和 C 都在公共网络上有接口(分别为 155.10.30.1 和 132.277.62.1)。但是,它们的内部路由网络由私有空间分配。也就是说,要从 B 路由到 C,您必须经过私有网络。如果您要从 A 跟踪路由到 D,您会看到类似以下内容:

traceroute to 132.227.62.122 (132.227.62.122), 30 hops max, 60 byte packets 
 1  155.10.30.1 1.103 ms  1.107 ms  1.097 ms
 2  10.10.10.2  1.535 ms  1.625 ms  2.172 ms
 3  132.277.62.122  6.891 ms  6.937 ms  6.927 ms

请注意,此示例的时间无关紧要。

因此,即使网络的两端都是公共的,路由器 B 也有一个通过 C 到达 D 的路由。现在,请理解 - 在现实世界中,B 可能也有一条通往互联网的路由。但是,在这种情况下,D 的网络通过 C 在 B 上有一个更好的路由(或用技术术语来说 - 更低的度量)。因此,您看到的是私有网络。

发生这种情况的原因取决于具体网络。我猜一下。你似乎在大学网络上。我这样说是基于你的内部的IP 地址有一个 DNS 条目。其中有一个univ。如果确实如此,则您现在正在大学内或大学内部进行路由。因此,从一所大学到另一所大学的最佳路线实际上可能是内部路线,而不是通过互联网。他们可能有自己运行的电路,或者他们可能使用 MPLS 或帧中继来创建专用电路。

希望有所帮助。

答案2

Tracert 的工作原理是向目标主机发送数据包,但将 TTL 设置为下一个预期跳数(例如,其第一个数据包的 TTL=0,然后是 TTL=1,等等)。当 TTL=0 时,第一个路由器将向使用其自身 IP 作为发送方的主机返回 ICMP TTL 超出消息,并丢弃该数据包。在列出结果时,tracert 会关注该 TTL 超出消息。

因此,如果在第 9 跳左右(初始 TTL=10),而通向目的地的下一跳是通过内部网络(10.230.10.0/24),则该网络的路由器会注意到生存时间已过期,并再次通过向主机发送 ICMP TTL 超出消息做出响应,使用发送方 IP 10.230.10.1。请记住,NAT 路由器的两侧之间都有一跳,因此确实会出现 NAT 网络。由于不了解您的具体情况,我无法告诉您更多信息,但 ISP 和大学等大型组织在内部使用许多私人网络。

通过使用此方法,您可以观察通过私有网络移动的路径,而无需实际上能够直接从它们发送或接收。

更多信息这里

相关内容