使用 ClassicLink 进行 VPC 对等配置 - Amazon Virtual Private Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 ClassicLink 进行 VPC 对等配置

我们即将停用 EC2-Classic。我们建议您从 EC2-Classic 迁移到 VPC

如果您在两个 VPC 之间有 VPC 对等连接,而且存在一个或多个 EC2-Classic 实例(这些实例通过 ClassicLink 连接到这两个 VPC 中的一个或两个),则可以扩展 VPC 对等连接以启用 EC2-Classic 实例与 VPC 对等连接的另一端的 VPC 中的实例之间的通信。这将使 EC2-Classic 实例和 VPC 中的实例能够通过私有 IP 地址进行通信。为此,您允许本地 VPC 与对等 VPC 中链接的 EC2-Classic 实例进行通信,或者您允许本地链接的 EC2-Classic 实例与对等 VPC 中的 VPC 实例进行通信。

通过 ClassicLink 的通信仅在 VPC 对等连接中的两个 VPC 位于同一区域内的情况下起作用。

重要

无法启用 EC2-Classic 实例进行 IPv6 通信。您可以在 VPC 对等连接的任一侧启用 VPC 实例,以通过 IPv6 相互通信;但是,通过 ClassicLink 与 VPC 链接的 EC2-Classic 实例只能通过 IPv4 与 VPC 对等连接任一侧的 VPC 实例进行通信。

要启用 VPC 对等连接以便与链接的 EC2-Classic 实例进行通信,则必须修改请求者 VPC 对等选项 (如果您是 VPC 对等连接的请求者) 且必须修改接受者 VPC 对等选项 (如果您是 VPC 对等连接的接受者)。您可以使用 describe-vpc-peering-connections 命令来验证哪种 VPC 是 VPC 对等连接的接受者和请求者。

您可以修改 VPC 对等连接选项,如下所示:

  • 使本地链接的 EC2-Classic 实例能够与对等 VPC 中的实例进行通信

    在这种情况下,您需修改 VPC 对等连接选项以允许本地 ClassicLink 连接与 VPC 对等连接另一侧的对等 VPC 之间的出站通信。对等 VPC 的拥有者可修改 VPC 对等连接选项来允许本地 VPC 与远程 ClassicLink 连接之间的出站通信。

  • 使本地 VPC 能够与对等 VPC 中已链接的 EC2-Classic 实例进行通信

    在这种情况下,您需修改 VPC 对等连接选项以允许本地 VPC 与 VPC 对等连接另一侧的远程 ClassicLink 连接之间的出站通信。具有链接的 EC2-Classic 实例的对等 VPC 的拥有者修改 VPC 对等连接选项,允许从本地 ClassicLink 连接到远程 VPC 的出站通信。

当您允许本地链接的 EC2-Classic 实例与对等 VPC 中的实例进行通信时,必须手动将路由添加到具有对等 VPC CIDR 块的目的地和 VPC 对等连接的目标的本地 VPC 的主路由表。链接的 EC2-Classic 实例未与 VPC 中的任何子网关联;它依赖主路由表来与对等 VPC 进行通信。

重要

VPC 对等连接的路由必须添加到主路由表,不管带对等连接的现有路由的任何自定义路由表如何。如果没有,则 EC2-Classic 实例无法与对等 VPC 进行通信。

当您启用本地 VPC 以便通过远程 ClassicLink 连接进行通信时,路由将自动添加到所有本地 VPC 路由表,其目的地为 10.0.0.0/8,目标为 Local。这将允许与远程链接的 EC2-Classic 实例进行通信。如果您的路由表已具有 10.0.0.0/8 IP 地址范围 (包括 VPC 对等连接路由) 内的静态路由,则无法启用本地 VPC 以通过远程 ClassicLink 连接进行通信。

区域支持

您可以修改以下区域中的 VPC 对等连接选项:

  • 美国东部(弗吉尼亚北部)

  • 美国西部(北加利福尼亚)

  • 美国西部(俄勒冈)

  • 欧洲(爱尔兰)

  • 亚太区域(东京)

  • 亚太地区(新加坡)

  • 南美洲(圣保罗)

  • 亚太地区(悉尼)

在这种情况下,我们存在以下情况:

  • 为 ClassicLink 启用 VPC A,并使用 ClassicLink 将 EC2-Classic 实例 A 链接到 VPC A。

  • VPC B 在另一个 Amazon 账户中,并且与使用 VPC 对等连接 pcx-aaaabbbb 的 VPC A 对等。VPC 对等连接由 VPC A 请求并被 VPC B 接受。

  • VPC B 可以是支持 EC2-Classic 的账户中的 VPC 或仅支持 EC2-VPC 的账户。

使用以下路由表,以便实例 A 可以与 VPC B 中的实例通信,并且 VPC B 中的实例可以与实例 A 通信。

