将 VPC 从 IPv4 迁移到 IPv6 - Amazon Virtual Private Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 VPC 从 IPv4 迁移到 IPv6

如果您的现有 VPC 仅支持 IPv4 并且您的子网中的资源配置为仅使用 IPv4,则可为您的 VPC 和资源启用 IPv6 支持。您的 VPC 可在双堆栈模式下运行:您的资源可通过 IPv4 和/或 IPv6 进行通信。IPv4 和 IPv6 通信彼此独立。

您不能为 VPC 和子网禁用 IPv4 支持;这是 Amazon VPC 和 Amazon EC2 的默认 IP 寻址系统。

注意事项
  • 不能从仅 IPv4 子网迁移到仅 IPv6 子网。有关创建仅 IPv6 子网的信息,请参阅创建子网

  • 此示例假定您已有一个包含公有和私有子网的 VPC。有关创建新的 VPC 以用于 IPv6 的信息,请参阅 创建 VPC

  • 在迁移到使用 IPv6 之前,请确保您已了解 Amazon VPC 的 IPv6 寻址的功能:比较 IPv4 与 IPv6

迁移过程

下表概述了为您的 VPC 启用 IPv6 的过程。

步骤 注意
步骤 1:将 IPv6 CIDR 块与您的 VPC 和子网关联 将 Amazon 提供的或 BYOIP IPv6 CIDR 块与您的 VPC 和子网关联。
步骤 2:更新路由表 更新路由表以路由 IPv6 流量。对于公有子网,请创建一个将所有 IPv6 流量都从该子网路由到 Internet 网关的路由。对于私有子网,请创建一个将所有发送到 Internet 的 IPv6 流量都从该子网路由到仅出口 Internet 网关的路由。
步骤 3:更新安全组规则 将安全组规则更新为包括 IPv6 地址规则。这样,使 IPv6 流量可以流入和流出您的实例。如果您已创建自定义网络 ACL 规则来控制出入子网的流量,则必须包括 IPv6 流量规则。
步骤 4:为实例分配 IPv6 地址 将 IPv6 地址分配到您的子网的 IPv6 地址范围中的实例。

示例:在具有公有和私有子网的 VPC 内启用 IPv6

在此示例中,您的 VPC 有公有和私有子网。私有子网中有一个数据库实例,该实例通过 VPC 中的 NAT 网关与 Internet 进行出站通信。公有子网中有一个面向公众的 Web 服务器,它通过 Internet 网关访问 Internet。下图表示您的 VPC 架构。


                    具有一个公有子网、一个私有子网、一个 NAT 网关和一个互联网网关的 VPC。

您的 Web 服务器的安全组(例如,安全组 ID 为 sg-11aa22bb11aa22bb1)具有以下入站规则:

Type 协议 端口范围 评论
所有流量 All All sg-33cc44dd33cc44dd3 允许与 sg-33cc44dd33cc44dd3 关联的实例(数据库实例)的所有流量进行入站访问。
HTTP TCP 80 0.0.0.0/0 允许通过 HTTP 的 Internet 的入站流量。
HTTPS TCP 443 0.0.0.0/0 允许通过 HTTPS 的 Internet 入站流量。
SSH TCP 22 203.0.113.123/32 允许从您的本地计算机进行入站 SSH 访问;例如,在需要连接您的实例来执行管理任务时。

数据库实例的安全组(例如,安全组 ID 为 sg-33cc44dd33cc44dd3)具有以下入站规则:

Type 协议 端口范围 评论
MySQL TCP 3306 sg-11aa22bb11aa22bb1 允许与 sg-11aa22bb11aa22bb1 关联的实例(Web 服务器实例)的 MySQL 流量进行入站访问。

两个安全组都有允许所有出站 IPv4 流量的默认出站规则,没有其他出站规则。

您的 Web 服务器是 t2.medium 实例类型。您的数据库服务器是 m3.large

您希望面向 IPv6 启用 VPC 和资源,需要它们在双堆栈模式下运行;换句话说,需要在 VPC 资源与 Internet 资源之间同时使用 IPv6 和 IPv4 寻址。

步骤 1:将 IPv6 CIDR 块与您的 VPC 和子网关联

您可将 IPv6 CIDR 块与 VPC 关联,然后将该范围内的一个 /64 CIDR 块与每个子网关联。

将 IPv6 CIDR 块与 VPC 关联
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Your VPCs(您的 VPC)。

  3. 选择您的 VPC。

  4. 选择操作编辑 CIDR,然后选择添加新的 IPv6 CIDR

  5. 选择以下选项之一,然后选择选择 CIDR

    • Amazon 提供的 IPv6 CIDR 块:使用 Amazon 的 IPv6 地址池中的 IPv6 CIDR 块。对于网络边界组,选择 Amazon 将从中发布 IP 地址的组。

    • IPAM 分配的 IPv6 CIDR 块 – 使用 IPAM 池中的 IPv6 CIDR 块。选择 IPAM 池和 IPv6 CIDR 块。

    • 我拥有的 IPv6 CIDR – 使用您的 IPv6 地址池(BYOIP)中的 IPv6 CIDR 块。选择 IPv6 地址池和 IPv6 CIDR 块。

  6. 选择 Close(关闭)。

