跳至内容

如何使用 Direct Connect 管理非对称路由?

2 分钟阅读
0

我想将 AWS Direct Connect 与公有、私有和中转虚拟接口结合使用,以便管理我的本地网络和 AWS 资源之间的非对称路由。

解决方法

以下解决方法阐释了如何管理从 AWS 流向本地网络的出站流量。对于从本地网络流向 AWS 的入站流量,您必须使用首选路由选项来设置特定路径的优先级。

要管理 Direct Connect 的非对称路由,请使用前缀长度和边界网关协议 (BGP) 属性来确定不同类型虚拟接口的路径选择。

**注意:**对于公有虚拟接口,AWS 使用 AS_PATH 和最长前缀匹配算法来确定路由路径。

使用特定前缀以优先选择 Direct Connect 而非互联网

如果您同时通过互联网和公有虚拟接口通告相同的前缀,请在公有虚拟接口上使用更具体的路由。流量会因此优先选择 Direct Connect。

例如,您同时在互联网和公有虚拟接口上通告前缀 80.80.80./24。为了使流量优先选择公有虚拟接口,请将您的虚拟接口前缀更改为更具体的前缀,例如 80.80.80.0/2580.80.80.128/25

路由具有相同 BGP 属性和前缀长度的主区域及远程区域的流量

在以下场景中,AWS 会优先选择主 AWS 区域路由出站流量:

您在主区域和远程区域的公有虚拟接口上通告相同前缀,且具有相同 BGP 属性和前缀长度。

要在区域之间进行路由,请在主区域和远程区域的公有虚拟接口上通告您的前缀。此配置允许流量优先选择与 VPC 位于同一区域的虚拟接口。

路由具有相同前缀长度的主区域及远程区域的流量

在以下场景中,AWS 会优先选择 AS_PATH 更短的链路:

您在主区域和远程区域的公有虚拟接口上通告相同前缀,且具有相同前缀长度。

要在多个区域之间路由流量,请同时在主区域和远程区域的虚拟接口上通告您的前缀。然后,在主区域的虚拟接口上通告 AS_PATH 更长的前缀。此配置允许来自主区域 VPC 的流量优先选择远程区域中的虚拟接口。

路由具有相同前缀长度的两个远程区域的流量

在以下场景中,AWS 会优先选择 AS_PATH 更短的链路:

您从两个远程区域的公有虚拟接口通告相同前缀,且具有相同前缀长度。

要在多个区域之间路由流量,请在远程区域的公有虚拟接口上通告您的前缀。然后,在其中一个远程公有虚拟接口上通告 AS_PATH 更长的前缀。此配置允许来自主区域 VPC 的流量优先选择未配置更长 AS_PATH 的远程虚拟接口。

使用公共 ASN 和私有 ASN 路由来自多个区域的流量

**注意:**预置适用于公共自治系统编号 (ASN),并且您预置的 ASN 对其他网络可见。如果您将预置与私有 ASN 结合使用,则 AWS 会将您的私有 ASN 替换为 7224 ASN。当您在公有虚拟接口上使用私有 ASN 时,ASN 预置无法决定 AWS 之外的路由决策。

在以下场景中,AWS 会优先选择 AS_PATH 更短的链路:

您从两个区域的公有虚拟接口通告相同前缀,且具有相同前缀长度。

要在使用公共和私有 ASN 时在多个区域之间路由流量,请在每个远程区域的虚拟接口上通告您的前缀。在一个远程区域中,使用更长的私有 ASN AS_PATH 通告您的前缀。在另一个远程区域,使用更短的公共 ASN AS_PATH 通告您的前缀。此配置允许来自主区域 VPC 的流量优先选择具有更长私有 ASN AS_PATH 的虚拟接口。

**注意:**Direct Connect 会将 ASN 替换为 Direct Connect 网关的公共 ASN 或区域的 ASN。在 AWS 网络中,Direct Connect 从私有 ASN AS_PATH 更长的虚拟接口中看到 "[your prefix], as_path [YOUR_PUBLIC_ASN]"。从公共 ASN AS_PATH 更短的虚拟接口中,则会看到 "[your prefix], as_path [YOUR_PUBLIC_ASN] 1111 1111"

来自同一区域的多个连接的负载共享

要修改多个 Direct Connect 连接之间的出站流量负载共享,请通告具有相同路径属性的前缀。

**注意:**您只能对同一区域内的虚拟接口进行负载共享。

要通过多个连接进行负载共享,请在位于 VPC 所在区域的所有公有虚拟接口上通告具有相同前缀长度的前缀。

使用本地优先级为私有和中转虚拟接口选择网络路径

使用 BGP 社区修改本地优先级。系统会首选优先级更高的本地首选项。

