如何解决在中转网关中创建 VPN 作为 Direct Connect 的备份时出现的非对称路由问题?

上次更新日期:2021 年 12 月 2 日

我有一个 AWS Direct Connect 连接。Direct Connect 网关与 AWS Transit Gateway 关联。我创建了站点到站点 VPN 作为 Direct Connect 连接的备份,但存在非对称路由问题。如何使用 AWS VPN 解决非对称路由问题并保持自动故障转移?

简短描述

使用 VPN 连接作为 Direct Connect 的备份可能会导致非对称路由问题。当网络流量通过一个连接进入并通过另一个连接退出时,就会出现非对称路由。如果收到的流量没有记录在有状态表中,则某些网络设备(如防火墙)会丢弃数据包。

解决方法

请遵循以下最佳实践来配置出站和入站网络流量。

从 AWS 到您的网络的出站流量的最佳实践

  • 使用边界网关协议 (BGP) 为 VPN 配置动态路由。
  • 确保您的设备使用 VPN 和 Direct Connect 或不太具体的 VPN 前缀从本地向 AWS 公布相同的前缀。例如,与 10.0.0.0/24 相比,10.0.0.0/16 的具体程度较低。
  • 如果收到的前缀长度相同,则在向您的网络发送本地流量时,AWS 会通过 VPN 连接为 Direct Connect 设置更高的首选项值。
  • 对于 AWS Transit Gateway,如果前缀长度相同,则指向 VPN 挂载的静态路由比动态传播的 Direct Connect 网关路由更为优先。
  • 对于使用动态 VPN 作为备份部署的 Direct Connect,不建议使用 AS PATH 预置。这是因为如果前缀相同,则无论 AS PATH 预置长度如何,都首选 Direct Connect 路由。

有关更多信息,请参阅路由表和 VPN 优先级

从您的网络到 AWS 的入站流量的最佳实践

  • 确保您的网络设备配置为首选通过 Direct Connect 连接发送回程流量。
  • 如果从 AWS 向您的网络设备发布的前缀对于 Direct Connect 和 VPN 是相同的,则可以使用 BGP 本地首选项属性强制您的设备通过 Direct Connect 连接向 AWS 发送出站流量。使用较高的本地首选项值和较低的 VPN 首选项设置 Direct Connect 路径。例如,Direct Connect 的本地首选项为 200,VPN 的本地首选项为 100。

重要提示:

如果总结了允许 Direct Connect 的前缀,并且通过 VPN 公布的路由更具体,则您的网络设备首选通过 VPN 接收的路由。

例如:

  • Transit Gateway 传播的路由包括 VPC-A CIDR 10.0.0.0/16、VPC-B CIDR 10.1.0.0/16 和 VPC-C 10.2.0.0/16。
  • Direct Connect 网关允许的前缀的汇总前缀为 10.0.0.0/14,以适应 20 个前缀的限制

Direct Connect 公布 Direct Connect 网关前缀 10.0.0.0/14,VPN Transit Gateway 通过 VPN 为每个 VPC 公布 /16 个 CIDR。

要解决此问题,请将汇总的 Direct Connect 网关路由插入 Transit Gateway 路由表。例如,添加一条指向 VPC 挂载的静态路由 10.0.0.0/14。这样可以确保 Transit Gateway 通过 VPN 公布汇总的网络。您的网络设备从 Direct Connect 和 VPN 收到相同的前缀。然后,将网关配置为筛选掉收到的特定前缀,以确保 VPN 对等连接的路由表中只安装了汇总的前缀。根据供应商的规格,有不同的选项可用于筛选掉路由。例如,route-maps、prefix-lists、router-filter-lists 等等。

从您的网络到 AWS 的流量会到达 Transit Gateway 路由表,然后网关会进行查找以从每个 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。