public 子网在 AWS VPC 中是什么意思?

What does public subnet mean in AWS VPC?

我了解到私有 IPv4 地址 space 是:

Class A 10.0.0.0 – 10.255.255.255
Class B 172.16.0.0 – 172.31.255.255
Class C 192.168.0.0 – 192.168.255.255

私有 IP 地址是无法通过 Internet 访问且通常受防火墙保护的 IP 地址。


169.254.0.0 由 Microsoft 机器使用但未由 IANA 分配


在下面的 AWS VPC 架构中(来自 here):

Public 子网指定为子网 10.0.0.0/24,但此地址是私有地址的一部分 space(10.0.0.0 – 10.255.255.255).

为什么子网 (10.0.0.0/24) 被视为 public 子网?

注: 在 AWS 世界中,将子网关联到 public 路由 table 使其成为 public 子网。具有到 IGW 的出站流量的路由 table 条目表示路由 table、public 路由 table

AWS 中的所有 VPC 都分配了一个 CIDR 范围的 IP 地址。在上面的例子中,VPC 被分配了 10.0.0.0/16.

的 CIDR

在 VPC 中启动的所有资源(例如 EC2 实例、RDS 数据库、弹性网络接口)都分配有该 CIDR 范围内的 IP 地址。

在 AWS 中,public 子网 是一个具有路由 Table 条目的子网,该条目将发往 0.0.0.0/0 的流量定向到互联网网关。这使该 VPC 上的资源能够与 Internet 通信。资源需要分配一个 Public IP 地址才能与 Internet 通信。

私有子网被定义为没有具有路由Table条目的子网互联网网关。私有子网中的资源无法直接与 Internet 通信,反之亦然。

如您的图表所示,10.0.0.0/24 被视为 public,因为它的路由 Table 条目指向 Internet 网关。

"public/private subnets" 的概念与 "public/private IP address ranges" 的概念是分开的。

AWS 在此处使用的术语与 IANA 或 RFC 2918 上限无关。 AWS 使用 public 个子网在 VPC 中定义一个子网,该子网可以暴露给来自 Internet 的请求,例如网络服务器前端。

私有子网与互联网更加隔离,只能接收vpc上其他主机的请求。这减少了不打算直接接受来自 Internet 的请求的主机的攻击面,例如应用程序后端。

你可以多读一点here on the AWS public docs