我有一个 AWS Direct Connect 连接。Direct Connect 网关与 AWS Transit Gateway 相关联。我创建了一个站点对站点的 VPN 用作 Direct Connect 连接的备份,但我遇到了非对称路由问题。
简短描述
将虚拟专用网络 (VPN) 连接作为 Direct Connect 的备份时,可能会出现非对称路由问题。当网络流量通过一个连接进入,但从另一个连接退出时,就会出现非对称路由。如果收到的流量未记录在状态表中,则防火墙等网络设备可能会丢弃数据包。
解决方法
从 AWS 到您的网络的出站流量
对从 AWS 到您的网络的出站流量使用以下最佳实践:
- 使用边界网关协议 (BGP) 配置动态路由 VPN。
- 确保您的设备使用 VPN 和 Direct Connect 将相同或不太具体的前缀从本地发布到 AWS。例如,10.0.0.0/16 不如 10.0.0.0/24 那么具体。
- 对于值相同的前缀长度,AWS 会将本地流量发送到您的网络,此时 Direct Connect 的首选项值高于 VPN 连接。对于 AWS Transit Gateway,会使用指向 VPN 连接的静态路由,不会使用动态传播的 Direct Connect 网关路由。
- 对于使用动态 VPN 作为备份部署的 Direct Connect,不建议使用 AS PATH 预置。如果前缀相同,则无论 AS PATH 预置长度如何,都使用 Direct Connect 路由。
有关更多信息,请参阅 Routing。
从您的网络到 AWS 的入站流量
对从您的网络到 AWS 的入站流量使用以下最佳实践:
- 将您的网络设备配置为优先通过 Direct Connect 连接发送回程流量。
- 对于 Direct Connect 和 VPN 而言,如果从 AWS 发布到您的网络设备的前缀相同,则会使用 BGP 本地首选项属性。BGP 本地首选项属性会强制您的设备通过 Direct Connect 连接向 AWS 发送出站流量。为 Direct Connect 路径设置更高的本地首选项值,并为 VPN 设置较低的优先级。例如,将 Direct Connect 的本地首选项设置为 200,将 VPN 的本地首选项设置为 100。
**重要事项:**如果对 Direct Connect 允许的前缀进行了汇总且这些前缀较通过 VPN 发布的路由的具体程度低,则网络设备会首选通过 VPN 接收的路由。
请参阅以下示例场景:
- 中转网关传播的路由为 VPC-A CIDR 10.0.0.0/16、VPC-B CIDR 10.1.0.0/16 和 VPC-C 10.2.0.0/16。
- 为了满足 20 个前缀的配额,Direct Connect 网关允许的前缀的汇总前缀为 10.0.0.0/14。
对于通过 VPN 的每个虚拟私有云 (VPC),Direct Connect 会发布 Direct Connect 网关前缀 10.0.0.0/14,VPN 中转网关会发布 /16 CIDR。
要解决此问题,请将汇总的 Direct Connect 网关路由插入到中转网关路由表中。例如,添加指向 VPC 连接的静态路由 10.0.0.0/14,以便中转网关通过 VPN 发布汇总网络。您的网络设备从 Direct Connect 和 VPN 接收的前缀相同。然后配置网关,使其筛选掉接收到的特定前缀。确保 VPN 对等连接的路由表中仅安装汇总的前缀。根据供应商的规格,可以选择不同方式筛选路由,例如 route-maps、prefix-lists 和 router-filter-lists。
从您的网络到 AWS 的流量会到达中转网关路由表。网关会进行查询,从每个 VPC 连接中选出最具体的路由。
请参阅以下示例:
- 指向 VPC-A CIDR 的连接 A 为 10.0.0.0/16。
- 指向 VPC-B CIDR 的连接 B 为 10.1.0.0/16。
- 指向 VPC-C CIDR 的连接 C 为 10.2.0.0/16。
相关信息
路由优先级
如何使用 Transit Gateway 配置 Direct Connect 和 VPN 故障转移?