示例路由选项 - Amazon Virtual Private Cloud
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

示例路由选项

以下主题介绍了您的 VPC 中的特定网关或连接的路由。

路由到互联网网关

您可以通过向互联网网关添加子网路由表中的路由,使子网成为公有子网。为此,请创建一个互联网网关并将其附加到您的 VPC,然后添加一个目的地为 0.0.0.0/0 (对于 IPv4 流量) 或 ::/0 (对于 IPv6 流量) 且目标为互联网网关 ID (igw-xxxxxxxxxxxxxxxxx) 的路由。

目的地 目标
0.0.0.0/0 igw-id
::/0 igw-id

有关更多信息,请参阅 Internet 网关

路由到 NAT 设备

要使私有子网中的实例能够连接到 Internet,您可以创建 NAT 网关或在公有子网中启动 NAT 实例。然后为私有子网的路由表添加路由,将 IPv4 Internet 流量 (0.0.0.0/0) 路由到 NAT 设备。

目的地 目标
0.0.0.0/0 nat-gateway-id

您还可以创建到其他目标的更明确的路由,以避免因使用 NAT 网关而产生的不必要的数据处理费用,或者需要专门路由特定流量。在以下示例中,Amazon S3 流量(pl-xxxxxxxx,Amazon S3 的特定 IP 地址范围)路由到网关 VPC 终端节点,而 10.25.0.0/16 流量路由到 VPC 对等连接。pl-xxxxxxxx 和 10.25.0.0/16 IP 地址范围比 0.0.0.0/0 更具体。当实例向 Amazon S3 或对等 VPC 发送流量时,流量将发送到网关 VPC 终端节点或 VPC 对等连接。所有其他流量发送到 NAT 网关。

目的地 目标
0.0.0.0/0 nat-gateway-id
pl-xxxxxxxx vpce-id
10.25.0.0/16 pcx-id

有关更多信息,请参阅 NAT 网关NAT 实例。NAT 设备不能用于 IPv6 流量。

路由到虚拟私有网关

您可以使用AWS Site-to-Site VPN 连接来支持 VPC 中的实例与您自己的网络进行通信。为此,请创建虚拟私有网关并附加到您的 VPC。然后在子网路由表中添加路由,其目的地为您的网络,目标为虚拟私有网关 (vgw-xxxxxxxxxxxxxxxxx)。

目的地 目标
10.0.0.0/16 vgw-id

您随后可以创建和配置Site-to-Site VPN 连接。有关更多信息,请参阅 AWS Site-to-Site VPN 用户指南 中的什么是 AWS Site-to-Site VPN?以及路由表和 VPN 路由优先级

我们目前不支持通过 AWS Site-to-Site VPN 连接的 IPv6 流量。但是,我们支持通过虚拟私有网关路由到 AWS Direct Connect 连接的 IPv6 流量。有关更多信息,请参阅 AWS Direct Connect 用户指南

路由到 AWS Outposts 本地网关

与 AWS Outposts 关联的 VPC 中的子网可以有本地网关的额外目标类型。考虑您希望将目的地地址为 192.168.10.0/24 的本地网关路由流量到客户网络的情况。要执行此操作,请添加具有目的地网络和本地网关目标 (lgw-xxxx) 的以下路由。

目的地 目标
192.168.10.0/24 lgw-id
2002:bc9:1234:1a00::/56 igw-id

路由到 VPC 对等连接

VPC 对等连接是两个 VPC 之间的网络连接,通过此连接,您可以使用私有 IPv4 地址在这两个 VPC 之间路由流量。任何一个 VPC 中的实例都可以彼此通信,就像它们属于同一网络中一样。

要在 VPC 对等连接中的 VPC 之间实现流量路由,您必须将一个路由添加到指向 VPC 对等连接的一个或多个子网路由表。这允许您访问对等连接中其他 VPC 的全部或部分 CIDR 块。同样,另一个 VPC 的拥有者必须将一个路由添加到其子网路由表,以将流量路由回您的 VPC。

例如,您在具有以下信息的两个 VPC 之间具有 VPC 对等连接 (pcx-11223344556677889):

  • VPC A:CIDR 块为 10.0.0.0/16

  • VPC B:CIDR 块为 172.31.0.0/16

要启用 VPC 之间的流量并允许访问任一 VPC 的整个 IPv4 CIDR 块,VPC A 的路由表的配置如下所示。

目的地 目标
10.0.0.0/16 本地
172.31.0.0/16 pcx-11223344556677889

VPC B 的路由表的配置如下所示。

目的地 目标
172.31.0.0/16 本地
10.0.0.0/16 pcx-11223344556677889

您的 VPC 对等连接也可以支持 VPC 中实例之间的 IPv6 通信,前提是已启用 VPC 和实例进行 IPv6 通信。有关更多信息,请参阅 VPC 和子网。要在 VPC 之间启用 IPv6 流量路由,您必须向路由表中添加一条指向 VPC 对等连接的路由,以访问对等 VPC 的全部或部分 IPv6 CIDR 块。

例如,仍使用上面的 VPC 对等连接 (pcx-11223344556677889),假设 VPC 具有以下信息:

  • VPC A:IPv6 CIDR 块为 2001:db8:1234:1a00::/56

  • VPC B:IPv6 CIDR 块为 2001:db8:5678:2b00::/56

要通过 VPC 对等连接启用 IPv6 通信,请将以下路由添加到 VPC A 的子网路由表中。

目的地 目标
10.0.0.0/16 本地
172.31.0.0/16 pcx-11223344556677889
2001:db8:5678:2b00::/56 pcx-11223344556677889

将以下路由添加到 VPC B 的路由表中:

目的地 目标
172.31.0.0/16 本地
10.0.0.0/16 pcx-11223344556677889
2001:db8:1234:1a00::/56 pcx-11223344556677889

有关 VPC 对等连接的更多信息,请参阅 Amazon VPC Peering Guide

ClassicLink 功能允许您将 EC2-Classic 实例链接到 VPC,从而允许 EC2-Classic 实例与 VPC 中使用私有 IPv4 地址的实例进行通信。有关 ClassicLink 的更多信息,请参阅 ClassicLink

为 VPC 启用 ClassicLink 时,会向所有子网路由表添加一个路由,其目的地为 10.0.0.0/8,目标为 local。这允许 VPC 中的实例与后来链接到该 VPC 的任意 EC2-Classic 实例之间进行通信。如果您向启用了 ClassicLink 的 VPC 另外添加一个路由表,该路由表会自动接收一个目的地为 10.0.0.0/8 并且目标为 local 的路由。如果禁用 VPC 的 ClassicLink,会从所有子网路由表中自动删除此路由。

如果您的任意子网路由表对于 10.0.0.0/8 CIDR 中的地址范围已有路由,则无法为 ClassicLink 启用 VPC。这不包括 VPC 的 10.0.0.0/1610.1.0.0/16 IP 地址范围的本地路由。

如果您已经为 VPC 启用了 ClassicLink,则无法再在路由表中添加 10.0.0.0/8 IP 地址范围的任何具体路由。

如果您修改 VPC 对等连接以允许 VPC 中的实例与已链接到对等 VPC 的 EC2-Classic 实例之间的通信,则静态路由将自动添加到您的路由表,其目的地为 10.0.0.0/8,目标为 local。如果您修改 VPC 对等连接以允许已链接到 VPC 的本地 EC2-Classic 实例与对等 VPC 中的实例之间的通信,则必须手动将路由添加到您的主路由表,其目的地为对等 VPC CIDR 块,目标为 VPC 对等连接。EC2-Classic 实例依赖主路由表来路由到对等 VPC。有关更多信息,请参阅 Amazon VPC Peering Guide 中的使用 ClassicLink 进行配置

路由到网关 VPC 终端节点

使用网关 VPC 终端节点可以在您的 VPC 和其他 AWS 服务之间创建私有连接。创建网关终端节点时,您指定 VPC 中由该网关终端节点使用的子网路由表。路由会自动添加到每个路由表中,这些路由表的目的地指定服务的前缀列表 ID (pl-xxxxxxxx),目标具有相应终端节点 ID (vpce-xxxxxxxxxxxxxxxxx)。您无法显式删除或修改终端节点路由,但可更改终端节点所使用的路由表。

有关终端节点路由的更多信息以及对到 AWS 服务的路由的影响,请参阅 网关终端节点路由

路由到仅出口互联网网关

您可以为 VPC 创建仅出口互联网网关,以允许私有子网中的实例发起到 Internet 的出站通信,但阻止 Internet 发起与这些实例的连接。仅出口互联网网关只适用于 IPv6 流量。要为仅出口互联网网关配置路由,请为将 IPv6 Internet 流量 (::/0) 路由到仅出口互联网网关的私有子网路由表添加路由。

目的地 目标
::/0 eigw-id

有关更多信息,请参阅 仅出口互联网网关

中转网关的路由

将 VPC 附加到 transit gateway 时,您需要向子网路由表添加路由以使流量通过 transit gateway。

考虑以下场景:您有三个 VPC 附加到 transit gateway。在此场景中,所有连接都与transit gateway路由表关联且传播到transit gateway路由表。因此,所有连接都可以将数据包路由到彼此,而将transit gateway用作简单第 3 层 IP 集线器。

例如,您有两个 VPC,其中包含以下信息:

  • VPC A:10.1.0.0/16,附加 ID tgw-attach-11111111111111111

  • VPC B:10.2.0.0/16,连接 ID tgw-attach-22222222222222222

要启用 VPC 之间的流量并允许访问 transit gateway,VPC A 路由表的配置如下所示。

目的地 目标

10.1.0.0/16

本地

10.0.0.0/8

tgw-id

以下是 VPC 连接的 transit gateway 路由表条目的示例。

目的地 目标

10.1.0.0/16

tgw-attach-11111111111111111

10.2.0.0/16

tgw-attach-22222222222222222

