双宿主网络体系结构允许辐射虚拟网络连接到多个中心虚拟网络,从而为网络基础结构提供冗余和改进的可用性。 当需要多个连接路径(无论是高可用性、负载分发还是不同类型的网络连接)时,此设计模式特别有用。
在传统的中心和分支体系结构中,各个分支虚拟网络连接到一个中心虚拟网络,该中心虚拟网络包含共享资源,例如 VPN 网关、ExpressRoute 网关和网络虚拟设备 (NVA)。 但是,在某些情况下,可能需要将分支连接到多个枢纽以便实现:
- 高可用性:在不同连接路径之间实现自动故障转移
- 负载分布:流量可以分布在多个路径之间
- 不同的连接类型:不同连接方法的单独中心(VPN、ExpressRoute、Internet)
- 跨区域连接:连接到不同 Azure 区域中的中心
Azure 路由服务器通过促进辐射虚拟网络和多个中心虚拟网络之间的动态路由来启用此双宿主体系结构。 本文介绍双宿主网络如何与 Azure 路由服务器 一起工作,并提供实现模式的指导。
双宿主网络概述
在具有 Azure 路由服务器 的双宿主网络拓扑中,一个辐射虚拟网络同时连接到两个或多个枢纽虚拟网络。 每个中心虚拟网络通常包含:
- 用于流量检查、安全性或路由的网络虚拟设备(NVA)
- 连接网关(VPN 网关、ExpressRoute 网关)
- 共享服务和资源
辐射虚拟网络包含一个 Azure 路由服务器,用于促进辐射虚拟网络与所有连接的中心虚拟网络之间的动态路由交换。 此设置允许轮辐型虚拟网络中的工作负载通过其连接的任何中心虚拟网络进行通信。
双宿主网络的优点
双宿主网络体系结构具有多种优势:
- 冗余和高可用性:如果某个中心出现故障,系统可以自动将流量切换到另一个中心
- 性能优化:可以在多个路径之间对流量进行负载均衡
- 灵活的连接选项:不同的中心可以提供不同类型的连接(VPN、ExpressRoute、Internet 中断)
- 简化管理:中心虚拟网络中的集中式路由策略和安全控制
配置要求
若要实现具有Azure 路由服务器的双宿主网络,需要以下组件:
先决条件
- 具有适当权限的Azure订阅
- 同一区域或不同区域中的多个中心虚拟网络
- 将采用双宿主的星型虚拟网络
- 在每个中心虚拟网络中部署的网络虚拟设备
体系结构组件
如下图所示,双宿主拓扑需要:
- Azure 路由服务器:部署在分支虚拟网络中以管理动态路由
- 网络虚拟设备(NVA):部署在每个中心虚拟网络中用于流量处理和路由
- 虚拟网络对等互连:在从属网络和每个中心虚拟网络之间配置
- BGP 对等互连:在路由服务器与每个 NVA 之间建立连接
在下图中,位于顶部的辐射虚拟网络包括 Azure 路由服务器 和工作负荷虚拟机。 两个枢纽虚拟网络(底部)各包含一个 NVA。 虚拟网络对等互连将分支连接到每个枢纽,并在路由服务器和每个 NVA 之间建立边界网关协议 (BGP) 会话。
配置步骤
设置双宿主网络:
- 在辐射虚拟网络中部署 Azure 路由服务器
- 在每个中心虚拟网络中部署网络虚拟设备
- 在分支网络和每个中心虚拟网络之间配置虚拟网络对等互连
- 在路由服务器与每个 NVA 之间建立 BGP 对等连接
双宿主网络的工作原理
双宿主网络在两个平面中运行:用于路由交换的控制平面,以及用于实际流量流量的数据平面。
控制平面操作
在控制平面中,Azure 路由服务器促进动态路由交换:
- 路由学习:每个中心虚拟网络中的 NVA 从路由服务器了解辐射虚拟网络地址
- 路由播发:路由服务器会从每个 NVA 处学习路由,并相应地进行播发
- 路由编程:路由服务器使用学习的路由对分支虚拟网络中的所有虚拟机进行编程
- 动态更新:随着拓扑更改的发生,路由更改会自动在整个网络中传播
数据平面操作
在数据平面中,流量流经已建立的路径:
- 流量路由:分支虚拟网络中的虚拟机根据编程路由将流量通过中心虚拟网络发送到 NVA
- 中心选择:可以根据路由策略、目标或可用性将流量定向到不同的中心
- 故障转移功能:当活动的中心发生故障时,流量会自动故障转移到可用的备用中心
高可用性模式
可以为不同的可用性模式配置双宿主网络:
- 主动/主动:两个中心同时处理流量,提供负载分布
- 主动/被动:一个中心充当主路径,而另一个中心则保持故障转移方案的备用状态
此设置可确保针对各种故障方案(包括 NVA 故障、连接问题或完整的中心虚拟网络中断)实现网络复原。
在双宿主网络中进行 ExpressRoute 集成
可以扩展双宿主网络体系结构以包括 ExpressRoute 连接,从而通过多个路径实现混合连接。 此配置对于需要冗余的本地连接或其他 ExpressRoute 线路的方案特别有用。
ExpressRoute 集成的其他要求
若要将 ExpressRoute 与双宿主网络集成,需要:
- Azure 路由服务器 在中心虚拟网络中:在每个包含 ExpressRoute 网关的中心虚拟网络中部署路由服务器
- ExpressRoute 网关:根据需要在中心虚拟网络中部署 ExpressRoute 网关
- BGP 对等互连:在 NVA 与中心虚拟网络中的路由服务器之间配置 BGP 对等互连
- 路由交换:在中心虚拟网络中的 ExpressRoute 网关和路由服务器之间启用路由交换
- 对等互连配置:在分支虚拟网络对等互连配置禁用“使用远程网关或远程路由服务器”
在下图中,顶端的辐射虚拟网络包含 Azure 路由服务器和工作负载虚拟机。 每个中心虚拟网络(底部)都包含一个 NVA、一个路由服务器和一个连接到本地网络的 ExpressRoute 网关。
ExpressRoute 集成的工作原理
集成跨控制平面和数据平面运行:
使用 ExpressRoute 的控制平面
- 路由学习:中心虚拟网络中的 NVA 通过与路由服务器交换路由来学习 ExpressRoute 网关的本地路由
- 路由公告:NVA 通过同一路由服务器向 ExpressRoute 网关发布卫星虚拟网络地址
- 路由分发:辐射状虚拟网络和中心虚拟网络中的路由服务器为各自虚拟网络中的虚拟机编程指定本地网络地址
具有 ExpressRoute 的数据平面
- 出站流量:分支虚拟网络中的虚拟机会将目标为本地网络的流量发送到中心虚拟网络中的 NVA
- 流量转发:NVA 通过 ExpressRoute 连接将流量转发到本地网络
- 入站流量:来自本地网络的流量遵循反向路径回到分支虚拟网络
重要
BGP 循环防护需要特殊配置。 BGP 通过检查 AS 路径中的 AS 编号来阻止循环。 当路由服务器在 AS 路径中收到包含其自己的 AS 编号的 BGP 数据包时,它会删除该数据包。 由于两个路由服务器使用相同的 AS 编号(65515),因此必须在与每个路由服务器对等互连时将 NVA 配置为应用 as-override BGP 策略。 这可以防止路由服务器相互删除路由。
ExpressRoute 集成的最佳做法
- 配置路由筛选器以控制在本地和 Azure 之间发布的路由
- 监视 BGP 会话以确保正确的路由交换
- 测试故障转移方案以验证高可用性
- 考虑路由首选项和指标来控制流量流模式
后续步骤
- 了解 Azure 路由服务器 对 ExpressRoute 和 Azure VPN 的支持
- 了解如何配置 Azure 路由服务器 与网络虚拟设备之间的对等连接
- 了解如何配置 Azure 路由服务器