Azure 防火墙中的可靠性

Azure 防火墙是一种托管的基于云的网络安全服务,可保护 Azure 虚拟网络资源。 它是一个完全有状态的防火墙服务,包括内置的高可用性和不受限制的云可伸缩性。

本文介绍 Azure 防火墙中的可靠性支持,包括通过 可用性区域多区域部署实现区域内部复原能力。

可靠性是你和Microsoft之间的共同责任。 可以使用本指南确定哪些可靠性选项满足特定业务目标和运行时间目标。

生产部署建议

若要了解如何部署 Azure 防火墙以支持解决方案的可靠性要求,以及可靠性如何影响体系结构的其他方面,请参阅 Azure Well-Architected Framework 中 Azure 防火墙的体系结构最佳做法

可靠性体系结构概述

实例是指防火墙的虚拟机(VM)级别单元。 每个实例表示处理流量和执行防火墙检查的基础结构。

若要实现防火墙的高可用性,Azure 防火墙会自动提供至少两个实例,而无需干预或配置。 当平均吞吐量、CPU 消耗量和连接使用率达到预定义阈值时,防火墙会自动横向扩展。 有关详细信息,请参阅 Azure 防火墙性能。 平台会自动管理实例创建、运行状况监视和替换不正常的实例。

为了防止服务器和服务器机架故障,Azure 防火墙会自动在区域中的多个容错域中分发实例。

若要在数据中心故障期间增加冗余和可用性,可以启用区域冗余,以便跨多个可用性区域分配实例。

注释

如果在 Azure 门户中创建防火墙,则会自动启用区域冗余。

暂时性故障

暂时性故障是指组件发生短暂的间歇性故障。 这些故障经常出现在云之类的分布式环境中,在运营过程中比较常见。 暂时性故障在短时间内自行纠正。 应用程序通常可以通过重试受影响的请求来处理暂时性故障,这一点很重要。

与任何云托管的 API、数据库和其他组件通信时,所有云托管的应用程序都应遵循 Azure 暂时性故障处理指南。 有关详细信息,请参阅 处理暂时性故障的建议

对于通过 Azure 防火墙连接的应用程序,请使用指数退避实现重试逻辑,以处理潜在的暂时性连接问题。 Azure 防火墙的有状态性质可确保在短暂的网络中断期间维护合法连接。

在缩放作(需要 5 到 7 分钟才能完成)期间,将保留现有连接,同时添加新的防火墙实例来处理增加的负载。

可用性区域支持

可用性区域 是每个 Azure 区域内物理上独立的数据中心群组。 当某个区域发生故障时,服务可以切换到其他可用的区域。

通过 Azure 门户创建时,Azure 防火墙会自动跨受支持区域中的可用性区域部署。 对于高级区域配置选项,必须使用 Azure PowerShell、Azure CLI、Bicep 或 Azure 资源管理器模板(ARM 模板)。

Azure 防火墙支持区域冗余部署模型和区域部署模型:

  • 区域冗余: 为区域冗余启用后,Azure 会在区域中的多个可用性区域之间分配防火墙实例。 Azure 自动管理区域之间的负载均衡和故障转移。

    区域冗余防火墙可实现最高运行时间服务级别协议(SLA)。 建议将其用于需要最大可用性的生产工作负荷。

  • 带状的: 如果解决方案对跨区域延迟异常敏感,可以将 Azure 防火墙与特定的可用性区域相关联。 可以使用区域部署在离后端服务器更近的位置进行部署。 区域防火墙的所有实例都部署在该区域中。

    重要

    建议仅在 跨区域延迟 超过可接受的限制时固定到单个可用性区域,并且已确认延迟不符合要求。 仅区域防火墙就不能为可用性区域中断提供复原能力。 若要提高区域 Azure 防火墙部署的复原能力,必须将单独的防火墙手动部署到多个可用性区域,并配置流量路由和故障转移。

如果未将防火墙配置为区域冗余或区域,则被视为非区域或区域。 非区域防火墙可以放置在该区域中的任何可用性区域中。 如果区域中的可用性区域遇到服务中断,则非区域防火墙可能位于受影响的区域中,并且可能会遇到停机。

区域支持

Azure 防火墙支持支持 可用性区域的所有区域中的可用性区域,其中提供了 Azure 防火墙服务。

要求

  • Azure 防火墙的所有层都支持可用性区域。
  • 对于区域冗余防火墙,必须使用标准公共 IP 地址并将其配置为区域冗余。
  • 对于区域防火墙,必须使用标准公共 IP 地址,并且可以将其配置为区域冗余或与防火墙位于同一区域中的区域。

成本

部署在多个可用性区域中的防火墙无需额外费用。

配置可用性区域支持

本部分介绍如何为防火墙配置可用性区域支持。

  • 创建具有可用性区域支持的新防火墙: 用于配置可用性区域的方法取决于是要创建区域冗余还是区域防火墙,以及所使用的工具。

    重要

    通过 Azure 门户部署时,会自动启用区域冗余。 若要配置特定区域,必须使用其他工具,例如 Azure CLI、Azure PowerShell、Bicep 或 ARM 模板。

    • 区域冗余: 使用 Azure 门户部署新防火墙时,防火墙默认为区域冗余。 有关详细信息,请参阅 使用 Azure 门户部署 Azure 防火墙

      使用 Azure CLI、Azure PowerShell、Bicep、ARM 模板或 Terraform 时,可以选择指定部署的可用性区域。 若要部署区域冗余防火墙,请指定两个或多个区域。 建议选择所有区域,以便防火墙可以使用每个可用性区域,除非有特定原因排除区域。

      有关 Azure PowerShell 的详细信息,请参阅 使用 Azure PowerShell 部署具有可用性区域的 Azure 防火墙

    • 带状的: 可以使用 Azure CLI、Azure PowerShell、Bicep、ARM 模板或 Terraform 部署区域防火墙。 选择单个特定可用性区域。

      注释

      选择要使用的可用性区域时,实际上是在选择逻辑可用性区域。 如果你在不同的 Azure 订阅中部署其他工作负载组件,它们可能会使用不同的逻辑可用性区域编号来访问相同的物理可用性区域。 有关详细信息,请参阅 物理和逻辑可用性区域

  • 在现有防火墙上启用可用性区域支持: 如果现有防火墙满足特定条件,则可以在现有防火墙上启用可用性区域。 此过程要求停止防火墙并重新配置防火墙。 预计会出现一些停机时间。 有关详细信息,请参阅 部署后配置可用性区域

  • 更改现有防火墙的可用性区域配置: 若要更改可用性区域配置,需要首先停止(解除分配)防火墙,此过程涉及一定数量的停机时间。 有关详细信息,请参阅 部署后配置可用性区域

  • 禁用可用性区域支持: 可以更改防火墙使用的可用性区域,但不能将区域冗余或区域防火墙转换为非区域配置。

常规操作

本部分介绍使用可用性区域支持配置 Azure 防火墙时的预期情况,以及所有可用性区域都正常运行的情况。

  • 区域之间的流量路由: 流量路由行为取决于防火墙使用的可用性区域配置。

    • 区域冗余: Azure 防火墙会自动跨防火墙使用的所有区域中的实例分配传入请求。 此主动-主动配置可确保在正常运行条件下实现最佳性能和负载分配。

    • 带状的: 如果跨不同区域部署多个区域实例,则必须使用外部负载均衡解决方案(例如 Azure 负载均衡器或 Azure 流量管理器)配置流量路由。

  • 实例管理: 平台会自动管理防火墙使用的区域中的实例放置,替换失败的实例和维护配置的实例计数。 运行状况监视可确保仅由正常运行的实例接收流量。

  • 区域之间的数据复制: Azure 防火墙不需要跨可用性区域同步连接状态。 处理请求的实例维护每个连接的状态。

区域关闭体验

