示例路由选项 - Amazon Virtual Private Cloud

示例路由选项

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

路由到互联网网关

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

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

有关更多信息,请参阅 使用互联网网关连接到互联网

路由到 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 路由优先级

虚拟私有网关上的 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

路由到 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 之间启用 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 对等连接指南

路由到网关 VPC 终端节点

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

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

路由到仅出口互联网网关

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

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

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

中转网关的路由

将 VPC 附加到中转网关时,您需要向子网路由表添加路由,以使流量通过中转网关进行路由。

考虑以下场景:您有三个 VPC 附加到中转网关。在该方案中,所有挂载与中转网关路由表相关联,并传播到中转网关路由表。因此,所有挂载都可以将数据包路由到彼此,而将中转网关用作简单第 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 之间的流量并允许访问中转网关,VPC A 路由表的配置如下所示。

目的地 目标
10.1.0.0/16 本地
10.0.0.0/8 tgw-id

以下是 VPC 挂载的中转网关路由表条目的示例。

目的地 目标
10.1.0.0/16 tgw-attach-11111111111111111
10.2.0.0/16 tgw-attach-22222222222222222

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

中间盒设备的路由

您可以将中间盒设备添加到 VPC 的路由路径中。以下是可能使用案例:

  • 拦截通过互联网网关或虚拟私有网关进入 VPC 的流量,方法是将其引导到 VPC 中的中间盒设备。您可以使用中间盒路由向导,让AWS自动为网关、中间盒设备和目标子网配置相应的路由表。有关更多信息,请参阅 中间盒路由向导

  • 将两个子网之间的流量定向到中间盒设备。您可以通过为与另一个子网的子网 CIDR 匹配的子网路由表创建路由,并将网关负载均衡器端点、NAT 网关、Network Firewall 端点或设备的网络接口指定为目标来完成此操作。或者,要将所有流量从子网重新导向到任何其他子网,请将本地路由的目标替换为网关负载均衡器端点、NAT 网关或网络接口。

您可以配置设备来满足要求。例如,您可以配置筛选所有流量的安全设备或 WAN 加速设备。设备作为 Amazon EC2 实例部署在 VPC 的子网中,并由子网中的弹性网络接口(网络接口)呈现。

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

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

有关中间盒路由示例,请参阅中间盒场景

设备注意事项

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

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

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

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

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

  • 您可以在您的路由表中添加比本地路由更具体的路由。您可以使用更具体的路由将 VPC(东-西流量)内子网之间的流量重新导向到中间盒设备。路由目的地必须匹配 VPC 中子网的整个 IPv4 或 IPv6 CIDR 块。

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

在网关和设备之间路由流量

要将入站 VPC 流量路由到设备,您需要将路由表与互联网网关或虚拟私有网关相关联,并将设备的网络接口指定为 VPC 流量的目标。在以下示例中,VPC 具有互联网网关、设备和子网,其中包含实例。来自互联网的流量通过设备进行路由。


                    通过设备路由入站流量

将此路由表与互联网网关或虚拟私有网关相关联。第一个条目是本地路由。第二个条目将流向子网的 IPv4 流量发送到设备的网络接口。这是比默认本地路由更明确的路由。

目标 目标
VPC CIDR 本地
子网 CIDR 设备网络接口 ID

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

目标 目标
VPC CIDR 设备网络接口 ID

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

目的地 目标
VPC CIDR 本地
0.0.0.0/0 设备网络接口 ID

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

目标 目标
VPC CIDR 本地
0.0.0.0/0 igw-id

将子网间流量路由到设备

您可以将流向特定子网的流量路由到设备的网络接口。在以下示例中,VPC 包含两个子网和一个设备。通过设备在子网之间路由的流量。


                    通过设备在子网之间路由流量

安全组

当您通过中间盒设备在不同子网中的实例之间路由流量时,这两个实例的安全组必须允许流量在实例之间流动。每个实例的安全组必须引用另一个实例的私有 IP 地址或包含另一个实例的子网的 CIDR 范围作为源。如果您引用另一个实例的安全组作为源,则安全组不允许流量在实例之间流动。

路由选择

以下是子网 A 的示例路由表。第一个条目允许 VPC 中的实例在彼此之间进行通信。第二个条目将从子网 A 到子网 B 的所有流量路由到设备的网络接口。

目标 目标
VPC CIDR 本地
子网 B CIDR 设备网络接口 ID

以下是子网 B 的示例路由表。第一个条目允许 VPC 中的实例在彼此之间进行通信。第二个条目将从子网 B 到子网 A 的所有流量路由到设备的网络接口。

目标 目标
VPC CIDR 本地
子网 A CIDR 设备网络接口 ID

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

目标 目标
VPC CIDR 设备网络接口 ID

使用前缀列表进行路由

如果您经常在 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

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

路由到网关负载均衡器终端节点

网关负载均衡器使您能够将流量分配到虚拟设备队列,例如防火墙。您可以通过创建 VPC 终端节点服务配置将负载均衡器配置为服务。然后,您在 VPC 中创建网关负载均衡器终端节点,以将 VPC 连接到服务。

要将流量路由到网关负载均衡器(例如,用于安全检查),请在路由表中将网关负载均衡器终端节点指定为目标。

有关网关负载均衡器后面的安全设备的示例,请参阅使用安全 VPC 中的设备检查流量

要在路由表中指定网关负载均衡器终端节点,请使用 VPC 终端节点的 ID。例如,要将 10.0.1.0/24 的流量路由到网关负载均衡器端点,请添加以下路由。

目标 目标
10.0.1.0/24 vpc-endpoint-id

有关更多信息,请参阅网关负载均衡器