VPC 的子网 - Amazon Virtual Private Cloud

VPC 的子网

子网是您的 VPC 内的 IP 地址范围。您可以在指定子网内启动AWS资源。对必须连接互联网的资源使用公有子网,而对将不会连接到互联网的资源使用私有子网。

要保护各个子网中的AWS资源,您可以利用多种安全层,包括安全组和网络访问控制列表 (ACL)。

子网基础知识

子网是您的 VPC 内的 IP 地址范围。您可以将AWS资源(例如 EC2 实例)在特定子网中启动。在创建子网时,指定子网的 IPv4 CIDR 块,它是 VPC CIDR 块的子集。每个子网都必须完全位于一个可用区之内,不能跨越多个可用区。通过在独立的可用区内启动实例,您可以保护您的应用程序不受单一可用区故障的影响。

您可以选择在本地区域中(这是 AWS 基础设施部署,将计算、存储、数据库和其他精选服务放在距离终端用户更近的地方)添加子网。本地区域使您的最终用户能够运行需要毫秒级延迟的应用程序。有关更多信息,请参阅 适用于 Linux 实例 Amazon EC2 用户指南中的 Local Zones

子网类型

根据您的 VPC 配置方式,子网分为公有子网、私有子网或仅限 VPN 子网:

  • 公有子网:子网流量会通过互联网网关或仅出口互联网网关路由到公共互联网。有关更多信息,请参阅使用互联网网关连接到互联网

  • 私有子网:子网流量无法通过互联网网关或仅出口互联网网关路由到公共互联网。访问公共互联网需要 NAT 设备。

  • 仅限 VPN 的子网:子网流量通过虚拟私有网关路由到 Site-to-Site VPN 连接。子网流量无法通过互联网网关连接访问互联网。有关更多信息,请参阅《AWS Site-to-Site VPN 用户指南》。

在创建子网时,您可以根据 VPC 的配置指定其 IP 地址:

  • 仅限 IPv4:子网具有 IPv4 CIDR 块,但没有 IPv6 CIDR 块。仅限 IPv4 的子网中的资源必须通过 IPv4 进行通信。

  • 双堆栈:子网同时具有 IPv4 CIDR 块和 IPv6 CIDR 块。VPC 必须同时具有 IPv4 CIDR 块和 IPv6 CIDR 块。双堆栈子网中的资源可以通过 IPv4 和 IPv6 进行通信。

  • 仅限 IPv6:子网具有 IPv6 CIDR 块,但没有 IPv4 CIDR 块。VPC 必须具有一个 IPv6 CIDR 块。仅限 IPv6 的子网中的资源必须通过 IPv6 进行通信。

无论子网是哪种类型,子网的内部 IPv4 地址范围始终是私有的 — 我们不会将该地址块发布到 Internet。有关 VPC 中的私有 IP 寻址的更多信息,请参阅IP 寻址

子网设置

所有子网都有一个用于确定是否向在该子网中创建的网络接口分配公有 IPv4 地址和 IPv6 地址 (如果适用) 的可修改属性。这包括当您在该子网中启动实例时为实例创建的主网络接口 (eth0)。不管子网属性如何,您仍然可以在启动时覆盖特定实例的此设置。

创建子网后,您可以修改子网的以下设置。

  • 自动分配 IP 设置:允许您配置自动分配 IP 设置,以便为此子网中的新网络接口自动请求公有 IPv4 或 IPv6 地址。

  • 基于资源的名称 (RBN) 设置:允许您为此子网中的 EC2 实例指定主机名类型,并配置 DNS A 和 AAAA 记录查询的处理方式。有关这些设置的更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的 Amazon EC2 实例主机名称类型

子网图

下图显示了位于一个区域中的两个 VPC。每个 VPC 都具有公有和私有子网以及一个互联网网关。VPC 还跨越了一个本地区域


                    具有可用区内的子网和一个本地区域的 VPC。

子网大小调整

子网的 CIDR 块可以与 VPC 的 CIDR 块相同(如果 VPC 中只有单个子网),也可以是 VPC 的 CIDR 块的一个子集(用于在 VPC 中创建多个子网)。允许的块大小在 /28 网络掩码与 /16 网络掩码之间。如果您在 VPC 中创建多个子网,子网的 CIDR 块不能重叠。

