你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

有关 Azure 虚拟网络的 Azure 架构良好的框架透视图

Azure 虚拟网络是用于在 Azure 上建立专用网络的基本构建基块。 可以使用它启用 Azure 资源之间的通信并提供 Internet 连接。 虚拟网络还与本地系统集成。 它包括内置筛选功能,以确保仅预期、允许和安全流量到达网络边界内的组件。

本文假设作为架构师,你熟悉 Azure 上的网络构造。 本指南侧重于映射到 Well-Architected 框架支柱原则的体系结构建议。

重要

如何使用本指南

每个部分都有一个 设计清单,该清单提供关注的体系结构区域以及本地化为技术范围的设计策略。

此外,还包括有助于具体化这些策略的技术功能的建议。 这些建议并不表示可用于虚拟网络及其依赖项的所有配置的详尽列表。 然而,它们列出了映射到设计视角的关键建议。 使用建议生成概念证明或优化现有环境。

展示关键建议的基础架构:Azure 中的中心辐射型网络拓扑

技术范围

本次审查着重于以下 Azure 资源的相互关联的决策:

  • 虚拟网络及其子网
  • 网络接口卡(NIC)
  • 专用终结点
  • 网络安全组(NSG)
  • IP 地址和 IP 地址分配
  • 路由表
  • 网络管理器

显示 Azure 中简单网络布局的 关系图。

还有其他与虚拟网络关联的服务,例如负载均衡器。 这些服务在各自的指南中涵盖。

可靠性

可靠性支柱的目的是通过 建立足够的复原能力和从故障快速恢复来提供持续的功能。

可靠性设计原则 为各个组件、系统流和整个系统提供高级设计策略。

设计清单

根据可靠性设计评审核对清单开始实施您的设计策略。 在记住虚拟网络及其依赖项的功能的同时,确定其与业务需求的相关性。 扩展策略以根据需要包含更多方法。

  • 设置可靠性目标。 虚拟网络及其大多数子服务没有Microsoft支持的服务级别协议(SLA)保证。 但是,负载均衡器、NIC 和公共 IP 地址等特定服务确实具有 SLA。 您应该很好地了解 Azure 提供的已发布百分位数的覆盖范围。 请记住,中心 IT 服务组织通常拥有虚拟网络和中心服务。 确保目标计算包含此依赖项。

  • 减少故障风险点。 执行故障模式分析,并确定网络连接中的单一故障点。

    以下示例显示了网络连接中的单一故障点:

    失败 缓解
    单个可用性区域中的公共 IP 地址失败。 跨区域部署 IP 地址资源,或使用负载均衡器的辅助 IP 地址。
    单个区域中的网络虚拟设备(NVA)故障。 在另一个区域中部署辅助 NVA,并使用负载均衡器将流量定向到 NVA。
    跨区域或区域分布的工作负荷中的延迟,这会降低吞吐量并导致超时。 在一个区域或地区集中部署资源。 重新设计体系结构以使用可靠性模式(如负载均衡器的部署标记),以便每个标记可以处理负载,并与附近的资源协同工作。
    冷故障转移站点的单区域工作负荷故障。 在故障转移区域中预配置网络设置。 此方法可确保没有 IP 地址重叠。
    使用冷故障转移站点通过 Azure 专用链接与数据库通信的虚拟网络中的单区域应用程序故障。 复制次要区域和对等虚拟网络中的连接以便进行通信。
  • 过度分配 IP 地址空间。 为了帮助确保可靠的缩放,一种常见策略是过度预配容量,以防止 IP 地址耗尽。 然而,这种方法需要在可靠性和运行效率之间进行权衡。 子网应仅使用虚拟网络地址空间的一部分。 目标是在虚拟网络和子网中只有足够的额外地址空间,以平衡可靠性与运营效率。

  • 请注意网络限制。 Azure 对可以部署的资源数施加限制。 虽然大多数 Azure 网络限制都设置为其最大值,但可以增加一些限制。 有关详细信息,请参阅 Azure 资源管理器网络限制

  • 创建侧重于用户流的网络关系图。 这些关系图可帮助你可视化网络分段、识别潜在故障点,以及查明 Internet 入口点和出口点等关键转换。 它们也是审核和事件响应的重要工具。

    突出显示用户和工作负荷资源之间的高优先级流量流。 例如,如果将 Azure ExpressRoute 优先用于企业网络流或在外围网络设计中保护用户请求,则可以深入了解防火墙和其他服务的容量规划。

  • 添加冗余。 如果需要,请考虑跨多个区域部署 NAT 网关和虚拟网络。 确保公共 IP 地址以及其他识别可用区的服务已启用区域冗余,并使共享资源(如防火墙)具备区域冗余。

    有关详细信息,请参阅 虚拟网络业务连续性

  • 避免复杂性。 请密切关注虚拟网络、子网、IP 地址、路由、应用程序安全组(ASG)和标记。 简单配置可降低配置错误和错误的可能性。 配置错误和错误会导致可靠性问题,并增加作和维护成本。 简化的一些示例包括:

    • 尽可能使用专用 DNS,并将 DNS 区域数降到最低。
    • 简化路由配置。 如果防火墙在体系结构中使用,请考虑通过防火墙路由所有流量。
  • 测试网络的复原能力。 使用 Azure Chaos Studio 模拟网络连接中断。 此方法可确保工作负荷保持冗余,并帮助评估潜在故障的影响。

  • 监控网络流量对可靠性的影响。 交通流量监控是可靠性的关键操作。 例如,你希望识别网络中大容量的通信器,以确定它们是否可能导致中断。 Azure 提供流日志记录功能。 有关详细信息,请参阅 卓越运营

