使用 ExpressRoute 进行高可用性设计
ExpressRoute 旨在实现高可用性,以便与 Azure 资源建立运营商级专用网络连接。 换句话说,Azure 网络中的 ExpressRoute 路径不存在单一故障点。 为了最大限度地提高可用性,还应该规划好 ExpressRoute 线路的客户与服务提供商细分。 本文先探讨使用 ExpressRoute 构建可靠网络连接时的网络体系结构注意事项,然后探讨如何微调功能,以帮助改善 ExpressRoute 线路的高可用性。
注意
本文所述的概念同样适用于在虚拟 WAN 下或其外部创建 ExpressRoute 线路的情况。
体系结构注意事项
下图演示了使用 ExpressRoute 线路进行连接,以最大程度提高 ExpressRoute 线路可用性的建议方法。
为实现高可用性,在整个端到端网络中保持 ExpressRoute 线路的冗余至关重要。 换而言之,需要在本地网络中保持冗余,且不能破坏服务提供商网络中的冗余。 保持最低程度的冗余意味着可以避免网络中出现单一故障点。 为网络设备提供冗余的电源和散热装置可进一步改善高可用性。
第一英里物理层设计注意事项
如果在同一客户本地设备 (CPE) 上终止 ExpressRoute 线路的主要连接和辅助连接,将会降低你本地网络中的高可用性。 另外,如果使用同一个 CPE 端口配置主要连接和辅助连接,则也强制合作伙伴在其网络段上降低高性能。 终止不同子接口下的两个连接或合并合作伙伴网络中两个连接时,可以发生此事件。 下图演示了这种损害。
另一方面,如果在不同的地理位置终止 ExpressRoute 线路的主要连接和辅助连接,可能会降低连接的网络性能。 如果流量在不同地理位置终止的主要副本与辅助连接之间主动进行负载均衡,这两条路径之间可能存在的明显网络延迟差会导致网络性能不佳。
有关异地冗余设计注意事项,请参阅使用 ExpressRoute 进行灾难恢复设计。
主动-主动连接
Azure 网络配置为以主动-主动模式运行 ExpressRoute 线路的主要连接和辅助连接。 但是,通过路由播发,可以强制在主动-被动模式下运行 ExpressRoute 线路的冗余连接。 播发更具体的路由和 BGP AS 路径预置是优先使用某一条路径的常用方法。
为了改善高可用性,建议在主动-主动模式下运行 ExpressRoute 线路的主要连接和辅助连接。 如果让连接以主动-主动模式运行,Azure 网络会基于流对不同连接之间的流量进行负载均衡。
在主动-被动模式下运行 ExpressRoute 线路的主要连接和辅助连接会带来以下风险:连接失败,随后主动路径中发生故障。 切换时发生故障的常见原因是被动连接缺少主动管理,并且被动连接播发过时的路由。
或者,在主动-主动模式下运行 ExpressRoute 线路的主要连接和辅助连接会导致仅有大约一半的流量失败并重新路由。 因此,主动-主动连接明显有助于改善平均恢复时间 (MTTR)。
注意
在维护活动期间,或在出现影响某个连接的计划外事件的情况下,Azure 将倾向于使用 AS 路径预置,将流量排出到正常的连接。 从 Azure 配置路径预置时需要确保流量能够路由到正常的路径,并且正确配置了所需的路由播发以避免任何服务中断。
Microsoft 对等互连的 NAT
Microsoft 对等互连旨在实现公共终结点之间的通信。 因此,本地专用终结点在通过 Microsoft 对等互连通信之前,通常会使用客户或合作伙伴网络上的公共 IP 进行网络地址转换 (NAT)。 假设在主动-主动设置中使用主要连接和辅助连接。 NAT 在何处以及如何对一个 ExpressRoute 连接中故障后的快速恢复方法产生影响。 下图演示了两个不同的 NAT 选项:
选项 1:
拆分 ExpressRoute 线路主要连接与辅助连接之间的流量之后应用 NAT。 为了满足 NAT 的有状态要求,主要设备与辅助设备均使用独立的 NAT 池。 返回流量抵达传出流量的同一边缘设备。
如果 ExpressRoute 连接失败,则无法访问相应的 NAT 池。 因此,在相应的期限超时后,TCP 或应用层必须重建所有已中断的网络流。 在故障期间,Azure 无法使用相应的 NAT 访问本地服务器,直到 ExpressRoute 线路的主要或辅助连接恢复连接为止。
选项 2:
在拆分 ExpressRoute 线路主要连接与辅助连接之间的流量之前使用一个通用 NAT 池。 需要分清楚的一点是,在拆分流量之前使用通用 NAT 池并不意味着它会造成单一故障点,进而影响高可用性。
即使主要连接或辅助连接失败,也可以访问此 NAT 池。 因此在发生故障后网络层本身可以重新路由数据包并帮助更快恢复。
注意
- 如果使用 NAT 选项 1(对 ExpressRoute 主要连接和辅助连接使用独立的 NAT 池),并将 IP 地址的端口从一个 NAT 池映射到本地服务器,则在相应的连接失败时,无法通过 ExpressRoute 线路访问服务器。
- 在有状态设备上终止 ExpressRoute BGP 连接可能会导致 Azure 或 ExpressRoute 提供商进行的计划内或计划外维护期间出现故障转移问题。 应对设置进行测试,确保流量能够正确地进行故障转移,并且在可能的情况下终止无状态设备上的 BGP 会话。
微调专用对等互连的功能
本部分介绍可帮助改善 ExpressRoute 线路高可用性的可选功能(根据 Azure 部署以及 MTTR 重要性选择使用)。 具体而言,本部分将介绍区域感知的 ExpressRoute 虚拟网络网关部署和双向转发检测 (BFD)。
可用性区域感知的 ExpressRoute 虚拟网络网关
Azure 区域中的可用性区域是容错域和更新域的组合。 为了实现最高的复原能力和可用性,你应该配置区域冗余 ExpressRoute 虚拟网络网关。 若要了解详细信息,请参阅关于 Azure 可用性区域中的区域冗余虚拟网络网关。 若要配置区域冗余的虚拟网络网关,请参阅在 Azure 可用性区域中创建区域冗余的虚拟网络网关。
改善故障检测时间
ExpressRoute 支持通过专用对等互连执行的 BFD。 BFD 可以通过 Microsoft 企业边缘 (MSEE) 及其本地端的 BGP 邻居之间的第 2 层网络,将故障检测时间从大约 3 分钟(默认值)减少到 1 秒以下。 缩减故障检测时间有助于加速故障恢复。 有关更多信息,请参阅配置基于 ExpressRoute 的 BFD。
后续步骤
本文介绍了如何设计 ExpressRoute 线路连接的高可用性。 ExpressRoute 线路对等互连点将固定到一个地理位置,因此,影响整个位置的灾难性故障可能会影响该连接点。
有关与 Azure 主干网建立可承受灾难性故障(会影响整个区域)的异地冗余网络连接的设计注意事项,请参阅使用 ExpressRoute 专用对等互连进行灾难恢复设计。