使用 Azure Route Server 的多区域网络

新式应用程序通常需要跨多个 Azure 区域部署,以满足高可用性、灾难恢复和性能要求。 Azure 路由服务器支持复杂的多区域网络体系结构,这些体系结构提供动态路由功能,同时通过网络虚拟设备(NVA)保持集中式网络控制。

本文介绍如何使用 Azure 路由服务器设计和实现多区域拓扑,包括与 ExpressRoute 的集成以及避免路由循环的注意事项。

重要概念

使用 Azure 路由服务器的多区域网络涉及几个重要概念:

  • 动态路由传播:随着网络拓扑的发展,Azure 路由服务器通过边界网关协议(BGP)自动交换区域之间的路由信息,无需手动路由表管理。

  • 集中式网络控制:不同于区域之间直接的虚拟网络对等互联,路由服务器允许流量通过基于中心的 NVA 传输,从而维护跨区域的安全策略和网络可见性。

  • 自动适应:体系结构会自动适应拓扑更改,例如添加新辐射网络或修改连接,而无需手动干预。

体系结构概述

多区域体系结构在每个区域中使用中心辐射型拓扑,通过全局虚拟网络对等互连进行连接,并由 Azure 路由服务器实例协调:

显示每个中心虚拟网络中具有 Azure 路由服务器的多区域网络体系结构的关系图。

核心组件

多区域体系结构由多个关键组件组成,这些组件协同工作以提供动态路由功能。 每个区域都包含一个中心虚拟网络,用于托管 Azure 路由服务器和网络虚拟设备(NVA),用于管理路由决策。 应用程序工作负荷部署在每个区域的轮辐型虚拟网络中,保持网络基础设施和应用程序之间的分离。 使用全局虚拟网络对等互连,中心虚拟网络实现跨区域连接,以支持区域间通信。 网络设备使用安全隧道在区域之间通信,以维护路由信息同步。

流量流

流量流遵循结构化模式,可确保跨多区域拓扑高效路由。 路由服务器从其区域内的本地分支网络和 NVA 学习路由,以构建全面的路由表。 NVA 在区域之间建立安全隧道,以共享路由信息并启用跨区域连接。 每个路由服务器将学习的路由传播到本地分支网络,确保工作负载能够到达远程区域的目的地。 发生拓扑更改(例如添加新辐射网络或修改连接)时,体系结构会自动触发跨所有区域的路由更新,而无需手动干预。

配置要求

若要成功实现此体系结构,请配置以下组件:

虚拟网络对等互连设置

在将分支网络对等互连到中心网络时,启用 “使用远程虚拟网络的网关或路由服务器” 设置。 此配置允许:

  • 路由服务器将辐射网络中的子网前缀发布到 NVA
  • 要注入到分支网络路由表中的已学习路由
  • 跨整个拓扑的动态路由传播

NVA 隧道配置

使用封装技术在 NVA 之间建立安全通信:

  • IPsec 隧道:提供区域 NVA 之间的加密通信
  • VXLAN 网络覆盖:启用跨区域的第 2 层网络扩展

BGP AS 路径操控

配置 NVA 以修改 BGP AS 路径以防止路由循环:

重要

NVA 必须在公布从远程区域学会的路由时,从 AS 路径中删除自治系统号(ASN)65515。 此过程称为“AS 重写”或“AS-path 重写”,可防止 BGP 循环防护机制阻止路由学习。 如果没有此配置,路由服务器不会了解包含其自己的 ASN(65515)的路由。

常见的 AS 路径技术

AS路径前置 - 使路径看起来更长,以影响路由决策:

# Example for Cisco NVA
route-map PREPEND-AS permit 10
 set as-path prepend 65001 65001

AS 路径筛选 - 阻止具有特定 AS 路径的路由:

# Filter specific AS paths
ip as-path access-list 1 deny _65002_
route-map FILTER-AS permit 10
 match as-path 1

高可用性注意事项

对于可复原的多区域连接:

  • 多个 NVA:可以在每个区域中部署多个 NVA(路由服务器最多支持 8 个 BGP 对等方)
  • AS 路径扩展:使用 AS 路径扩展来建立主/备 NVA 关系
  • 冗余隧道:在区域之间配置多个隧道连接以实现故障转移

ExpressRoute 集成

多区域路由服务器体系结构可以与 ExpressRoute 线路集成,以将连接扩展到本地网络:

显示多区域体系结构与 Azure 路由服务器和 ExpressRoute 连接到本地网络的关系图。

ExpressRoute 集成的优点

  • 简化路由:本地前缀仅通过 NVA 广播在 Azure 中出现
  • 集中控制:所有流量都流经集线虚拟网络设备,以实现一致的策略实施。
  • 覆盖优化:ExpressRoute 线路支持 NVA 之间的覆盖网络

设计注意事项

  • 路由播发:将 NVA 配置为播发本地路由,而不是仅依赖于 ExpressRoute 网关
  • 带宽规划:确保 ExpressRoute 线路可以处理跨区域流量负载
  • 冗余:考虑多个 ExpressRoute 线路以实现高可用性

替代设计:无覆盖网络

虽然建议使用覆盖隧道,但可以使用用户定义的路由(UDR):在没有隧道的情况下实现多区域连接:

覆盖隧道为多区域体系结构中的路由循环提供基本保护。 如果没有覆盖隧道,当区域 1 的 NVA 从区域 2 学习前缀并将其播发到本地路由服务器时,可能会发生路由循环。 然后,路由服务器在所有区域 1 子网中配置这些路由,并将 NVA 设定为下一跃点。 当 NVA 尝试将流量发送到区域 2 时,其自己的子网路由会指向其自身,从而创建一个路由循环,防止成功跨区域通信。 覆盖隧道通过在底层网络(用于隧道建立)和覆盖网络(用于应用程序流量)之间创建逻辑分隔来解决此问题,确保流量可以在区域之间正确流动,而无需创建循环。

基于 UDR 的替代方法

如果环境中无法使用覆盖隧道,您可以采用用户定义路由(UDR)的替代方法。 此方法需要在 NVA 子网中禁用 BGP 路由传播,以防止导致冲突的自动路由学习。 然后,必须通过创建通过适当网络路径显式定向跨区域流量的 UDR 来配置静态路由。 虽然此方法可以正常工作,但你应接受手动维护这些静态路由的运营开销,因为随着时间的推移,网络拓扑会发生变化。

Trade-offs

方法 优点 缺点
覆盖隧道 动态路由,自动适应,安全性 更多配置复杂性
基于 UDR 更简单的初始设置 手动路由管理,可伸缩性有限

后续步骤

浏览以下资源,实现和优化多区域路由服务器体系结构: