你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
中心辐射型拓扑是 Azure 中的常见网络体系结构模式,用于整合网络资源和集中网络服务。 此拓扑为跨不同订阅或租户部署的虚拟网络提供网络连接和安全性。
可以通过两种方式实现中心辐射型体系结构:
- 自托管中心辐射型(传统):可以保持对中心虚拟网络和路由配置的完全控制。
- 虚拟 WAN:Microsoft管理中心虚拟网络,并通过 路由意向和路由策略等功能简化管理。
本文重点介绍用户自主管理的中心辐射型拓扑结构,其中用户对中心虚拟网络和 Azure 防火墙的部署具有完全的可见性和控制权。
可以使用 Azure Virtual Network Manager (AVNM) 减少自托管中心辐射实现的管理开销。 AVNM 可以自动配置 Azure 路由表,但与手动方法相比,整体设计和技术不会改变。 无论是使用 AVNM 还是手动配置自托管中心辐射型拓扑,本文的内容都适用。
辐射虚拟网络中的 Azure 路由表的替代方法是使用 Azure 路由服务器将路由注入子网,如 辐射虚拟网络中的默认路由注入中所述。 但是,由于 Azure 路由服务器与 VPN 或 ExpressRoute 虚拟网络网关之间的交互的复杂性,这种模式并不常见。
在自行管理的主从结构设置中:
- Hub:一个虚拟网络,用作连接到您的本地网络的中央连接点,通过 VPN、ExpressRoute 或软件定义广域网(SD-WAN)。 网络安全设备(如防火墙)部署在中心虚拟网络中。
- 分支:与中心对等互连并托管工作负载的虚拟网络。
对于分布在多个区域的工作负荷,通常在每个区域部署一个集线器,以便聚合来自该区域辐条的流量。 下图显示了一个双区域自托管中心辐射型体系结构,每个区域中有两个分支虚拟网络:
单区域中心辐射型体系结构
若要了解多区域设计,首先需要了解单区域概念。 下图显示了第一个区域的路由表配置:
考虑单区域设计中每个潜在流量流的路由要求,了解用户定义的路由配置:
-
分支到分支的流量:分支之间不对等互连,虚拟网络对等互连没有传递性。 每个分支都默认知道如何路由到中心虚拟网络,但不知道如何路由到其他分支。 应用于所有分支子网的
0.0.0.0/0路由涵盖分支到分支流量。 -
分支到 Internet 的流量 :分支路由表中的
0.0.0.0/0路由还涵盖发送到公共 Internet 的流量。 默认情况下,此路由覆盖公共子网中包含的系统路由。 有关详细信息,请参阅 Azure 中的默认出站访问。 -
Internet 到分支流量:从 Internet 到分支的流量通常首先通过 Azure 防火墙。 Azure 防火墙配置了目标网络地址转换(DNAT)规则,它还会转换源 IP 地址(源网络地址转换或 SNAT)。 分支工作负载将流量视为来自 Azure 防火墙子网。 虚拟网络对等互连创建到中心 (
10.1.0.0/24) 的系统路由,因此分支知道如何路由返回流量。 -
本地到分支和分支到本地的流量:分别考虑每个方向:
-
本地到分支流量:流量从本地网络到达 VPN 或 ExpressRoute 网关。 在 Azure 中使用默认路由时,系统会在每个分支的 GatewaySubnet(以及中心虚拟网络中的其他子网)中创建系统路由。 必须重写这些系统路由,并将下一跃点设置为 Azure 防火墙的专用 IP 地址。 在此示例中,需要在与网关子网关联的路由表中设置两个路由,一个用于每个分支(
10.1.1.0/24和10.1.2.0/24)。 使用涵盖所有分支虚拟网络的摘要(例如10.1.0.0/16)不起作用,因为网关子网中的虚拟网络对等互连注入的系统路由更具体(/24与/16摘要相比)。 此路由表必须启用 “传播网关路由 ”切换(设置为 “是”),否则网关路由可能会变得不可预知。 -
分支到本地的流量:中心和分支之间的虚拟网络对等互连必须在中心端启用“允许网关传输” ,并在分支端启用“使用远程网关”。 这些设置是必需的,用来使 VPN 和 ExpressRoute 网关将分支前缀通过边界网关协议(BGP)向本地网络进行播发。 这些设置还会导致分支默认得知从本地播发到 Azure 的前缀。 由于本地前缀比辐射路由表中的用户定义路由
0.0.0.0/0更具体,因此从辐射到本地的流量默认会绕过防火墙。 为了防止这种情况,请在分支路由表中将“传播网关路由”切换为“否”,这样就不会得知本地前缀,并且0.0.0.0/0路由用于到本地的流量。
-
本地到分支流量:流量从本地网络到达 VPN 或 ExpressRoute 网关。 在 Azure 中使用默认路由时,系统会在每个分支的 GatewaySubnet(以及中心虚拟网络中的其他子网)中创建系统路由。 必须重写这些系统路由,并将下一跃点设置为 Azure 防火墙的专用 IP 地址。 在此示例中,需要在与网关子网关联的路由表中设置两个路由,一个用于每个分支(
注意
使用与网关子网关联的路由表中的确切分支虚拟网络 IP 前缀,而不是网络摘要。 虚拟网络对等互连与分支引入的系统路由会替代用户定义的路由,因为它们更具体。
可以使用 Azure Virtual Network Manager 管理与分支子网关联的路由表和与网关子网关联的路由表,以减少管理开销。 有关详细信息,请参阅 使用 Azure 防火墙作为下一跃点。
中心虚拟网络工作负荷
如果在中心虚拟网络(例如 Active Directory 域控制器、DNS 服务器或其他共享基础结构)中部署工作负载,这会增加中心辐射型设计的复杂性。 建议避免将工作负载放置在中心,而是将它们部署在共享服务的专用分支中。
本部分介绍中心工作负荷所需的配置,以便评估此复杂性是否符合要求。 我们还描述了一个常见的错误,可能导致非对称流量和数据包丢弃。
下图显示了一个单一区域设计,其中在中心虚拟网络中包含一个工作负载子网。
关键细节是,在网关子网和辐射子网中配置的用户定义路由是为特定工作负载子网定义的,而不是为整个中心虚拟网络前缀定义的。
-
网关子网配置:在网关子网中为整个中心虚拟网络
10.1.0.0/24(在本示例中)配置路由会替代中心虚拟网络的系统路由。 这会导致 VPN 或 ExpressRoute 网关之间的子网内控制流量被发送到防火墙,从而可能中断网关作业。 -
分支子网配置:在分支子网中配置整个中心虚拟网络(本例中为
10.1.0.0/24)的路由将替代通过与中心虚拟网络对等互连创建的系统路由。 发送到中心的所有流量都将发送到 Azure 防火墙,这包括源自 Azure 防火墙的流量,例如经过源网络地址转换(SNAT)的互联网到分支的流量。 此配置引入了非对称流量并导致数据包丢弃。
注意
如果在中心虚拟网络中部署工作负荷,请不要在用户定义的路由中使用整个虚拟网络 IP 前缀。
子网间流量检查
在当前设置中,分支之间的流量将被发送到防火墙,但分支内部的流量保持在分支虚拟网络内,并通过网络安全组进行控制。 此设计将虚拟网络视为安全边界:防火墙仅检查退出或进入虚拟网络的流量。
要检查同一分支虚拟网络中子网之间的流量,请修改与分支子网关联的路由表,如下图所示:
在上图中,每个分支虚拟网络中引入了两个分支子网,并描述了虚拟网络 A2 中分支的路由表。 将子网间流量发送到防火墙要求每个子网都有单独的路由表,因为每个子网中要安装的路由不同。
对于子网 A21,需要以下两个额外的路由:
-
路由到
10.1.2.0/24:替代虚拟网络内流量的系统路由。 如果没有其他路由,所有虚拟网络内部流量都会发送到 Azure 防火墙,即使是在同一子网中的虚拟机之间的流量。 -
路由到
10.1.2.0/26的下一跳 虚拟网络:这是对前一个路由的例外,所以此特定子网的流量不会发送到防火墙,而是本地路由在虚拟网络内。 此路由特定于每个子网,因此需要为每个子网创建单独的路由表。
SD-WAN 网络虚拟设备
如果使用 SD-WAN 网络虚拟设备(NVA)而不是 VPN 或 ExpressRoute 网关,则设计类似,如下图所示:
可以通过不同的方式在 Azure 中集成 SD-WAN NVA。 有关详细信息,请参阅 SD-WAN 与 Azure 中心辐射型网络拓扑的集成。 本文介绍使用 Azure 路由服务器的集成,这是将流量路由到 SD-WAN 网络的最常见方法之一。 SD-WAN NVA 通过 BGP 将本地前缀公告到 Azure Route Server。 Azure 路由服务器在 Azure 防火墙子网中注入这些前缀,以便 Azure 防火墙具有本地网络的路由信息。 分支不会得知本地前缀,因为分支路由表中禁用了“传播网关路由”选项。
如果不想在与 NVA 子网关联的路由表中配置每个分支虚拟网络的前缀,可以将 SD-WAN NVA 放置在其专用虚拟网络中。 NVA 虚拟网络不会得知分支前缀,因为它们没有直接对等互连,摘要路由如下图所示:
多区域中心辐射型体系结构
了解流量在单个中心辐射区域中的工作原理后,将设计扩展到多区域体系结构非常简单。 下图显示了一个更新的网络设计,其中包含两个区域中的中心(A 和 B):
配置的唯一补充是与每个区域中的 Azure 防火墙子网关联的路由表。 每个中心虚拟网络只知道直接对等互连虚拟网络的前缀,因此没有远程分支前缀的路由。 为每个 Azure 防火墙子网添加用户定义的路由,以便将每个区域的流量路由到相应的 Azure 防火墙。
在此示例中,可以轻松汇总每个区域:
- 区域 A 包含前缀
10.1.0.0/16 - 区域 B 包含前缀
10.2.0.0/16
在易于汇总的每个区域中定义 IP 地址会使路由配置更简单。 否则,需要为每个远程分支创建一个路由。
在 Azure 防火墙子网路由表上启用 传播网关路由 ,以便防火墙可以从 VPN 和 ExpressRoute 网关了解本地路由。
注意
如果 Azure 防火墙未部署管理网络接口 (NIC),则 Azure 防火墙子网需要一个默认路由,该路由的下一跃点为“Internet”,以便添加如前所述的更具体路由。
若要简化多区域环境中的用户定义的路由的管理,可以使用 Azure 虚拟网络管理器。 有关详细信息,请参阅使用 AVNM 跨多个中心辐射型拓扑管理用户定义的路由。
Next steps
- 了解如何部署和配置 Azure 防火墙。