我有一个 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。
相关信息
AWS 站点到站点 VPN 路由
Amazon VPC 路由表优先级
如何使用 Transit Gateway 配置 Direct Connect 和 VPN 故障转移?