

# 示例路由选项
<a name="route-table-options"></a>

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

**Topics**
+ [路由到互联网网关](#route-tables-internet-gateway)
+ [路由到 NAT 设备](#route-tables-nat)
+ [路由到虚拟私有网关](#route-tables-vgw)
+ [路由到 Amazon Outposts 本地网关](#route-tables-lgw)
+ [路由到 VPC 对等连接](#route-tables-vpc-peering)
+ [路由到网关 VPC 端点](#route-tables-vpce)
+ [路由到仅出口互联网网关](#route-tables-eigw)
+ [中转网关的路由](#route-tables-tgw)
+ [中间盒设备的路由](#route-tables-appliance-routing)
+ [使用前缀列表进行路由](#route-tables-managed-prefix-list)
+ [路由到网关负载均衡器端点](#route-tables-gwlbe)

## 路由到互联网网关
<a name="route-tables-internet-gateway"></a>

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


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

有关更多信息，请参阅 [使用互联网网关为 VPC 启用互联网访问](VPC_Internet_Gateway.md)。

## 路由到 NAT 设备
<a name="route-tables-nat"></a>

要使私有子网中的实例能够连接到 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 对等连接。这些 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 设备](vpc-nat.md)。

## 路由到虚拟私有网关
<a name="route-tables-vgw"></a>

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


| 目的地 | 目标 | 
| --- | --- | 
| 10.0.0.0/16 | vgw-id | 

然后，您可以创建和配置 Site-to-Site VPN 连接。有关更多信息，请参阅《*Amazon Site-to-Site VPN 用户指南*》中的[什么是 Amazon Site-to-Site VPN？](https://docs.amazonaws.cn/vpn/latest/s2svpn/VPC_VPN.html)和[路由表和 VPN 路由优先级](https://docs.amazonaws.cn/vpn/latest/s2svpn/VPNRoutingTypes.html#vpn-route-priority)。

虚拟私有网关上的 Site-to-Site VPN 连接不支持 IPv6 流量。但是，我们支持通过虚拟私有网关路由到 Amazon Direct Connect 连接的 IPv6 流量。有关更多信息，请参阅 [Amazon Direct Connect 用户指南](https://docs.amazonaws.cn/directconnect/latest/UserGuide/)。

## 路由到 Amazon Outposts 本地网关
<a name="route-tables-lgw"></a>

本节介绍用于路由到 Amazon Outposts 本地网关的路由表配置。

**Topics**
+ [启用 Outpost 子网与本地网络之间的流量](#route-tables-lgw-on-prem)
+ [在不同 Outposts 的同一 VPC 中的子网之间启用流量](#route-tables-lgw-intra-vpc)

### 启用 Outpost 子网与本地网络之间的流量
<a name="route-tables-lgw-on-prem"></a>

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


| 目的地 | 目标 | 
| --- | --- | 
| 192.168.10.0/24 | lgw-id | 

### 在不同 Outposts 的同一 VPC 中的子网之间启用流量
<a name="route-tables-lgw-intra-vpc"></a>

您可以使用 Outpost 本地网关和本地网络，在不同 Outpost 的同一 VPC 中的子网之间建立通信。

借助此功能，您可以通过在锚定到不同可用区的 Outposts 机架之间建立连接，为在 Outposts 机架上运行的本地应用程序构建类似于多可用区（AZ）架构的架构。

![\[使用本地网关的不同 Outposts 的同一 VPC 中的子网之间的流量\]](http://docs.amazonaws.cn/vpc/latest/userguide/images/outpost-intra-vpc-connection.png)


要启用此功能，请向 Outpost 机架子网路由表添加一个路由，该路由应比路由表中的本地路由更为具体，且目标类型应为本地网关。路由目标必须匹配另一个 Outpost 中 VPC 中子网的整个 IPv4 块。对所有需要进行通信的 Outpost 子网重复此配置。

**重要**  
要使用此功能，必须使用[直接 VPC 路由](https://docs.amazonaws.cn/outposts/latest/userguide/routing.html#direct-vpc-routing)。不得使用[客户自有 IP 地址](https://docs.amazonaws.cn/outposts/latest/userguide/routing.html#ip-addressing)。
Outposts 本地网关所连接到的本地网络必须具有所需路由，以便子网能够相互访问。
如果要对子网中的资源使用安全组，则必须使用包含 IP 地址范围作为 Outpost 子网中的源或目标的规则。不得使用安全组 ID。
现有 Outposts 机架可能需要更新，才能支持在多个 Outposts 之间进行 VPC 内部通信。如果此功能并不适用，[请联系 Amazon Support](https://docs.amazonaws.cn/awssupport/latest/user/case-management.html)。

**Example 示例**  
对于 CIDR 为 10.0.0.0/16 的 VPC、CIDR 为 10.0.1.0/24 的 Outpost 1 子网，以及 CIDR 为 10.0.2.0/24 的 Outpost 2 子网，Outpost 1 子网的路由表条目将如下所示：


| 目标位置 | 目标 | 
| --- | --- | 
| 10.0.0.0/16 | 本地 | 
| 10.0.2.0/24 | lgw-1-id | 

Outpost 2 子网的路由表条目将如下所示：


| 目标位置 | 目标 | 
| --- | --- | 
| 10.0.0.0/16 | 本地 | 
| 10.0.1.0/24 | lgw-2-id | 

## 路由到 VPC 对等连接
<a name="route-tables-vpc-peering"></a>

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 对等连接指南](https://docs.amazonaws.cn/vpc/latest/peering/)。

## 路由到网关 VPC 端点
<a name="route-tables-vpce"></a>

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

有关端点路由的更多信息以及对到 Amazon 服务的路由的影响，请参阅[网关端点路由](https://docs.amazonaws.cn/vpc/latest/privatelink/gateway-endpoints.html#gateway-endpoint-routing)。

## 路由到仅出口互联网网关
<a name="route-tables-eigw"></a>

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


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

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

## 中转网关的路由
<a name="route-tables-tgw"></a>

将 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* 中的[路由](https://docs.amazonaws.cn/vpc/latest/tgw/how-transit-gateways-work.html#tgw-routing-overview)。

## 中间盒设备的路由
<a name="route-tables-appliance-routing"></a>

您可以将中间盒设备添加到 VPC 的路由路径中。以下是可能使用案例：
+ 拦截通过互联网网关或虚拟私有网关进入 VPC 的流量，方法是将其引导到 VPC 中的中间盒设备。您可以使用中间盒路由向导，让Amazon自动为网关、中间盒设备和目标子网配置相应的路由表。有关更多信息，请参阅 [中间盒路由向导](middlebox-routing-console.md)。
+ 将两个子网之间的流量定向到中间盒设备。您可以通过为与另一个子网的子网 CIDR 匹配的子网路由表创建路由，并将网关负载均衡器端点、NAT 网关、Network Firewall 端点或设备的网络接口指定为目标来完成此操作。或者，要将所有流量从子网重新导向到任何其他子网，请将本地路由的目标替换为网关负载均衡器端点、NAT 网关或网络接口。

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

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

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

有关中间盒路由示例，请参阅[中间盒场景](middlebox-routing-examples.md)。

**Topics**
+ [设备注意事项](#appliance-considerations)
+ [在网关和设备之间路由流量](#appliance-routing-configuration)
+ [将子网间流量路由到设备](#appliance-routing-configuration-inter-subnet)

### 设备注意事项
<a name="appliance-considerations"></a>

您可以从 [Amazon Web Services Marketplace](https://www.amazonaws.cn/marketplace) 选择第三方设备，也可以配置自己的设备。创建或配置设备时，请注意以下事项：
+ 设备必须在指向源流量或目标流量的单独子网中配置。
+ 您必须禁用设备上的源/目标检查。有关更多信息，请参阅《*Amazon EC2 用户指南*》中的[更改源或目标检查](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/using-eni.html#change_source_dest_check)。
+ 您不能通过设备在同一子网中的主机之间路由流量。
+ 设备不必执行网络地址转换 (NATI)。
+ 您可以在您的路由表中添加比本地路由更具体的路由。您可以使用更具体的路由将 VPC（东-西流量）内子网之间的流量重新导向到中间盒设备。路由目的地必须匹配 VPC 中子网的整个 IPv4 或 IPv6 CIDR 块。
+ 要拦截 IPv6 流量，请确保您的 VPC、子网和设备支持 IPv6。

### 在网关和设备之间路由流量
<a name="appliance-routing-configuration"></a>

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

![\[通过设备路由入站流量\]](http://docs.amazonaws.cn/vpc/latest/userguide/images/gateway-appliance-routing.png)


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


| 目标位置 | Target | 
| --- | --- | 
| VPC CIDR | 本地 | 
| 子网 CIDR | 设备网络接口 ID | 

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


| 目标位置 | Target | 
| --- | --- | 
| VPC CIDR | 设备网络接口 ID | 

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


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

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


| 目标位置 | Target | 
| --- | --- | 
| VPC CIDR | 本地 | 
| 0.0.0.0/0 | igw-id | 

### 将子网间流量路由到设备
<a name="appliance-routing-configuration-inter-subnet"></a>

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

![\[通过设备在子网之间路由流量\]](http://docs.amazonaws.cn/vpc/latest/userguide/images/inter-subnet-appliance-routing.png)


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

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


| 目标位置 | Target | 
| --- | --- | 
| VPC CIDR | 本地 | 
| 子网 B CIDR | 设备网络接口 ID | 

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


| 目标位置 | Target | 
| --- | --- | 
| VPC CIDR | 本地 | 
| 子网 A CIDR | 设备网络接口 ID | 

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


| 目标位置 | Target | 
| --- | --- | 
| VPC CIDR | 设备网络接口 ID | 

## 使用前缀列表进行路由
<a name="route-tables-managed-prefix-list"></a>

如果您经常在 Amazon 资源中引用同一组 CIDR 块，则可以创建[客户托管的前缀列表](managed-prefix-lists.md)以将它们分组在一起。然后，您可以在路由表条目中将此前缀列表指定为目的地。您可以稍后添加或删除前缀列表的条目，而无需更新路由表。

例如，您具有一个包含多个 VPC 连接的中转网关。VPC 必须能够与具有以下 CIDR 块的两个特定 VPC 连接进行通信：
+ 10.0.0.0/16
+ 10.2.0.0/16

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


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

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

## 路由到网关负载均衡器端点
<a name="route-tables-gwlbe"></a>

网关负载均衡器使您能够将流量分配到虚拟设备队列，例如防火墙。您可以创建网关负载均衡器，配置[网关负载均衡器端点服务](https://docs.amazonaws.cn/vpc/latest/privatelink/create-gateway-load-balancer-endpoint-service.html)，然后在您的 VPC 中创建[网关负载均衡器端点](https://docs.amazonaws.cn/vpc/latest/privatelink/gateway-load-balancer-endpoints.html)以将其连接到该服务。

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

有关网关负载均衡器后面的安全设备的示例，请参阅[在 VPC 中配置中间盒流量路由和检查](gwlb-route.md)。

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


| 目标位置 | Target | 
| --- | --- | 
| 10.0.1.0/24 | vpc-endpoint-id | 

使用 Gateway Load Balancer 端点作为目标时，不能将前缀列表指定为目的地。如果您尝试创建或替换以 VPC 端点为目标的前缀列表路由，则会收到错误消息：“无法创建或替换以 VPC 端点为目标的前缀列表路由。”

有关更多信息，请参阅[网关负载均衡器](https://docs.amazonaws.cn/elasticloadbalancing/latest/gateway/introduction.html)。