具有公共 IP 地址的主机如何在其跟踪路由中拥有具有私有 IP 地址的节点?

网络工程 路由 路由器 ipv4 服务提供者
2021-08-01 19:56:04

我正在对通过有线运营商连接到 Internet 的用户进行一些研究,我看到了一些不寻常的路由痕迹。

关于设置的一点:

基本上用户有一个连接到 DOCSIS 调制解调器的家庭路由器。路由器似乎使用 DHCP 为其 WAN 接口从调制解调器接收公共 IP 地址,但是当 traceroute 完成时,路径中有许多路由器具有私有 IP 地址。

示例跟踪路由输出:

Tracing route to google.com [5.22.190.25]
over a maximum of 30 hops:

  1     3 ms     1 ms     1 ms  192.168.1.1//This router has public WAN address
  2    10 ms    12 ms     8 ms  10.14.0.1
  3    11 ms    19 ms     9 ms  bg-he-m-1-pc2.sbb.rs [89.216.6.94]
  4    12 ms    11 ms    11 ms  bg-he-m-1-pc2.sbb.rs [89.216.6.94]
  5    12 ms    11 ms    12 ms  cache.google.com [5.22.190.25]

Trace complete.

我在其他提供商上也看到了一些使用 176.16.0.0/12 地址的示例。私有地址总是紧跟在用户的 CPE 之后。

我对此的一些想法:

据我所知,在公共互联网上路由私有地址是不可能的,互联网上的所有路由器都应该丢弃带有私有 IP 地址目的地的数据包。我知道这里有私有地址的路由器在 ISP 的网络中,但我仍然不明白这一切是如何工作的。

我希望涉及某种隧道,但我相信在这种情况下,只有隧道端点是可见的。另一种选择是运营商级 NAT。我不确定那会是什么样子。据我所知(但我可能是错的),在CGN系统中,用户通常不能直接访问Internet,也不能直接从Internet访问。在我看到的设置中,我可以正常使用其 IP 地址从 Internet 连接到用户。

在这个相当长的阐述之后,我开始指出我应该提出实际问题的地方:

我想知道这里使用哪种技术来启用这样的设置?稍微了解一下架构和 Google 的一些关键字也会有所帮助。

2个回答

没有隧道。这是完全正常的。使用 IP 路由,您担心源地址和目标地址不会改变,除非某些内容是 NAT 的。如果中间的路由器有一个 RFC1918 地址,那很好,因为它仍然可以转发中转流量,因为源和目的地没有变化。

每个路由器将简单地用自己直接连接的接口地址回复源。上面的 10.14.0.1 不是通过 Internet 路由的,它只是连接到 WAN 端的 CPE 的设备。

没有使用魔法技术。这是纯粹的标准路由。

您需要在此处进行区分,即您的 ISP 不是互联网。任何离开您的 ISP 到互联网的流量或您的 ISP 从互联网上的其他实体接收的任何流量都不能使用这些 IP 地址。

但是,您的 ISP 完全有权使用这些 IP 地址,但他们认为在自己的网络内部是合适的。只有在他们的网络边缘,他们才真正需要担心诸如 NAT 之类的事情(如有必要)。

许多大型、较旧的 ISP 将在其所有路由器接口上使用公共 IP 地址,但是许多较小/较新的 ISP 发现获得 IP 空间要困难得多,并且发现他们没有足够的可用空间以这种方式使用。

您很可能为您的 CPE 分配了一个公共 IP 地址,然后使用私有 IP 地址在设备上路由,直到它全部退出到 Internet。