建议

建议 益处
根据缩放策略调整虚拟网络和子网的大小。 选择更少、更大的虚拟网络来适应冗余,作为故障缓解策略。

确保与需要与之通信的其他虚拟网络没有重叠的地址空间,并提前规划地址空间。

有关详细信息,请参阅 创建、更改或删除虚拟网络
通过超额配置,可以确保网络高效扩展,而不会遇到地址空间限制。

提前规划地址空间,以帮助防止冲突并确保一个流畅且可缩放的网络体系结构。
使用 标准 IP SKU,通过可用性区域获得更好的可靠性支持。 默认情况下,公共 IP 地址部署在多个区域,除非限制为一个区域。 此 SKU 有助于确保公共 IP 地址内的通信在区域性故障期间保持正常运行。

安全

安全支柱的目的是为工作负荷提供 保密性、完整性和可用性 保证。

安全设计原则 通过应用虚拟网络技术设计方法来实现这些目标提供了高级设计策略。

设计清单

根据面向安全性的设计评审清单启动设计策略,并确定漏洞和控制措施来改进安全态势。 扩展策略以根据需要包含更多方法。

  • 建立安全基线。 查看虚拟网络 安全基线,并在基线中包含适用的度量值。

  • 使网络外围保持最新。 必须定期更新安全设置,例如 NSG、ASG 和 IP 地址范围。 过时的规则可能与当前的网络体系结构或流量模式不一致。 这种安全差距可以通过降低对入口和出口流量的限制,使网络暴露在潜在的攻击中。

  • 使用分段增强安全性。 在子网级别将 NSG 用作 L4 防火墙。 使用用户定义的路由监视和管理,通过网络虚拟设备(例如防火墙)路由所有外部流量。 使用完全限定的域名(FQDN)筛选 Internet 访问。

    在阻止出站连接时,确保平台即服务与专用终结点的连接安全。

  • 应用最小特权原则。 为与网络相关的角色配置基于角色的访问控制(RBAC),并采用无访问权限思维模式。 确保用户只能根据作业函数的要求修改设置。

  • 限制公共 IP 地址。 使用 Azure Front Door 等服务的共享公共 IP 地址进行更好的安全性和初始请求检查。 管理专用公共 IP 地址需要你监督其安全性,包括端口管理和请求验证。 如果可能,请使用专用连接。

建议

建议 好处
使用虚拟网络加密 通过强制实施加密流量,可以保护同一虚拟网络中的 Azure 虚拟机和 Azure 虚拟机规模集之间的传输数据。 它还对区域虚拟网络与全球对等互连虚拟网络之间的流量进行加密。
在 Azure 虚拟网络管理器中启用虚拟网络验证程序

在预生产环境中使用此功能测试资源之间的连接。 不建议在生产环境中使用此功能。
确保网络中的 Azure 资源可访问,且不受策略阻止。
为虚拟网络启用 Azure DDoS 防护。 或者,可以通过 Azure DDoS IP 保护来保护单个公共 IP 地址。

查看 DDoS IP 防护和 DDoS 网络保护中提供的安全功能,然后选择一项符合你的要求。 例如,DDoS 网络保护层在发生攻击时提供快速响应团队的支持。 DDoS IP 保护层不提供此支持。
你可以防范分布式拒绝服务攻击。
使用 NSG 保护虚拟网络中的网段。

如果可能,请使用 ASG 定义规则。
可以根据 IP 地址和端口范围筛选进入和离开网络的流量。
ASG 通过抽象基础 IP 地址范围来简化管理。
使用 专用终结点 通过虚拟网络中的专用 IP 地址访问 Azure 服务。