有关 transit gateway 路由表的更多信息,请参阅Amazon VPC 中转网关中的路由

VPC 内中间盒设备的路由

您可以拦截通过互联网网关或虚拟私有网关进入 VPC 的流量,方法是将其引导到 VPC 中的中间设备。您可以配置设备来满足要求。例如,您可以配置筛选所有流量的安全设备或 WAN 加速设备。设备作为 Amazon EC2 实例部署在 VPC 的子网中,并由子网中的弹性网络接口(网络接口)呈现。

要将入站 VPC 流量路由到设备,您需要将路由表与互联网网关或虚拟私有网关相关联,并将设备的网络接口指定为 VPC 流量的目标。有关更多信息,请参阅 网关路由表。您还可以将出站流量从您的子网路由到另一个子网中的中间设备。

注意

如果您已为目标子网路由表启用路由传播,请注意路由优先级。我们将确定最具体路由的优先级,如果路由匹配,静态路由的优先级将高于传播路由。检查您的路由,确保正确路由了流量,并且在启用或禁用路由传播时不会产生意外后果(例如,支持巨帧的 AWS Direct Connect 连接需要路由传播)。

设备注意事项

您可以从 AWS Marketplace 选择第三方设备,也可以配置自己的设备。创建或配置设备时,请注意以下事项:

  • 设备必须在指向源流量或目标流量的单独子网中配置。

  • 您必须禁用设备上的源/目标检查。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例) 中的更改源或目标检查

  • 不支持服务链接。

  • 您不能通过设备在同一子网中的主机之间路由流量。

  • 您不能通过设备在子网之间路由流量。

  • 设备不必执行网络地址转换 (NAT)。

  • 要拦截 IPv6 流量,请确保您已针对 IPv6 配置 VPC、子网和设备。有关更多信息,请参阅 使用 VPC 和子网。虚拟私有网关不支持 IPv6 流量。

设备路由配置

要将入站流量路由到设备,请创建一个路由表并添加一个路由,该路由将流向子网的流量引导到设备的网络接口。此路由比路由表的本地路由更明确。将此路由表与互联网网关或虚拟私有网关相关联。以下路由表将流向子网的 IPv4 流量路由到设备的网络接口。

目的地 目标
10.0.0.0/16 本地
10.0.1.0/24 eni-id

或者,您可以将本地路由的目标替换为设备的网络接口。您可以执行此操作以确保所有流量自动路由到设备,包括流向您以后添加到 VPC 的子网的流量。

目的地 目标
10.0.0.0/16 eni-id

要将流量从您的子网路由到另一个子网中的设备,请向您的子网路由表添加将流量路由到设备网络接口的路由。目的地的具体程度必须低于本地路由的目的地。例如,对于流向 Internet 的流量,请为目的地指定 0.0.0.0/0(所有 IPv4 地址)。

目的地 目标
10.0.0.0/16 本地
0.0.0.0/0 eni-id

然后,在与设备子网关联的路由表中,添加将流量路由回互联网网关或虚拟私有网关的路由。

目的地 目标
10.0.0.0/16 本地
0.0.0.0/0 igw-id

您可以对 IPv6 流量应用相同的路由配置。例如,在网关路由表中,您可以将 IPv4 和 IPv6 本地路由的目标替换为设备的网络接口。

目的地 目标
10.0.0.0/16 eni-id
2001:db8:1234:1a00::/56 eni-id

在下图中,防火墙设备安装和配置在 VPC 中子网 A 的 Amazon EC2 实例上。设备检查通过互联网网关流入和流出 VPC 的所有流量。路由表 A 与互联网网关相关联。通过互联网网关流入 VPC 的子网 B 的流量将路由到设备的网络接口 (eni-11223344556677889)。流出子网 B 的所有流量也路由到设备的网络接口。


                        流向 VPC 的入站 IPv4 路由

以下示例具有与上述示例相同的设置,但包括 IPv6 流量。通过互联网网关流入 VPC 的子网 B 的 IPv6 流量将路由到设备的网络接口 (eni-11223344556677889)。流出子网 B 的所有流量(IPv4 和 IPv6)也路由到设备的网络接口。


                        流向 VPC 的入站 IPv4 和 IPv6 路由

使用前缀列表进行路由

如果您经常在 AWS 资源中引用同一组 CIDR 块,则可以创建客户管理的前缀列表以将它们分组在一起。然后,您可以在路由表条目中将此前缀列表指定为目的地。您可以稍后添加或删除前缀列表的条目,而无需更新路由表。

例如,您具有一个包含多个 VPC 连接的中转网关。VPC 必须能够与具有以下 CIDR 块的两个特定 VPC 连接进行通信:

  • 10.0.0.0/16

  • 10.2.0.0/16

创建包含这两个条目的前缀列表。在子网路由表中,创建一条路由,并将前缀列表指定为目的地,将中转网关指定为目标。

目的地 目标
172.31.0.0/16 本地
pl-123abc123abc123ab tgw-id

前缀列表的最大条目数与路由表中的条目数相等。