例如,如果创建其 CIDR 块为 10.0.0.0/24 的 VPC,则它支持 256 个 IP 地址。您可以将这个 CIDR 块分散到两个子网,每个子网支持 128 个 IP 地址。一个子网使用 CIDR 块 10.0.0.0/25 (对于地址 10.0.0.0 - 10.0.0.127),另一个子网使用 CIDR 块 10.0.0.128/25 (对于地址 10.0.0.128 - 10.0.0.255)。

Internet 上提供的工具可帮助您计算和创建 IPv4 子网 CIDR 块。您可以通过搜索“子网计算器”或“CIDR 计算器”等术语来找到满足您需求的工具。您的网络工程组也可以帮助您判断可为您的子网指定哪些具体 CIDR 块。

每个子网 CIDR 块中的前四个 IP 地址和最后一个 IP 地址无法供您使用,而且无法分配给任何资源(例如 EC2 实例)。例如,在具有 CIDR 块 10.0.0.0/24 的子网中,以下五个 IP 地址是保留的:

  • 10.0.0.0:网络地址。

  • 10.0.0.1:由 AWS 保留,用于 VPC 路由器。

  • 10.0.0.2:由 AWS 保留。DNS 服务器的 IP 地址是 VPC 网络范围的基址 + 2。对于包含多个 CIDR 块的 VPC,DNS 服务器的 IP 地址位于主要 CIDR 中。我们还为 VPC 中的所有 CIDR 块预留了每个子网范围加二的基址。有关更多信息,请参阅Amazon DNS 服务器

  • 10.0.0.3:由 AWS 保留,以供将来使用。

  • 10.0.0.255:网络广播地址。我们在 VPC 中不支持广播,因此我们会保留此地址。

如果您使用命令行工具或 Amazon EC2 API 创建子网,则系统会自动将 CIDR 块修改为其规范形式。例如,假设您为 CIDR 块指定 100.68.0.18/18,我们将创建一个 CIDR 块 100.68.0.0/18。

IPv6 的子网定型

如果您已向 VPC 关联 IPv6 CIDR 块,则可以将 IPv6 CIDR 块与 VPC 中的现有子网关联,或在创建新子网时执行此操作。子网的 IPv6 CIDR 块采用 /64 的固定前缀长度。

Internet 上提供的工具可帮助您计算和创建 IPv6 子网 CIDR 块,例如 IPv6 地址规划器。您可以通过搜索“IPv6 子网计算器”或“IPv6 CIDR 计算器”等术语来找到满足您需求的其他工具。您的网络工程组也可以帮助您判断可为您的子网指定哪些具体 IPv6 CIDR 块。

每个子网 CIDR 块中的前四个 IPv6 地址和最后一个 IPv6 地址无法供您使用,而且无法分配给 EC2 实例。例如,在具有 CIDR 块 2001:db8:1234:1a00/64 的子网中,以下五个 IP 地址是保留的:

  • 2001:db8:1234:1a00::

  • 2001:db8:1234:1a00::1

  • 2001:db8:1234:1a00::2

  • 2001:db8:1234:1a00::3

  • 2001:db8:1234:1a00:ffff:ffff:ffff:ffff

子网路由

每个子网都必须关联一个路由表,这个路由表可指定允许出站流量离开子网的可用路由。您创建的每个子网都会自动关联 VPC 的主路由表。您可以更改关联,以及更改主路由表的内容。有关更多信息,请参阅配置路由表

子网安全性

AWS 提供了可以用于在 VPC 中提高安全性的两个功能:安全组网络 ACL。安全组可以控制您的实例的入站和出站数据流,网络 ACL 可以控制您的子网的入站和出站数据流。多数情况下,安全组即可满足您的需要;但是,如果您需要为您的 VPC 增添额外一层安全保护,您也可以使用网络 ACL。有关更多信息,请参阅 Amazon VPC 中的互联网络流量隐私

每个子网有意必须与一个网络 ACL 关联。您创建的每个子网均自动与 VPC 的原定设置网络 ACL 关联。您可以更改关联,以及更改默认网络 ACL 的内容。有关更多信息,请参阅 使用网络 ACL 控制指向子网的流量

您可以在 VPC 或子网上创建流日志,以便捕获传入和传出您的 VPC 或子网中的网络接口的流量。您还可以在单独的网络接口上创建流日志。有关更多信息,请参阅使用 VPC 流日志记录 IP 流量