在配置为使用静态路由的基于路由的 VPN 中,我想避免出现非对称路由。
简述
AWS Site-to-Site VPN 为每个 VPN 连接提供两个通向同一目的网络的端点。AWS 使用两个主动隧道中的任一个将流量路由到同一目的网络。
VPN 隧道通常托管在“有状态”防火墙上。防火墙设备假设数据包会使用同一个隧道接口来发送和接收流量。当数据包通过一个隧道进入 Amazon Virtual Private Cloud (Amazon VPC),然后通过同一个 Site-to-Site VPN 上的另一个隧道离开时,就会发生非对称路由。当数据包通过另一个隧道接口返回时,它与原来的“有状态”会话不匹配,因此会被丢弃。
解决方案
您无需创建具有动态路由的新 VPN 来解决非对称路由问题。相反,只要进行更改,反映动态路由逻辑,您就可以继续使用静态路由,修改方法如下所示。
先决条件
检查 Amazon CloudWatch 指标,确认有非对称路由:
查看每条隧道的指标
如果您只有一个使用主动/主动配置的 VPN 连接:
- 打开 CloudWatch 控制台。
- 在导航窗格中,选择指标。
- 在所有指标下,选择 VPN 指标命名空间。
- 选择 VPN 隧道指标。
- 选择 CloudWatch 指标 TunnelDataIn 和 TunnelDataOut。如果存在非对称路由,则一条隧道具有指标 TunnelDataIn 的数据点。第二个隧道有指标 TunnelDataOut 的数据点。
查看整个 VPN 连接的指标(聚合指标)
如果您有多个 VPN 连接:
- 打开 CloudWatch 控制台。
- 在导航窗格中,选择指标。
- 在所有指标下,选择 VPN 指标命名空间。
- 选择VPN 连接指标。
- 选择 CloudWatch 指标 TunnelDataIn 和 TunnelDataOut。如果存在非对称路由,则一个连接具有指标 TunnelDataIn 的数据点。另一个连接有指标 TunnelDataOut 的数据点。
有关隧道指标的更多信息,请参阅使用 CloudWatch 监控 VPN 隧道。
非对称路由场景
查看以下选项,以避免在这些场景中出现非对称路由:
配置为主动/主动的单个 VPN 连接
为避免出现非对称路由:
两个 VPN 连接(VPN-Pry 和 VPN-Sec)连接到同一 VPC
在这个场景中,两个 VPN 连接使用相同的虚拟专用网关连接到同一 Amazon VPC。
**请注意:**此场景仅适用于使用虚拟专用网关的 VPN 连接。
两个连接都具有以下特征:
- 使用静态路由
- 发布相同的本地前缀。例如,10.170.0.0/20 和 10.167.0.0/20
- 通过虚拟专用网关连接到同一 VPC
- 有不同的客户网关公共 IP
执行以下操作以避免非对称路由:
VPN-Pry(主连接)的静态路由:
10.170.0.0/21
10.170.8.0/21
10.167.0.0/21
10.167.8.0/21
VPN-Sec(辅连接)的静态路由:
10.170.0.0/20
10.167.0.0/20
在这些设置中,AWS 选择 VPN-Pry 作为首选连接,优先于 VPN-Sec。AWS 使用您的路由表中与流量匹配的最长前缀匹配来确定如何设置流量的路由。
**请注意:**如果在这种情况下您的客户网关没有非对称路由,则将每个 VPN 设置都配置为主动/被动。这样做会设定每个 VPN 连接中只有一条隧道处于主动状态。如果活动连接的两条隧道均已关闭,则流量会故障转移到辅连接的活动隧道。
有关 VPN 路由优先级的更多信息,请参阅路由表和 VPN 路由优先级。