要设置本地优先级,请使用以下 BGP 社区标签之一:

  • 7224:7100(低优先级)
  • 7224:7200(中等优先级)
  • 7224:7300(高优先级)

以下示例场景演示了如何使用本地优先级为私有和中转虚拟接口选择网络路径。这些场景假设您已将中转虚拟接口连接到单个 Direct Connect 网关。

**注意:**最佳做法是在主动和被动连接的路由路径中,以及在通告相同的前缀长度时,使用 BGP 本地首选项属性。您必须为每个区域设置本地首选项值,以便优先选择具有相同关联区域的 Direct Connect 位置。将该值设置为 7224:7200(中等优先级)。如果您未将本地区域与 Direct Connect 位置相关联,请将本地首选项设置为较低的值。这仅在您未分配本地优先级社区标签时适用。

同一区域中的两个虚拟接口

当两个虚拟接口位于同一区域时,请将社区标签添加到您的主虚拟接口。不要将社区标签添加到辅助虚拟接口。然后,在两个虚拟接口上通告您的前缀。此配置允许来自同一区域 VPC 的流量优先选择带有社区标签的虚拟接口。

**注意:**BGP 本地优先级的默认值为 7224:7200(中等优先级)。

位于不同区域的虚拟接口

您有一个虚拟接口与 VPC 位于同一区域,另一个虚拟接口位于远程区域。不要将社区标签添加到主虚拟接口或远程虚拟接口。然后,在两个虚拟接口上通告您的前缀。此配置允许流量优先选择与 VPC 位于同一区域的虚拟接口。

**注意:**BGP 本地优先级的默认值为 7224:7200(中等优先级)。

虚拟接口位于与 VPC 不同的区域

两个虚拟接口都位于与 VPC 不同的区域。不要将社区标签添加到任一远程虚拟接口,然后在两个虚拟接口上通告您的前缀。此配置允许来自 VPC 的流量在两个远程虚拟接口之间进行负载平衡。

使用 AS_PATH 属性选择网络路径

如果本地首选项不可用,则使用 AS_PATH 属性选择网络路径。仅当您的前缀具有相同的本地优先级时,才必须使用不同的 AS_PATH 长度通告前缀以定向流量。最佳做法是使用更短的 AS_PATH。

以下示例场景演示了如何使用 AS_PATH 属性为私有和中转虚拟接口选择网络路径。

**注意:**以下场景假设您已将中转虚拟接口连接到单个 Direct Connect 网关。

同一区域中的两个虚拟接口

您在同一个区域中有两个虚拟接口。不要将社区标签添加到虚拟接口。在两个虚拟接口上通告您的前缀,然后对其中一个虚拟接口应用更长的 AS_PATH。此配置允许来自 VPC 的流量优先选择未配置更长 AS_PATH 的虚拟接口。

**注意:**BGP 本地优先级的默认值为 7224:7200(中等优先级)。

位于不同区域的虚拟接口

您有一个虚拟接口与 VPC 位于同一区域,另一个虚拟接口位于其他区域。不要将社区标签添加到主区域中的虚拟接口或远程虚拟接口。在两个虚拟接口上通告您的前缀,然后选择 AS_PATH 优先级的组合。此配置允许流量优先选择与 VPC 位于同一区域的虚拟接口。

**注意:**主区域的 BGP 本地优先级的默认值为 7224:7200(中等优先级)。您不能使用 AS_PATH 属性将优先级更改为 "Home region: 7224:7200 Medium preference"(“主区域:7224:7200 中等优先级”)。本地首选项会覆盖任何 AS_PATH 优先级。

虚拟接口位于与 VPC 不同的区域

两个虚拟接口都位于与 VPC 不同的区域。不要将社区标签添加到任何虚拟接口。在两个虚拟接口上使用相同的 AS_PATH 优先级通告您的前缀。然后,在其中一个虚拟接口上应用更长的 AS_PATH。此配置允许来自 VPC 的流量优先选择未配置更长 AS_PATH 的虚拟接口。

**注意:**远程区域的 BGP 本地优先级的默认值为 7224:7100(低优先级)。

遵循管理非对称路由的最佳实践

实施以下最佳实践:

  • 对于公有虚拟接口,尽可能在 Direct Connect 上使用更具体的路由,以便您的流量优先选择专用连接而非互联网。
  • 定期监控您的 BGP 路由和流量模式,确保您的路由配置正常运行。
  • 如果您使用多个虚拟接口实现冗余,请配置您的本地网络以处理潜在的非对称路由场景。
  • 在生产环境中实施路由配置之前,请先对其进行测试。

相关信息

Direct Connect 路由策略和 BGP 社区

AWS 官方已更新 5 个月前