自动分配公共 IP 设置如何影响私有和公共子网?

use*_*944 5 ip-address subnet routetable amazon-web-services amazon-vpc

所以我刚刚学习AWS VPC网络。据我了解,公共子网和私有子网之间的主要区别在于该子网中的流量是否可以路由到互联网网关(通过路由表规则)。

然而,这似乎并不是两者之间的唯一区别。我注意到公共子网将始终启用auto-assign public IP address,而私有子网将禁用它。

因此,作为一个思想实验,我想知道如果我在公共子网中禁用自动分配功能,或在私有子网中启用它,会发生什么?

我可以猜测,如果我在私有子网中启用它,可能不会发生任何事情,因为无论如何都没有流量可以路由到互联网网关。因此,自动分配的 IP 地址将被浪费。

但是第一个场景呢?如果我在公共子网中禁用自动分配,流量是否仍然能够路由到 Internet 网关并最终路由到 Internet?我可以在该公共子网中创建一个 NAT 并将所有 Internet 流量路由到该 NAT,这样我们就不需要将公共 IP 分配给所有公共实例吗?我知道我们可以将这些实例移动到私有子网并将它们路由到 NAT,但我只是好奇我们是否必须为公共子网中的所有实例分配单独的 IP 地址,因为这对我来说似乎有点不必要。

Unb*_*ess 3

据我了解,公共子网和私有子网之间的主要区别在于该子网中的流量是否可以路由到互联网网关(通过路由表规则)。

这是对的。

然而,这似乎并不是两者之间的唯一区别。我注意到公共子网将始终启用自动分配公共 IP 地址,而私有子网将禁用它。

这也是正确的。任何想要通过公共互联网与另一个实体交谈的实体都需要一个公共 IP。

当您使用公共子网时,AWS“出来”的 IP 是与资源(例如 EC2)关联的网络接口的 IP,而当您使用带有 NAT 网关的私有子网时(因为这是唯一的方法)向私有子网提供互联网连接),AWS“出来”的 IP 是与 NAT 网关关联的网络接口的 IP。

因此,作为一个思想实验,我想知道如果我在公共子网中禁用自动分配功能,或在私有子网中启用它,会发生什么?

如果您要在公有子网中禁用自动分配功能,则在该子网中创建的任何网络接口(无论是与 EC2 实例关联还是与 NAT 网关的弹性 IP 关联)都不会具有公有 IP 。这确实会阻止流量传到互联网。

如果您要在私有子网中启用自动分配功能,实际上不会产生任何影响。