

# 为 VPC 添加 IPv6 支持
<a name="vpc-migrate-ipv6-add"></a>

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

**Topics**
+ [步骤 1：将 IPv6 CIDR 块与您的 VPC 和子网关联](#vpc-migrate-ipv6-cidr)
+ [步骤 2：更新路由表](#vpc-migrate-ipv6-routes)
+ [步骤 3：更新安全组规则](#vpc-migrate-ipv6-sg-rules)
+ [步骤 4：为实例分配 IPv6 地址](#vpc-migrate-assign-ipv6-address)


| 步骤 | 备注 | 
| --- | --- | 
| [步骤 1：将 IPv6 CIDR 块与您的 VPC 和子网关联](#vpc-migrate-ipv6-cidr) | 将 Amazon 提供的或 BYOIP IPv6 CIDR 块与您的 VPC 和子网关联。 | 
| [步骤 2：更新路由表](#vpc-migrate-ipv6-routes) | 更新路由表以路由 IPv6 流量。对于公有子网，请创建一个将所有 IPv6 流量都从该子网路由到互联网网关的路由。对于私有子网，请创建一个将所有发送到 Internet 的 IPv6 流量都从该子网路由到仅出口互联网网关的路由。 | 
| [步骤 3：更新安全组规则](#vpc-migrate-ipv6-sg-rules) | 将安全组规则更新为包括 IPv6 地址规则。这样，使 IPv6 流量可以流入和流出您的实例。如果您已创建自定义网络 ACL 规则来控制出入子网的流量，则必须包括 IPv6 流量规则。 | 
| [步骤 4：为实例分配 IPv6 地址](#vpc-migrate-assign-ipv6-address) | 将 IPv6 地址分配到您的子网的 IPv6 地址范围中的实例。 | 

## 步骤 1：将 IPv6 CIDR 块与您的 VPC 和子网关联
<a name="vpc-migrate-ipv6-cidr"></a>

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

**将 IPv6 CIDR 块与 VPC 关联**

1. 通过以下网址打开 Amazon VPC 控制台：[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，选择 **Your VPCs**(您的 VPC)。

1. 选择您的 VPC。

1. 选择**操作**、**编辑 CIDR**，然后选择**添加新的 IPv6 CIDR**。

1. 选择以下选项之一，然后选择**选择 CIDR**：
   + **Amazon 提供的 IPv6 CIDR 块**：使用 Amazon 的 IPv6 地址池中的 IPv6 CIDR 块。对于**网络边界组**，选择 AWS 将从中发布 IP 地址的组。
   + **IPAM 分配的 IPv6 CIDR 块** – 使用 [IPAM 池](https://docs.aws.amazon.com/vpc/latest/ipam/how-it-works-ipam.html)中的 IPv6 CIDR 块。选择 IPAM 池和 IPv6 CIDR 块。
   + **我拥有的 IPv6 CIDR** – 使用您的 IPv6 地址池（[BYOIP](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html)）中的 IPv6 CIDR 块。选择 IPv6 地址池和 IPv6 CIDR 块。

1. 选择**关闭**。

**将 IPv6 CIDR 块与子网关联**

1. 通过以下网址打开 Amazon VPC 控制台：[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 在导航窗格中，选择 **Subnets**(子网)。

1. 选择子网。

1. 选择**操作**、**编辑 IPv6 CIDR**，然后选择**添加 IPv6 CIDR**。

1. 根据需要编辑 CIDR 块（例如，替换 `00`）。

1. 选择**保存**。

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

有关更多信息，请参阅 [IPv6 VPC CIDR 块](vpc-cidr-blocks.md#vpc-sizing-ipv6)。

## 步骤 2：更新路由表
<a name="vpc-migrate-ipv6-routes"></a>

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

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

**要为公有子网更新路由表**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

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

1. 选择 路由表。在 **Routes (路由)** 选项卡上，选择 **Edit routes (编辑路由)**。

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

1. 选择**保存更改**。

**为私有子网更新路由表**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

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

   有关更多信息，请参阅 [使用仅出口互联网网关允许出站 IPv6 流量](egress-only-internet-gateway.md)。

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

1. 选择 路由表。在 **Routes (路由)** 选项卡上，选择 **Edit routes (编辑路由)**。

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

1. 选择**保存更改**。

**注意**  
路由表不能具有同时指向互联网网关和仅出口互联网网关的同一目的地 (::/0)。如果在配置仅出口互联网网关时收到一条错误消息，指出“存在以互联网网关为下一跃点的现有 IPv6 路由”，则必须先移除到互联网网关的现有 IPv6 路由，然后再将该路由添加到仅出口互联网网关。

有关更多信息，请参阅 [示例路由选项](route-table-options.md)。

## 步骤 3：更新安全组规则
<a name="vpc-migrate-ipv6-sg-rules"></a>

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

**要更新入站安全组规则**

1. 通过 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 打开 Amazon VPC 控制台。

1. 在导窗格中，选择**安全组**，并选择您的 Web 服务器安全组。

1. 在**入站规则**选项卡上，选择**编辑入站规则**。

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

1. 完成添加标签后，选择**保存规则**。

**更新出站安全组规则**  
当您将 IPv6 CIDR 块与 VPC 关联时，我们会自动为 VPC 的安全组添加一条允许所有 IPv6 流量的出站规则。但是，如果您修改了安全组的原始出站规则，则不会自动添加此规则，您必须为 IPv6 流量添加等效的出站规则。
<a name="vpc-migrate-ipv6-nacl-rules"></a>
**更新您的网络 ACL 规则**  
当您将 IPv6 CIDR 块与 VPC 关联时，我们会自动为默认网络 ACL 添加规则，以允许 IPv6 流量。但是，如果您修改了默认网络 ACL，或者创建了自定义网络 ACL，则必须手动添加 IPv6 流量规则。有关更多信息，请参阅[添加和删除规则](create-network-acl.md#Rules)。

## 步骤 4：为实例分配 IPv6 地址
<a name="vpc-migrate-assign-ipv6-address"></a>

当前一代的所有实例类型都支持 IPv6。如果您的实例类型不支持 IPv6，则您必须调整实例的大小以使其成为支持的实例类型，然后再分配 IPv6 地址。您将使用的流程，取决于您所选择的新实例类型是否与当前实例类型兼容。有关更多信息，请参阅《*Amazon EC2 用户指南*》中的[更改实例类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html)。如果必须从新 AMI 中启动实例来支持 IPv6，可在启动过程中为实例分配 IPv6 地址。

在确认实例类型支持 IPv6 后，可使用 Amazon EC2 控制台为实例分配 IPv6 地址。该 IPv6 地址将分配给实例的主要网络接口（例如，eth0）。有关更多信息，请参阅《*Amazon EC2 用户指南*》中的[为实例分配 IPv6 地址](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-instance-addressing.html#assign-ipv6-address)。

您可以使用 IPv6 地址连接到实例。有关更多信息，请参阅《*Amazon EC2 用户指南*》中的[使用 SSH 客户端连接到 Linux 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect-linux-inst-ssh.html#connect-linux-inst-sshClient)。

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