两个私有IP之间的路由如何通过公有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 

第一个10.0。*范围是在我的组织内部。 最后的10.1。*范围是我的组织的另一个网站。 中间地址属于不同的ISP。 我期望这两个站点之间有某种VPN,但我对networking拓扑结构知之甚less。

我不明白的是,路由如何从私有地址通过公有地址回到私有地址。 search引导我到MPLS Traceroute上的公网IP ,给出了一个可能的解释: MPLS 。 MPLS是唯一可能或最可能的解释吗? 否则,这告诉我有关我们的networking基础设施?

奖励的问题,我的教诲:在这种情况下谁是生成ICMP TTL超出数据包,如果相关修改其源地址和目标地址?

有networking地址转换(NAT)两端的服务器。 由于地址通过这些服务器,数据包上的标题地址被重写为该服务器的Internet地址。 服务器跟踪哪些连接属于哪个内部主机。

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

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

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

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