实现专用网络的另一种方法是通过 服务终结点。 这些终结点通过 Azure 网络主干将流量路由到服务。 如果该服务支持,请优先选择专用终结点而不是服务终结点。
专用终结点无需公共 IP 地址,从而减少攻击面。

成本优化

成本优化侧重于 检测支出模式、优先考虑关键领域的投资,以及优化其他 以满足组织预算,同时满足业务需求。

成本优化设计原则 提供了实现这些目标的高级设计策略,并在与您的网络环境相关的技术设计中进行必要的权衡。

设计清单

根据投资的成本优化设计评审核对清单开始实施您的设计策略。 微调设计,使工作负荷与为工作负荷分配的预算保持一致。 设计应使用正确的 Azure 功能,监视投资,并查找随时间推移进行优化的机会。

  • 优化终结点之间的大容量数据传输。 使用虚拟网络对等互连在虚拟网络之间高效移动数据。 即使对等互连具有入站和出站成本,此方法也可以经济高效,因为它减少了带宽消耗和网络性能问题。 避免通过中心进行路由,以最大程度地减少效率低下和成本。

    若要优化区域之间的数据传输,请务必考虑频率和传输方法。 例如,处理备份时,保存备份的位置可能会显著影响成本。 在不同的区域中存储备份数据会产生带宽。 若要降低这些成本,请确保在跨区域传输数据之前压缩数据。 可以通过调整数据传输的频率来进一步优化成本和效率。

  • 在成本模型中包括网络组件。 在创建或调整预算时考虑隐藏成本。 例如,在多区域体系结构中,在区域之间传输数据会花费额外的成本。

    Azure 成本报告可能不包括与具有单独许可成本的非Microsoft NVA 相关的费用。 对于固定价格和基于消耗的选项,它们可能也有不同的计费模型。 请确保在预算注意事项中包含这些因素。

    某些网络资源可能很昂贵,例如 Azure 防火墙和 ExpressRoute。 可以在集中式中心模型中预配这些资源,并为团队分配费用,以支付产生的成本。 在成本模型中包括该费用。

  • 不为未使用的功能付费。 定期查看组件成本,并删除旧功能或默认配置。 限制公共 IP 地址数以节省成本。 此方法还通过减少攻击面来增强安全性。

  • 优化专用终结点。 确定你能否从其他虚拟网络重复使用指向资源的专用链接。 在区域虚拟网络对等互连中使用专用终结点时,无需为传入和传出专用终结点的流量支付对等互连费用。 只需支付专用链接访问本身的费用,而不是为虚拟网络之间的流量付费。 有关详细信息,请参阅中心辐射型网络中的专用链接

  • 将网络流量检查功能与流的优先级和安全要求保持一致。 对于较大的带宽要求,请考虑将流量路由到低成本路径。 ExpressRoute 适用于大型流量,但成本可能很高。 考虑使用公共终结点等替代方法节省成本。 但是,这对安全性来说是一种妥协。 使用网络对等互连实现网络之间的流量,绕过防火墙以避免不必要的检查。

    仅允许组件之间的必要流量,并阻止意外流量。 如果流量符合预期且流符合安全要求,则可以省略这些检查点。 例如,如果远程资源位于信任边界内,则评估是否需要通过防火墙路由流量。

    评估子网数及其关联的 NSG,即使在虚拟网络中也是如此。 拥有的 NSG 越多,管理规则集的运营成本就越高。 尽可能使用 ASG 简化管理和降低成本。

  • 优化代码成本。 开发应用程序时,请选择更高效的协议并应用数据压缩来优化性能。 例如,可以通过配置组件来压缩数据来提高 Web 应用中的效率。 这些优化还会影响性能。

  • 利用集中式虚拟网络中的资源。 使用集中式资源减少重复和开销。 此外,将职责卸载给现有团队可以进一步帮助优化成本,并允许委派特定职能的专业知识。

建议

建议 好处
使用虚拟网络对等互连绕过控制使网络流更高效。

避免过度窥视。
直接在对等虚拟网络之间传输数据以绕过防火墙,从而减少带宽消耗和网络性能问题。

避免将所有资源放在单个虚拟网络中。 你可能会产生对等互连成本,但仅为了节省成本而将所有资源放入单个虚拟网络并不可行。 它可能会阻碍增长。 虚拟网络最终可能达到新资源不再适合的程度。
如果不需要公共 IP 地址资源, 最小化公共 IP 地址资源。

