

# 路由优先级的工作原理
<a name="route-tables-priority"></a>

一般来说，我们使用与流量匹配的最明确路由以引导流量。这被称为最长的前缀匹配。如果路由表具有重叠或匹配的路由，则应用其他规则。

以下列表显示了路由优先级摘要，其中包含指向以下部分的链接，包含更多详细信息和示例：

1. [最长前缀](#route-table-longest-prefix-match)（例如，10.10.2.15/32 的优先级高于 10.10.2.0/24）

1. [静态路由](#route-table-priority-propagated-routes)（例如 VPC 对等连接和互联网网关连接）

1. [前缀列表路由](#route-priority-managed-prefix-list)

1. [传播路由](#route-table-priority-propagated-routes)

   1. Direct Connect BGP 路由（动态路由）

   1. VPN 静态路由

   1. VPN BGP 路由（动态路由）（如虚拟专用网关）

## 最长前缀匹配
<a name="route-table-longest-prefix-match"></a>

到 IPv4 和 IPv6 地址或 CIDR 块的路由彼此独立。我们使用与 IPv4 流量或 IPv6 流量匹配的最明确路由来确定如何路由流量。

下面的子网路由表包含一条指向互联网网关的 IPv4 Internet 流量（`0.0.0.0/0`）路由、一条指向对等连接（`pcx-11223344556677889`）的 `172.31.0.0/16` IPv4 流量路由。来自该子网的目标为 `172.31.0.0/16` IP 地址范围的任意流量均使用对等连接，因为该路由比互联网网关路由更明确。目标设为 VPC (`10.0.0.0/16`) 中的目标的任何流量将被 `local` 路由涵盖，因此将在 VPC 中路由。来自该子网的所有其他流量使用互联网网关。


| 目的地 | 目标 | 
| --- | --- | 
| 10.0.0.0/16 | 本地 | 
| 172.31.0.0/16 | pcx-11223344556677889 | 
| 0.0.0.0/0 | igw-12345678901234567 | 

## 静态和动态传播路由的路由优先级
<a name="route-table-priority-propagated-routes"></a>

如果您已将一个虚拟私有网关连接到 VPC，并且已启用子网路由表上的路由传播，则代表 Site-to-Site VPN 连接的路由会在您的路由表中自动显示为已传播路由。

如果传播路由的目的地与静态路由的目的地相同，则静态路由优先级更高。以下资源使用静态路由：
+ 互联网网关
+ NAT 网关
+ 网络接口
+ 实例 ID
+ 网关 VPC 端点
+ Transit Gateway
+ VPC 对等连接
+ 网关负载均衡器端点

有关更多信息，请参阅《*Amazon Site-to-Site VPN 用户指南*》中的[路由表和 VPN 路由优先级](https://docs.amazonaws.cn/vpn/latest/s2svpn/VPNRoutingTypes.html#vpn-route-priority)。

以下示例路由表具有指向互联网网关的静态路由和指向虚拟私有网关的传播路由。这两条路由的目的地均为 `172.31.0.0/24`。由于通往互联网网关的静态路由优先级更高，因此所有到 `172.31.0.0/24` 的流量被路由到互联网网关。


| 目标位置 | Target | 传播 | 
| --- | --- | --- | 
| 10.0.0.0/16 | 本地 | 否 | 
| 172.31.0.0/24 | vgw-11223344556677889 | 是 | 
| 172.31.0.0/24 | igw-12345678901234567 | 否 | 

## 前缀列表的路由优先级
<a name="route-priority-managed-prefix-list"></a>

如果路由表引用前缀列表，则以下规则适用：
+ 如果路由表中包含的传播路由与引用前缀列表的路由匹配，则引用前缀列表的路由优先。请注意，如果路由出现重叠，无论它们是传播路由、静态路由还是引用前缀列表的路由，更具体的路由始终优先。
+ 如果路由表引用多个前缀列表，而这些前缀列表具有到不同目标的重叠的 CIDR 块，则我们会随机选择哪条路由优先。此后，同一路由将始终优先。