

# 为 VPC 和子网分配 IP 地址
<a name="vpc-ip-addressing"></a>

IP 地址使 VPC 中的资源能够相互通信以及与 Internet 上的资源进行通信。

无类别域间路由（CIDR）表示法是一种表示 IP 地址及其网络掩码的方法。这些地址的格式如下：
+ 单个 IPv4 地址为 32 位，分为 4 组，每组包含最多 3 个十进制数字（0-255）。例如：10.0.1.0。
+ IPv4 CIDR 块包含一个 IPv4 地址，后跟斜杠和一个介于 0 到 32 的数字。例如，10.0.0.0/16 表示介于 10.0.0.0 到 10.0.255.255 之间的 65,536 个 IPv4 地址。
+ 单个 IPv6 地址为 128 位，分为 8 段，每段包含最多 4 个十六进制数字。例如：2001:0db8:85a3:0000:0000:8a2e:0370:7334。分段无需包含前导零。您也可以在地址中用双冒号（::）替换连续的全零分段。因此，示例地址可以压缩为 2001:db8:85a3::8a2e:370:7334。
+ IPv6 CIDR 块中的 IPv6 地址以全零分段结尾（全零分段已替换为双冒号），后跟斜杠和一个介于 0 到 128 之间的数字。例如，2001:db8:1234:1a00::/56 表示介于 2001:db8:1234:1a00:0000:0000:0000:0000 到 2001:db8:1234:1aff:ffff:ffff:ffff:ffff 之间的 2^72 个 IPv6 地址。