在删除之前,请确保 IP 地址未链接到任何 IP 地址配置或虚拟机网络接口。
由于资源费用和运营开销,不必要的公共 IP 可能会增加成本。

卓越运营

卓越运营主要侧重于开发实践、可观测性和发布管理等过程。

卓越运营设计原则 提供了一个高级设计策略,用于实现这些目标以满足工作负荷的作要求。

设计清单

根据卓越运营设计评审清单来开始实施设计策略,以定义与网络环境相关的可观测性、测试和部署。

  • 了解新的 Azure 网络构造。 加入 Azure 时,网络团队通常会假设其现有知识已足够。 但是,Azure 具有许多不同的方面。 确保团队了解基本的 Azure 网络概念、DNS 复杂性、路由和安全功能。 构建网络服务的分类,使团队可以共享知识并具有共同的理解。

  • 规范你的网络设计并力求简化。 记录设计和任何更改,包括配置详细信息,如路由表、NSG 和防火墙规则。 包括现有的治理政策,例如阻止端口。 清晰的文档使与其他团队和利益干系人协作有效。

    简化的网络更易于监视、故障排除和维护。 例如,如果你有中心辐射型拓扑,请尽量减少轮辐之间的直接对等连接,以减少操作负担并增强安全性。 始终记录设计,并为每个设计决策提供理由。

    使用别名而不是直接 IP 地址范围来降低复杂性。 此方法可降低操作负担。

  • 使用能够优化网络流量的设计模式。 若要优化网络使用和配置,请实现最小化或优化网络流量的已知设计模式。 使用安全扫描程序在生成期间验证网络配置,以确保一切设置正确。

  • 执行一致的网络部署。 对所有组件(包括网络对等互连和专用终结点)使用基础结构即代码 (IaC)。 了解核心网络组件的变化频率可能比其他组件低。 为堆栈实现分层部署方法,以便可以独立部署每个层。 避免将 IaC 与脚本组合,以防止复杂性。

  • 监视网络堆栈。 持续监控流量模式,识别异常和问题(例如连接中断),以免它们导致级联故障。 如果可能,请设置警报以获取有关这些中断的通知。

    与此体系结构中的其他组件类似,从各种网络组件(例如虚拟网络、子网、NSG、防火墙和负载均衡器)捕获所有相关指标和日志。 在仪表板中聚合、可视化和分析它们。 为重要事件创建警报。

  • 在故障缓解策略中包括网络。 虚拟网络和子网在最初部署时,通常保持不变,这使得回滚变得困难。 但是,可以遵循以下几个策略来优化恢复:

  • 提前复制网络基础结构,尤其是对于混合设置。 确保不同区域中的单独路由已准备好事先相互通信。 跨主站点和灾难恢复(DR)站点复制和维护一致的 NSG 和 Azure 防火墙规则。 此过程可能很耗时,需要审批,但提前执行此作有助于防止问题和故障。 请确保在 DR 站点中测试网络堆栈。

  • 避免生产网络与 DR 网络之间的 IP 地址范围重叠。 通过维护不同的 IP 地址范围,可以简化网络管理并在故障转移事件期间加快转换速度。

    考虑成本和可靠性之间的权衡。 有关更多信息,请参阅权衡因素

  • 将网络操作转移到中心团队。 尽可能集中管理网络基础结构。 例如,在中心辐射型拓扑中,Azure 防火墙和 ExpressRoute 等服务将用于共享的 DNS 放置在中心网络中。 应集中管理该网络堆栈,从而减轻工作负荷团队的负担。

    将虚拟网络的管理委托给中心团队,即使在分支网络中也是如此。 最大程度地减少与工作负荷相关的网络操作,例如 NSG 的管理。

    让中心团队了解工作负荷中可能会影响共享资源配置的任何必要更改。 别名对基础 IP 地址进行抽象化,从而简化了操作。

  • 对虚拟网络和子网进行权限化。 选择更少、更大的虚拟网络以减少管理开销,避免子网过大。 子网及其 NSG 的管理可以增加运营负担。 对于具有有限专用 IP 地址(RFC 1918)可用性的环境,请考虑使用 IPv6。

建议 好处
部署 虚拟网络管理器 虚拟网络管理器不单独配置每个虚拟网络,而是集中管理基于规则的连接。 此方法简化了网络操作。
使用网络监视工具。

定期使用 虚拟网络流日志流量分析 来确定需求和模式的变化。
使用 连接监视器功能 来分析和识别诸如连接中断等问题,在其影响应用程序之前。
你能够了解数据如何流经网络、识别瓶颈,以及识别异常或未经授权的访问尝试。
定义路由时,请使用 服务标记 而不是特定的 IP 地址。