路由表 目的地 目标 注意
VPC A VPC A CIDR 本地 VPC A 的默认本地路由。
VPC B CIDR pcx-aaaabbbb 为 VPC A 和 VPC B 之间的对等连接手动添加的路由。
10.0.0.0/8 本地 为允许 ClassicLink 通信自动添加的路由 (在将实例链接到 VPC A 时添加)。
VPC B VPC B CIDR 本地 VPC B 的默认本地路由。
VPC A CIDR pcx-aaaabbbb 为 VPC A 和 VPC B 之间的对等连接手动添加的路由。

VPC A 的拥有者必须修改 VPC 对等连接才能使实例 A 与 VPC B 进行通信,并更新主路由表。VPC B 的拥有者必须修改 VPC 对等连接才能使 VPC B 与实例 A 进行通信。

有关添加路由的更多信息,请参阅 Amazon VPC 用户指南 中的从路由表添加和删除路由

修改 VPC A 的 VPC 对等连接

要允许从 EC2-Classic 实例到 VPC B 的通信,VPC A 的 Amazon 账户所有者必须修改 VPC 对等连接选项,以允许本地 ClassicLink 连接将流量发送至对等 VPC 中的实例。

使用控制台修改 VPC 对等连接
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

    VPC A 的拥有者必须登录控制台。

  2. 在导航窗格中,选择 Peering Connections

  3. 选择 VPC 对等连接,然后选择 ActionsEdit ClassicLink Settings

  4. 选择允许本地链接的 EC2-Classic 实例与对等 VPC 通信的选项,然后选择 Save

使用 Amazon CLI 修改 VPC 对等连接

您可以使用 modify-vpc-peering-connection-options 命令。在这种情况下,VPC A 是 VPC 对等连接的请求者;因此请按照下面的方法修改请求者选项:

aws ec2 modify-vpc-peering-connection-options --vpc-peering-connection-id pcx-aaaabbbb --requester-peering-connection-options AllowEgressFromLocalClassicLinkToRemoteVpc=true

修改 VPC B 的 VPC 对等连接

接下来,VPC B 的 Amazon 账户所有者必须修改 VPC 对等连接选项,以允许 VPC B 将流量发送到 EC2-Classic 实例 A。

使用控制台修改 VPC 对等连接
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

    VPC B 的拥有者必须登录控制台。

  2. 在导航窗格中,选择 Peering Connections

  3. 选择 VPC 对等连接,然后选择 ActionsEdit ClassicLink Settings

  4. 选择允许本地 VPC 实例与对等 VPC 中的 EC2-Classic 实例通信的选项,然后选择 Save

使用 Amazon CLI 修改 VPC 对等连接

VPC B 收到 VPC 对等连接;因此,请按照下面的方法修改接受方选项:

aws ec2 modify-vpc-peering-connection-options --vpc-peering-connection-id pcx-aaaabbbb --accepter-peering-connection-options AllowEgressFromLocalVpcToRemoteClassicLink=true

查看 VPC 对等连接选项

您可以使用 Amazon VPC 控制台或 Amazon CLI 查看接受者 VPC 和请求者 VPC 的 VPC 对等连接选项。

使用控制台查看 VPC 对等连接选项
  1. 通过以下网址打开 Amazon VPC 控制台:https://console.aws.amazon.com/vpc/

  2. 在导航窗格中,选择 Peering Connections

  3. 选择 VPC 对等连接,然后选择 ClassicLink。显示已启用或已禁用的 VPC 对等连接选项的相关信息。

使用 Amazon CLI 查看 VPC 对等连接选项

您可以使用 describe-vpc-peering-connections 命令:

aws ec2 describe-vpc-peering-connections --vpc-peering-connection-id pcx-aaaabbbb
{ "VpcPeeringConnections": [ { "Status": { "Message": "Active", "Code": "active" }, "Tags": [ { "Value": "MyPeeringConnection", "Key": "Name" } ], "AccepterVpcInfo": { "PeeringOptions": { "AllowEgressFromLocalVpcToRemoteClassicLink": true, "AllowEgressFromLocalClassicLinkToRemoteVpc": false, "AllowDnsResolutionFromRemoteVpc": false }, "OwnerId": "123456789101", "VpcId": "vpc-80cb52e4", "CidrBlock": "172.31.0.0/16" }, "VpcPeeringConnectionId": "pcx-aaaabbbb", "RequesterVpcInfo": { "PeeringOptions": { "AllowEgressFromLocalVpcToRemoteClassicLink": false, "AllowEgressFromLocalClassicLinkToRemoteVpc": true, "AllowDnsResolutionFromRemoteVpc": false }, "OwnerId": "111222333444", "VpcId": "vpc-f527be91", "CidrBlock": "192.168.0.0/16" } } ] }