有关更多信息，请参阅[什么是 CIDR？](https://www.amazonaws.cn/what-is/cidr/)

**Topics**
+ [私有 IPv4 地址](#vpc-private-ipv4-addresses)
+ [公有 IPv4 地址](#vpc-public-ipv4-addresses)
+ [IPv6 地址](#vpc-ipv6-addresses)
+ [使用自带 IP 地址](#vpc-using-own-ip-address)
+ [使用 Amazon VPC IP 地址管理器](#vpc-using-ipam)
+ [VPC CIDR 块](vpc-cidr-blocks.md)
+ [子网 CIDR 块](subnet-sizing.md)
+ [比较 IPv4 与 IPv6](ipv4-ipv6-comparison.md)
+ [托管前缀列表](managed-prefix-lists.md)
+ [Amazon IP 地址范围](aws-ip-ranges.md)
+ [VPC 的 IPv6 支持](vpc-migrate-ipv6.md)

## 私有 IPv4 地址
<a name="vpc-private-ipv4-addresses"></a>

私有 IPv4 地址（在本主题中也称作*私有 IP 地址*）无法通过 Internet 访问，但可用于 VPC 中实例之间的通信。当您在 VPC 中启动实例时，系统会将子网 IPv4 地址范围内的主要私有 IP 地址分配给实例的主要网络接口（例如，eth0）。另外，还为每个实例指定一个可解析为实例私有 IP 地址的私有（内部）DNS 主机名。主机名可以有两种类型：基于资源或基于 IP。有关更多信息，请参阅 [EC2 实例命名](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/ec2-instance-naming.html)。如果您未指定主要私有 IP 地址，我们会在子网范围内为您选择可用的 IP 地址。有关网络接口的更多信息，请参阅《*Amazon EC2 用户指南*》中的[弹性网络接口](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/using-eni.html)。

您可以为 VPC 中运行的实例分配其他私有 IP 地址，即所谓的辅助私有 IP 地址。与主要私有 IP 地址不同的是，您可以将一个网络接口的辅助私有 IP 地址重新分配给另一个网络接口。私有 IP 地址会在实例停止并重新启动时保持与网络接口的关联，并在实例终止时释放。有关主要和辅助 IP 地址的更多信息，请参阅《*Amazon EC2 用户指南*》的[多个 IP 地址](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/MultipleIP.html)。

我们所说的私有 IP 地址是 VPC 的 IPv4 CIDR 范围内的 IP 地址。大部分 VPC IP 地址范围均处于 RFC 1918 中指定的私有（非公有可路由）IP 地址范围内；但是，您可为您的 VPC 使用公有可路由的 CIDR 块。不管您的 VPC 使用何种 IP 地址范围，我们都不支持从您的 VPC 的 CIDR 块（包括公共可路由的 CIDR 块）直接访问 Internet。您必须通过网关设置 Internet 访问，例如，通过互联网网关、虚拟专用网关、Amazon Site-to-Site VPN 连接或 Amazon Direct Connect。

我们永远不会向互联网传播子网的 IPv4 地址范围。

## 公有 IPv4 地址
<a name="vpc-public-ipv4-addresses"></a>

所有子网都有一个用于确定在子网中创建的网络接口是否自动接收公有 IPv4 地址（在本主题中也称作*公有 IP 地址*）的属性。因此，当您在启用了此属性的子网中启动实例时，系统会向为此实例创建的主网络接口分配一个公有 IP 地址。公有 IP 地址通过网络地址转换 (NATI) 映射到主要私有 IP 地址。

**注意**  
Amazon 将对所有公有 IPv4 地址收费，包括与运行的实例相关联的公有 IPv4 地址和弹性 IP 地址。有关更多信息，请参阅 [Amazon VPC 定价页面](https://www.amazonaws.cn/vpc/pricing/)中的**公有 IPv4 地址定价**选项卡。

您可以通过执行以下操作，控制实例是否接收公有 IP 地址：
+ 修改子网的公有 IP 寻址属性。有关更多信息，请参阅 [修改子网的 IP 寻址属性](subnet-public-ip.md)。
+ 在实例启动过程中启用或禁用公有 IP 寻址功能，以覆盖子网的公有 IP 寻址属性。
+ 启动后，您可以通过管理与网络接口关联的 IP 地址来将实例的公有 IP 地址取消分配。有关更多信息，请参阅《*Amazon EC2 用户指南*》中的[管理 IP 地址](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/using-eni.html#managing-network-interface-ip-addresses)。

公有 IP 地址将从 Amazon 的公有 IP 地址池分配，它不与您的账户关联。在公有 IP 地址与您的实例取消关联后，该地址即释放回该池，并且不再可供您使用。在某些情况下，我们会从您的实例释放公有 IP 地址，或为其分配新地址。有关更多信息，请参阅《*Amazon EC2 用户指南*》中的[公有 IP 地址](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/using-instance-addressing.html#concepts-public-addresses)。

如果您需要向您的账户分配一个永久公有 IP 地址（您可根据需要将其分配给实例或将其从实例中删除），请改为使用弹性 IP 地址。有关更多信息，请参阅 [将弹性 IP 地址关联到 VPC 中的资源](vpc-eips.md)。

如果您的 VPC 启用了对 DNS 主机名的支持，则系统还会向收到公有 IP 地址或弹性 IP 地址的每个实例分配一个公有 DNS 主机名。我们会将公有 DNS 主机名解析为该实例在实例网络外的公有 IP 地址和在实例网络内的私有 IP 地址。有关更多信息，请参阅 [VPC 中的 DNS 属性](vpc-dns.md)。

如果使用的是 Amazon VPC IP 地址管理器（IPAM），则可以从 Amazon 中获取连续的公有 IPv4 地址块，再用其将连续弹性 IP 地址分配给 Amazon 资源。使用连续的 IPv4 地址块可以显著减少安全访问控制列表的管理开销，简化在 Amazon 上扩展的企业的 IP 地址分配和跟踪工作。有关更多信息，请参阅《Amazon VPC IPAM User Guide》**中的 [Allocate sequential Elastic IP addresses from an IPAM pool](https://docs.amazonaws.cn/vpc/latest/ipam/tutorials-eip-pool.html)。

## IPv6 地址
<a name="vpc-ipv6-addresses"></a>

随着互联网的持续增长，对 IP 地址的需求也在增加。IP 地址最常见的格式是 IPv4。IP 地址的新格式是 IPv6，它可提供比 IPv4 更大的地址空间。IPv6 解决了 IPv4 地址耗尽的问题，有助将更多设备连接到互联网。这是个渐进的过渡过程，不过随着 IPv6 采用率的提高，您可以简化网络并利用 IPv6 的高级功能来改善连接性、性能和安全性。

许多 Amazon 服务（例如 Amazon EC2、Amazon S3 和 Amazon CloudFront）都提供双堆栈（IPv4 和 IPv6）或仅支持 IPv6 的选项，允许资源被分配到 IPv6 地址并通过 IPv6 协议进行访问，从而为采用 IPv6 的客户简化网络配置和管理。其他服务提供有限或部分双堆栈和仅支持 IPv6。

请注意，国际互联网工程任务组保留了部分 IPv6 地址。有关预留 IPv6 地址范围的更多信息，请参阅 [IANA IPv6 特殊用途地址注册表](http://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xhtml)和 [RFC4291](https://tools.ietf.org/html/rfc4291)。

**注意**  
Amazon 同时提供公有和私有 IPv6 寻址。Amazon 认为公有 IP 地址是从 Amazon 公开发布在互联网上的，而私有 IP 地址不是，也不能从 Amazon 公开发布在互联网上。

**Topics**
+ [公有 IPv6 地址](#vpc-ipv6-addresses-public)
+ [私有 IPv6 地址](#vpc-ipv6-addresses-private)

### 公有 IPv6 地址
<a name="vpc-ipv6-addresses-public"></a>

Amazon 提供的 IPv6 地址始终在互联网上公开公布。IPv6 地址具有全局唯一性，因此可通过互联网访问。您可以通过控制子网的路由或通过使用安全组和网络 ACL 来控制能否通过实例的 IPv6 地址访问 EC2 实例等资源。

以下是可将公有 IPv6 地址用于工作负载的一些方法：
+ 使用 Amazon VPC IP 地址管理器创建 IPAM，并向 IPAM 地址池预置 Amazon 拥有的公有 IPv6 地址范围。有关更多信息，请参阅《Amazon VPC IPAM 用户指南》**中的[创建 IPv6 池](https://docs.amazonaws.cn/vpc/latest/ipam/intro-create-ipv6-pools.html)。
+ 如果已有 IPAM 并且拥有公有 IPv6 地址范围，则可将部分或全部公有 IPv6 地址范围引入 IPAM，并向 IPAM 地址池预置公有 IPv6 地址范围。有关更多信息，请参阅《Amazon VPC IPAM 用户指南》**中的[教程：将 IP 地址带入 IPAM](https://docs.amazonaws.cn/vpc/latest/ipam/tutorials-byoip-ipam.html)。
+ 如果没有 IPAM，但拥有公有 IPv6 地址范围，则可将部分或全部公有 IPv6 地址范围引入 Amazon。有关更多信息，请参阅《Amazon EC2 用户指南》**中的[在 Amazon EC2 中使用您自己的 IP 地址（BYOIP）](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/ec2-byoip.html)。

准备好使用公有 IPv6 地址后，就可以为实例分配公有 IPv6 地址（请参阅《Amazon EC2 用户指南》**中的 [IPv6 地址](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/working-with-ipv6-addresses.html)），为 VPC 分配公有 IPv6 CIDR 块（请参阅[将 CIDR 块添加到 VPC 或从中删除](add-ipv4-cidr.md)），并将该 IPv6 CIDR 块与子网关联（请参阅[修改子网的 IP 寻址属性](subnet-public-ip.md)）。

### 私有 IPv6 地址
<a name="vpc-ipv6-addresses-private"></a>

私有 IPv6 地址指并未且不能从 Amazon 公开发布在互联网上的 IPv6 地址。

如果希望自己的私有网络支持 IPv6，并且不打算将流量从这些地址路由到互联网，则可使用私有 IPv6 地址。如果要从具有私有 IPv6 地址的资源连接到互联网，必须通过另一个子网中具有公有 IPv6 地址的资源路由流量，才能实现该目的。

私有 IPv6 地址有两种类型：
+ **IPv6 ULA 范围**：[RFC4193](https://datatracker.ietf.org/doc/html/rfc4193) 中定义的 IPv6 地址。这些地址范围总是以“fc”或“fd”开头，因此很容易识别。有效的 IPv6 ULA 空间是指任何低于 fd00:: /8 且不与 Amazon 预留范围 fd00::/16 重叠的空间。
+ **IPv6 GUA 范围**：[RFC3587](https://datatracker.ietf.org/doc/html/rfc3587) 中定义的 IPv6 地址。使用 IPv6 GUA 范围作为私有 IPv6 地址的选项默认处于禁用状态，必须在启用后才能使用。有关更多信息，请参阅《Amazon VPC IPAM 用户指南》**中的[启用预置私有 IPv6 GUA CIDR](https://docs.amazonaws.cn/vpc/latest/ipam/enable-prov-ipv6-gua.html)。

请注意以下几点：
+ 私有 IPv6 地址只能通过 [Amazon VPC IP 地址管理器（IPAM）](https://docs.amazonaws.cn/vpc/latest/ipam/what-it-is-ipam.html)使用。IPAM 发现具有 IPv6 ULA 和 GUA 地址的资源，并监控池中是否存在重叠的 IPv6 ULA 和 GUA 地址空间。
+ 在使用私有 IPv6 GUA 范围时，要求使用自己拥有的 IPv6 GUA 范围。
+ Amazon 不会也不能在互联网上公开发布私有 IPv6 地址。即使 VPC 中有互联网网关或仅限出口的互联网网关，Amazon 也不允许从私有 IPv6 地址范围直接出口到公共互联网。私有 IPv6 地址会被自动丢弃在互联网网关边缘，确保不会被公开路由。
+ Amazon 会保留前四个以及最后一个子网私有 IPv6 地址。
+ 私有 IPv6 ULA 的有效范围为 /9 至 /60（从 fd80::/9 开始）。
+ 如果已为 VPC 分配私有 IPv6 GUA 范围，则不能使用与同一 VPC 中私有 IPv6 GUA 空间重叠的公有 IPv6 GUA 空间。
+ 支持具有私有 IPv6 ULA 及 GUA 地址范围的资源之间的通信（例如跨 Direct Connect、VPC 对等连接、中转网关或 VPN 连接）。
+ 您可以将私有 IPv6 地址用于仅限 IPv6 和双栈 [VPC 子网](configure-subnets.md#subnet-ip-address-range)、[弹性负载均衡器](https://docs.amazonaws.cn/elasticloadbalancing/latest/userguide/load-balancer-getting-started.html)和 [Amazon Global Accelerator 端点](https://docs.amazonaws.cn/global-accelerator/latest/dg/about-endpoints.html)。
+ 使用私有 IPv6 地址不会产生任何费用。

以下是可将私有 IPv6 地址用于工作负载的一些方法：
+ 使用 Amazon VPC IP 地址管理器创建 IPAM，并向 IPAM 地址池预置私有 IPv6 *ULA* 范围。有关更多信息，请参阅《Amazon VPC IPAM 用户指南》**中的[创建 IPv6 池](https://docs.amazonaws.cn/vpc/latest/ipam/intro-create-ipv6-pools.html)。
+ 使用 Amazon VPC IP 地址管理器创建 IPAM，并为 IPAM 地址池预置私有 IPv6 *GUA* 范围。使用 IPv6 GUA 范围作为私有 IPv6 地址的选项默认处于禁用状态，必须在 IPAM 上启用后才能使用。有关更多信息，请参阅《Amazon VPC IPAM 用户指南》**中的[启用预置私有 IPv6 GUA CIDR](https://docs.amazonaws.cn/vpc/latest/ipam/enable-prov-ipv6-gua.html)。

准备好使用私有 IPv6 地址后，就可以为 VPC 分配 IPAM 池中的私有 IPv6 CIDR 块（请参阅[将 CIDR 块添加到 VPC 或从中删除](add-ipv4-cidr.md)），并将该 IPv6 CIDR 块与子网关联（请参阅[修改子网的 IP 寻址属性](subnet-public-ip.md)）。

## 使用自带 IP 地址
<a name="vpc-using-own-ip-address"></a>

您可以将部分或全部自带公有 IPv4 地址或 IPv6 地址范围引入到您的 Amazon 账户。您继续拥有该地址范围，但 Amazon 默认将其发布到 Internet 上。在将地址范围引入 Amazon 中之后，它会在您的账户中显示为地址池。您可以从 IPv4 地址池创建弹性 IP 地址，也可以将 IPv6 地址池中的 IPv6 CIDR 块与 VPC 相关联。

有关更多信息，请参阅《*Amazon EC2 用户指南*》中的[自带 IP 地址（BYOIP）](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/ec2-byoip.html)。

## 使用 Amazon VPC IP 地址管理器
<a name="vpc-using-ipam"></a>

Amazon VPC IP 地址管理器 (IPAM) 是一项 VPC 功能，可让您更轻松地计划、跟踪和监控 Amazon 工作负载的 IP 地址。您可以使用特定的业务规则用 IPAM 将 IP 地址 CIDR 分配给 VPC。

有关更多信息，请参阅《Amazon VPC IPAM 用户指南》**中的[什么是 IPAM？](https://docs.amazonaws.cn/vpc/latest/ipam/what-it-is-ipam.html)。