cat case/PM-AZURE-20260723.md

Microsoft Azure 美西区域中断:自动化误扩隔离范围误删 IP 路由

P1 ·

摘要

2026-07-23,Microsoft Azure 美国西部(US West)云区域发生约 5 小时的网络连接中断。完全运行于该区域内部的服务未受影响,但所有进出该设施的流量中断,波及 Azure Kubernetes Service、Cosmos DB、Databricks、AI Search、API Management、Monitor、Virtual Desktop、Microsoft Graph、Sentinel、Power BI Embedded、VPN Gateway、ExpressRoute 等众多服务。微软事后发布初步事故复盘(PIR),根因为一次例行网络设备维护中,自动化系统错误扩大隔离范围、误删了未在初始评估中的一组 IP 路由。

时间线

14:44 UTC美西区域网络连接中断开始(太平洋时间 07:44),进出流量受影响
17:45 UTC开始回滚维护变更
18:26 UTC网络完成恢复、回到健康状态
19:41 UTC所有受影响服务全部恢复(持续约 4 小时 57 分)

维护执行中 - 请求转换系统出现 Bug,将额外设备误标为本次维护对象,从更多设备删除了 IP 路由

约 15:44 UTC - 工程师在事故发生后 1 小时内定位问题

根因

事故源于一次例行网络设备维护,需要隔离特定网络路径。正常流程下,维护请求会被转换为系统可读请求,并校验两条冗余路径中至少一条保持正常,维护前还需通过安全检查。但本次请求转换系统出现 Bug,错误地将额外设备标记为维护的一部分,导致一组 IP 路由从比预期更多的设备上被移除。这些路由位于 Azure 美西数据中心与广域网(WAN)之间,因此切断了进出该区域的网络流量。故障最初表现为 Azure 广域网大规模路由震荡。

放大因素

  • 自动化越界:转换系统 Bug 使隔离范围超出人工评估,误删未纳入评估的路由。
  • 冗余假设失效:虽确认至少一条冗余路径正常,但自动化实际波及了更多设备,破坏面超出预期。
  • 影响面集中:被删路由处于数据中心与 WAN 之间,直接切断全部进出流量,而非局部服务。

缓解措施

  • 17:45 UTC 起回滚维护变更,18:26 UTC 网络恢复,19:41 UTC 全服务恢复。
  • 微软表示将对安全检查、自动化维护请求变更流程展开全面分析。
  • 建议承载关键数据的企业采用多区域(multi-region)部署,降低单区域故障的整体影响。

经验教训

  • 变更自动化必须有严格的爆炸半径(blast-radius)校验,转换系统 Bug 不应导致隔离范围越界。
  • 冗余路径的"至少一条正常"假设需在自动化执行层被强制校验,而非仅停留在人工评估。
  • 网络层路由删除属于高危操作,须有 dry-run 与可一键回滚的 runbook。
  • 多区域部署是应对单区域网络中断的有效兜底,但不能替代变更安全。

检查清单

  • 维护请求的自动化转换是否有范围校验与人工二次确认?
  • 隔离操作的实际设备集合是否等于评估集合(防越界)?
  • 冗余路径在自动化执行时是否被强制校验仍可用?
  • 高危路由变更是否有 dry-run 与即时回滚预案?
  • 关键业务是否具备跨区域故障转移能力?