托管服务提供商为服务器分配公有和私有 IP

托管服务提供商为服务器分配公有和私有 IP

我最近从 aws 购买了一台 linux 机器。它有一个公共 IP 52.14.xx.xx。当我登录到它的终端时,我注意到它也有本地 IP,即 172.13.xx.xx。看到这个后,我脑海中出现了两个问题:

  1. 托管服务提供商(如 AWS、Digital Ocean)是否会为客户购买的每台服务器分配单独的公共 IP,就像我拥有的​​一样?如果是这样,IPv4 地址空间会不会很快耗尽?

  2. 每台服务器是否都位于单独的路由器后面,并具有像上面那样的本地 IP?如果是这样,我不明白它的重要性,因为无论如何我们都会使用它的公共 IP。

由于我是网络新手,这些疑问可能看起来很模糊,但我尝试用谷歌搜索,但没有得到任何令人满意的答案。请澄清我对这两点的疑问。

谢谢。

答案1

托管服务提供商(如 AWS、Digital Ocean)是否会为客户购买的每台服务器分配单独的公共 IP,就像我有一个一样?

是的,这很常见 – 尽管这取决于托管服务提供商。

较小的提供商(例如 Linode、Vultr、DO)直接分配地址。有一个数据中心,有服务器,每个服务器本身有自己的公共 IP 地址 – 没有 NAT 或任何东西。

但是,大型提供商(AWS、GCP、Azure)通常采用双层系统,将公共 IPv4 地址 DNAT 到服务器的私有 IP。这更复杂,但也有各种优点:

  1. 您可以拥有“浮动 IP 地址”,并可以轻松地将其从一台服务器移动到另一台服务器,而无需重新配置服务器本身 - 提供商只需更改虚拟路由器上的 DNAT 规则即可。
  2. 您可以拥有服务器没有公共地址 – 例如,只能从您的 Web 服务器访问而不能从 Internet 访问的 DB 服务器。
  3. 你通常可以自定义网络,例如对其进行分区——通常可以创建多种的使用不同的安全策略来分离网络,并根据需要配置“虚拟路由器”。

我认为第 2 点是这里最重要的一点。在这些大型供应商中可以决定每次创建服务器时是否都需要公共 IPv4 地址。(公共 IP 通常需要额外付费。)

如果确实如此,IPv4 地址空间会不会很快耗尽?

是的,但可能不是确切地按照你的想法。

IP 地址空间以块(范围)为单位分配。提供商不会在您每次设置服务器时从全球池中抽取单个地址 - 他们必须首先获得整个地址块,并且仅从自己的块中分配地址。

因此,提供商始终确切地知道他们目前拥有多少地址,并据此做出决定。他们可以尝试获取更多地址,或者对每个公共地址每月收费,或者为仅使用 IPv6 的用户提供折扣,等等。您会注意到亚马逊收费按小时计算如果它认为你正在“浪费”你获得的地址。

确实,提供商最终会用尽 IPv4 地址,并需要获取更多地址块,并且会加剧短缺。事实上,如今我们的地址非常短缺,大多数提供商无法再以通常的方式获得新的 IPv4 块 - 他们必须从现有所有者那里购买。(例如,亚马逊 AWS 一直在收集绝对庞大的块 - 它甚至拥有整个 /9 和 /8!)

相关内容