两个私有IP之间的路由如何通过公共IP?

Gil*_*il' 5 networking routing private-ip

我试图了解这个输出的traceroute含义。我更改了隐私的 IP 地址,但保留了公共/私有 IP 范围的区别。

traceroute.db -e -n 10.1.1.9
traceroute to (10.1.1.9), 30 hops max, 60 byte packets
 1  10.0.0.1  0.596 ms  0.588 ms  0.577 ms
 2  10.0.0.2  1.032 ms  1.029 ms  1.084 ms
 3  10.0.0.3  3.360 ms  3.355 ms  3.338 ms
 4  23.0.0.4  3.974 ms  4.592 ms  4.584 ms
 5  23.0.0.5  13.442 ms  13.445 ms  13.434 ms
 6  45.0.0.6  13.195 ms  12.924 ms  12.913 ms
 7  67.0.0.7  52.088 ms  51.683 ms  52.040 ms
 8  10.1.1.8  46.878 ms  44.575 ms  44.815 ms
 9  10.1.1.9  45.932 ms  45.603 ms  45.593 ms
Run Code Online (Sandbox Code Playgroud)

第一个 10.0.* 范围在我的组织内。最后一个 10.1.* 范围是我组织的另一个站点。中间地址属于不同的 ISP。我希望在两个站点之间有某种 VPN,但我对我们的网络拓扑了解不多。

我不明白的是路由如何从私有地址通过公共地址回到私有地址。搜索使我找到了 MPLS Traceroute 上的公共 IP,这给出了一个可能的解释:MPLS。MPLS 是唯一可能或最可能的解释吗?否则这能告诉我关于我们网络基础设施的什么信息?

我的启发的额外问题:在这种情况下,谁在生成 ICMP TTL 超出数据包,如果相关,他们的源地址和目标地址会被修改?

Bil*_*hor 5

两端都有服务器进行网络地址转换 (NAT)。当地址通过这些服务器时,数据包上的标头地址被重写为该服务器的 Internet 地址。服务器跟踪哪些连接属于哪个内部主机。

Traceroute 显示来自 ICMP 数据包内部的数据,指示是否在给定的跳数内到达了主机。NAT 路由器不会更改此数据。结果,您会看到每个主机在其上接收数据包的地址。

通常,在这种情况下,远端的服务器名称已使用 DNAT(目标 NAT)路由到专用网络上的主机。

地址很可能是通过两个站点之间的 VPN 隧道传递的。VPN 将源地址和最终地址封装在第 3 跳和第 7 跳之间发送的数据包中。效果相同,但机制不同。第 3 跳和第 7 跳的路由器将知道远程路由器支持的地址范围,并相应地路由数据包。离开第 7 跳后,IP 目的地将是 67.0.0.7,公共地址属于第 3 跳。由于路由跟踪的工作方式,这是不可见的。根据 VPN 协议,跳 7 之后的某些跳可能无法追踪。

在某些情况下,您可能会看到 ISP 通过私有地址路由到公共地址。这将显示为两个公共地址之间的一个或多个私有地址。如果具有公共地址的中间路由器属于同一组织,则它们可能具有允许端到端通信而无需转换的路由规则。