将 IPv6 CIDR 块与子网关联
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Subnets(子网)。

  3. 选择子网。

  4. 选择操作编辑 IPv6 CIDR,然后选择添加 IPv6 CIDR

  5. 根据需要编辑 CIDR 块(例如,替换 00)。

  6. 选择 Save(保存)。

  7. 对 VPC 中的任何其它子网重复此程序。

有关更多信息,请参阅IPv6 VPC CIDR 块

步骤 2:更新路由表

当您将 IPv6 CIDR 块与您的 VPC 关联时,我们会自动为该 VPC 的每个路由表添加本地路由,以允许 VPC 内的 IPv6 流量。

对于公有子网,您必须更新路由表,以使实例(例如 Web 服务器)能对 IPv6 流量使用互联网网关。对于私有子网,您必须更新路由表,以使实例(例如数据库实例)能对 IPv6 流量使用仅出口互联网网关,因为 NAT 网关不支持 IPv6。

要为公有子网更新路由表
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Subnets(子网)。选择公有子网。在路由表选项卡上,选择路由表 ID 以打开路由表的详细信息页面。

  3. 选择 路由表。在 Routes (路由) 选项卡上,选择 Edit routes (编辑路由)

  4. 选择 Add route (添加路由)。对于目标,选择 ::/0。选择适用于目标的互联网网关 ID。

  5. 选择 Save changes(保存更改)。

为私有子网更新路由表
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择仅出口互联网网关。选择创建仅出口互联网网关。从 VPC 中选择您的 VPC,然后选择创建仅出口互联网网关

    有关更多信息,请参阅使用仅出口互联网网关允许出站 IPv6 流量

  3. 在导航窗格中,选择 Subnets(子网)。选择私有子网。在路由表选项卡上,选择路由表 ID 以打开路由表的详细信息页面。

  4. 选择 路由表。在 Routes (路由) 选项卡上,选择 Edit routes (编辑路由)

  5. 选择 Add route (添加路由)。对于目标,选择 ::/0。请为目标选择仅出口互联网网关的 ID。

  6. 选择 Save changes(保存更改)。

有关更多信息,请参阅示例路由选项

步骤 3:更新安全组规则

为了使您的实例能够通过 IPv6 发送和接收流量,您必须更新安全组规则以包含针对 IPv6 地址的规则。例如,在上述示例中,您可以更新您 Web 服务器安全组 (sg-11aa22bb11aa22bb1) 以添加允许来自 IPv6 地址的入站 HTTP、HTTPS 和 SSH 访问的规则。您不需要对数据库安全组的入站规则进行任何更改;允许来自 sg-11aa22bb11aa22bb1 的所有通信的规则包括 IPv6 通信。

要更新入站安全组规则
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导窗格中,选择安全组,并选择您的 Web 服务器安全组。

  3. 入站规则选项卡上,选择编辑入站规则

  4. 对于每条允许 IPv4 流量的规则,请选择添加规则并将该规则配置为允许相应的 IPv6 流量。例如,要添加允许所有通过 IPv6 的 HTTP 流量的规则,对于类型,请选择 HTTP,对于来源,请选择 ::/0

  5. 完成添加标签后,选择保存规则

更新出站安全组规则

当您将 IPv6 CIDR 块与 VPC 关联时,我们会自动为 VPC 的安全组添加一条允许所有 IPv6 流量的出站规则。但是,如果您修改了安全组的原始出站规则,则不会自动添加此规则,您必须为 IPv6 流量添加等效的出站规则。

更新您的网络 ACL 规则

当您将 IPv6 CIDR 块与 VPC 关联时,我们会自动为默认网络 ACL 添加规则,以允许 IPv6 流量。但是,如果您修改了默认网络 ACL,或者创建了自定义网络 ACL,则必须手动添加 IPv6 流量规则。有关更多信息,请参阅使用网络 ACL

步骤 4:为实例分配 IPv6 地址

当前一代的所有实例类型都支持 IPv6。如果您的实例类型不支持 IPv6,则您必须调整实例的大小以使其成为支持的实例类型,然后再分配 IPv6 地址。您将使用的流程,取决于您所选择的新实例类型是否与当前实例类型兼容。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的更改实例类型。如果必须从新 AMI 中启动实例来支持 IPv6,可在启动过程中为实例分配 IPv6 地址。

在确认实例类型支持 IPv6 后,可使用 Amazon EC2 控制台为实例分配 IPv6 地址。该 IPv6 地址将分配给实例的主网络接口 (eth0)。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的将 IPv6 地址分配给实例

您可以使用 IPv6 地址连接到实例。有关更多信息,请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》中的使用 SSH 客户端连接到 Linux 实例和《适用于 Windows 实例的 Amazon EC2 用户指南》中的使用 IPv6 地址连接到 Windows 实例

如果您使用适用于当前版本操作系统的 AMI 启动了实例,则您的实例已针对 IPv6 进行配置。如果您无法从您的实例执行 IPv6 地址的 ping 操作,则请参阅操作系统的文档来配置 IPv6。