我的 AWS Site-to-Site VPN 连接由两个虚拟专用网络(VPN)隧道组成。这些隧道存在于客户网关设备与虚拟专用网关或中转网关之间。从 AWS 向本地网络发送流量时,如何确保优先使用隧道 A 而不是隧道 B?
解决方法
在客户网关与虚拟专用网关或中转网关之间创建的静态 VPN
在这种情况下,虚拟专用网关或中转网关通过单个 VPN 隧道将流量从 AWS 发送到本地网络。此该隧道由 AWS 随机选择,被称为首选隧道。
如果 AWS VPN 连接(静态路由类型)具有主动/主动配置(两个隧道均处于“运行”状态),则无法将 AWS 配置为首选特定隧道来发送流量。例如,AWS 随机选择隧道 A 作为将流量从 AWS 发送到本地网络的首选 VPN 隧道。如果隧道 A 出现故障,则来自 AWS 的流量会自动故障转移到隧道 B。
**注意:**使用主动/主动配置时,客户网关必须在虚拟隧道接口上激活非对称路由。
如果 AWS VPN 连接(静态路由类型)具有主动/被动配置(隧道 A 处于“运行”状态,但隧道 B 处于“关闭”状态),则从 AWS 传输到本地网络的流量会遍历隧道 A,因为它处于“运行”状态。
在客户网关与虚拟专用网关或中转网关之间创建的动态 VPN
对于停用了 ECMP 的虚拟专用网关或中转网关配置
当 AWS VPN 连接出现以下情况时,从 AWS 传输到本地网络的流量通过首选隧道(由 AWS 随机选择)发送:
- 具有主动/主动配置(两个隧道均处于“运行”状态);
- 正在向具有相同边界网关协议(BGP)属性的虚拟专用网关或中转网关发布相同的前缀。
**注意:**使用主动/主动配置时,客户网关必须在虚拟隧道接口上激活非对称路由。
如果 AWS VPN 连接(动态路由类型)具有主动/被动配置(隧道 A 处于“运行”状态,但隧道 B 处于“关闭”状态),则从 AWS 传输到本地网络的流量会遍历隧道 A,因为它处于“运行”状态。
对于激活了 ECMP 的中转网关配置
中转网关在 VPN 隧道之间对从 AWS 传输到本地网络的流量进行负载平衡:
- 如果通过隧道从客户网关设备发布相同的前缀;
- 从客户网关设备发布的前缀的 BGP 属性在 VPN 隧道上必须相同。这些 BGP 属性包括 AS-Path 前置、AS_SEQUENCE 中的第一个 AS 以及 MED。
对于动态 AWS VPN 连接
利用优先顺序标准,将客户网关设备设置为优先使用一个 VPN 隧道而不是另一个 VPN 隧道:
- 向客户希望从 AWS 接收流量的隧道上的虚拟专用网关或中转网关发布更具体的前缀。
- 为了匹配每个 VPN 连接使用 BGP 的前缀,将比较 AS PATH,并优先使用具有最短 AS PATH 的前缀。
- 如果 AS PATH 的长度相同,并且 AS_SEQUENCE 中的第一个 AS 在多条路径上相同,则比较多出口鉴别器(MED)。MED 值最低的路径是首选路径。
**注意:**最好避免使用 AS Path 前置,以使两个隧道的 AS PATH 值相等。如果 AS PATH 值相等,则 VPN 隧道端点更新期间 AWS 在隧道上设置的 MED 值将决定隧道优先级。
虚拟专用网关上的 Site-to-Site VPN 连接不支持 ECMP。
中转网关上的 Site-to-Site VPN 连接支持 ECMP。