同样地,在为 NSG 定义流量规则时使用 ASG。
此方法可确保可靠性,因为 IP 地址可以更改,但配置不需要。 此外,它还有助于克服可以使用更多泛型名称设置的路由或规则数的限制。

性能效率

性能效率就是通过管理容量来保持用户体验,即使负载增加也不例外。 该策略包括缩放资源、识别和优化潜在瓶颈,以及优化峰值性能。

性能效率设计原则 提供了一个高级设计策略,用于根据预期使用量实现这些容量目标。

设计清单

根据性能效率设计评审清单开始设计策略,根据关键性能指标定义基线。

  • 定义性能目标。 若要定义性能目标,请依赖于监视指标,特别是延迟和带宽。 使用连接监视器数据(例如延迟和跃点数)为可接受的性能设置目标和阈值。 Application Insights 提供了工作负荷请求在网络中花费的时间的详细视图,这有助于优化这些目标。

  • 对子网进行权限化。 分配子网时,平衡大小和可伸缩性非常重要。 希望子网足够大,以适应预计的增长,而不会造成运营负担。

    为了有效地管理容量,一种常见的策略是由于不确定性而过度预配容量,但目标应该是随着时间的推移进行优化。 持续分析数据,使网络能够处理负载,但不会为未使用的资源支付额外的费用。

  • 执行性能测试。 结合使用合成数据和生产数据来测试延迟和带宽。 此方法有助于评估这些因素如何影响工作负荷性能。 例如,它可以检测导致干扰邻居问题的资源,并消耗比预期更多的带宽。 此外,它还标识导致高延迟的多次跳跃流量。

    建议在生产环境中进行测试或捕获并重播生产数据作为测试数据。 此方法可确保测试反映实际使用情况,这有助于设置实际的性能目标。

  • 监视跨区域的流量。 请务必考虑工作负荷资源可能位于不同的区域。 跨区域的通信可能会显著增加延迟。 同一区域中可用区之间的流量延迟较低,但对于某些专用工作负载,速度可能不够快。

建议

建议 好处
启用 Azure Network Watcher 的连接监视器

在测试期间使用连接监视器,这可能会生成综合流量。
可以收集指示跨网络丢失和延迟的指标。 此外,还可以跟踪整个流量路径,这对于检测网络瓶颈非常重要。
使虚拟网络地址空间足够大,以支持缩放。 你可以适应预计的增长,而无需承担运营负担。

权衡

如果使用支柱清单中的方法,可能需要进行设计权衡。 以下示例突出了优点和缺点。

冗余网络堆栈

当你选择实现冗余网络堆栈(包括其 NSG、路由和其他配置)时,基础结构和彻底测试增加了成本。

这种前期投资提高了可靠性。 可以确保一切按预期工作,并在中断期间加快恢复速度。

虚拟网络对等互连

直接虚拟网络对等连接通过降低延迟来提升性能,因为它避免了将流量路由至需要防火墙对有效负载进行解密、检查和重新加密的集中式枢纽。

这种性能提升是以降低安全性为代价的。 如果没有中心路由提供的防火墙检查,工作负荷更容易受到潜在威胁的影响。

大型子网

大型子网提供充足的地址空间,使工作负载能够无缝扩展。 大型地址空间可以防范意外的需求高峰。 但是,这可能会导致 IP 地址的使用效率低下。 随着时间的推移,随着工作负荷的发展,这种效率低下可能会导致 IP 地址耗尽。 此外,此策略还附带更高的运营成本。 从卓越运营的角度来看,尽量缩小子网是理想的做法。

Azure 策略

Azure 提供了一组与虚拟网络及其依赖项相关的大量内置策略。 定义和分配策略,以帮助确保资源符合组织标准。 创建 Azure Policy 合规性仪表板 以识别不符合的资源并采取纠正措施。

一组 Azure 策略可以审核上述一些建议。 例如,您可以设置自动执行的策略:

  • 保护虚拟网络免受卷和协议攻击。
  • 拒绝创建具有公共 IP 地址的网络接口。
  • 为虚拟网络部署网络观察程序。
  • 启用流量分析和流日志来监视流量模式。

若要进行全面的治理,请查看 Azure Policy 内置定义 和其他可能影响网络层安全性的策略。

Azure 顾问建议

Azure 顾问 是一名个性化的云顾问,可帮助你遵循最佳做法来优化 Azure 部署。 下面是一些建议,可帮助你提高虚拟网络的可靠性、安全性、成本效益、性能和卓越运营能力。

后续步骤

以下文章演示了本文中讨论的建议。