本部分介绍使用可用性区域支持配置 Azure 防火墙时的预期情况,以及一个或多个可用性区域不可用的情况。

  • 检测和响应: 检测和响应的责任取决于防火墙使用的可用性区域配置。

    • 区域冗余: 对于配置为使用区域冗余的实例,Azure 防火墙平台会检测并响应可用性区域中的故障。 无需启动区域故障转移。

    • 带状的: 对于配置为区域性的防火墙,需要检测可用性区域的丢失情况,并启动到在另一个可用性区域中创建的辅助防火墙的故障转移。

  • 通知:Azure 防火墙在区域关闭时不会通知你。 但是,可以使用 Azure 服务运行状况 来了解 Azure 防火墙服务的总体运行状况,包括任何区域故障。

    设置警报以接收区域级别问题的通知。 有关详细信息,请参阅 Azure 门户中的“创建服务运行状况警报”。

  • 活动连接: 当可用性区域不可用时,连接到故障可用性区域中防火墙实例的请求可能会终止,并且需要重试。

  • 预期数据丢失: 区域故障转移期间不会丢失任何数据,因为 Azure 防火墙不会存储永久性客户数据。

  • 预期的停机时间: 停机时间取决于防火墙使用的可用性区域配置。

    • 区域冗余: 在可用性区域中断期间,预计停机时间最短(通常是几秒钟)。 客户端应用程序应遵循 暂时性故障处理的做法,包括实现具有指数退避的重试策略。

    • 带状的: 当某个区域不可用时,防火墙将保持不可用状态,直到可用性区域恢复。

  • 流量重新路由: 流量重新路由行为取决于防火墙使用的可用性区域配置。

    • 区域冗余: 流量会自动重新路由到正常的可用性区域。 如果需要,平台会在正常的区域中创建新的防火墙实例。

    • 带状的: 当某个区域不可用时,区域防火墙也不可用。 如果另一个可用性区域中有辅助防火墙,则负责将流量重新路由到该防火墙。

Failback

故障回复行为取决于防火墙使用的可用性区域配置。

  • 区域冗余: 在可用性区域恢复后,Azure 防火墙会自动跨防火墙使用的所有区域重新分发实例,并跨区域还原正常的负载均衡。

  • 带状的: 可用性区域恢复后,负责将流量重新路由到原始可用性区域中的防火墙。

Testing

区域故障测试的选项取决于防火墙的可用性区域配置。

  • 区域冗余: Azure 防火墙平台管理区域冗余防火墙资源的流量路由、故障转移和故障回复。 此功能是完全托管的,因此无需启动或验证可用性区域故障流程。

  • 带状的: 可以通过停止防火墙来模拟可用性区域故障的各个方面。 使用此方法测试其他系统和负载均衡器如何处理防火墙中的中断。 有关详细信息,请参阅 “停止和启动 Azure 防火墙”。

多区域支持

Azure 防火墙是单区域服务。 如果区域不可用,Azure 防火墙资源也不可用。

备选多区域方法

若要实现多区域体系结构,请使用单独的防火墙。 此方法要求将独立的 Azure 防火墙部署到每个区域,将流量路由到相应的区域防火墙,并实现自定义故障转移逻辑。 请考虑以下几点:

  • 使用 Azure 防火墙管理器 跨多个防火墙进行集中式策略管理。 使用 防火墙策略 方法跨多个防火墙实例集中管理规则。

  • 使用流量管理器或 Azure Front Door 实现流量路由

有关演示多区域网络安全体系结构的示例体系结构,请参阅 使用流量管理器、Azure 防火墙和应用程序网关实现多区域负载均衡

服务维护期间的可靠性

Azure 防火墙执行常规服务升级和其他形式的维护。

可以配置每日维护时段,使升级计划与运营需求保持一致。 有关详细信息,请参阅 为 Azure 防火墙配置客户控制的维护

服务级别协议

Azure 服务的服务级别协议 (SLA) 描述了每个服务的预期可用性,以及解决方案为实现该可用性预期而必须满足的条件。 有关详细信息,请参阅 联机服务的 SLA

Azure 防火墙为跨两个或更多可用性区域部署的防火墙提供更高的可用性 SLA。