cat case/PM-2020-0005.md

Cloudflare 2020-07-17 亚特兰大路由器配置错误致骨干网流量全灌入,27min 中断

P1 · 全球约 50% 流量下降,19 个数据中心(SJC/DFW/SEA/LAX/ORD/IAD/EWR/ATL/LHR/AMS/FRA/CDG 等)服务异常,Discord/Shopify 等受影响

summary

2020-07-17 21:12 UTC,Cloudflare 在处理纽瓦克—芝加哥骨干网一段不相关问题时,网络工程团队在亚特兰大一台路由器上做配置变更以缓解拥塞,但该配置包含一个错误:本应把亚特兰大从骨干网路由中移除一部分流量,却错误地将整个骨干网的所有 BGP 流量导向亚特兰大。亚特兰大路由器被瞬间压垮,连接到骨干网的多个 Cloudflare 位置(19 个城市)随之故障,全网流量一度下降约 50%。

timeline

21:12 UTC 配置变更触发故障,部分位置开始不可用。工程团队立即定位到亚特兰大路由配置错误,隔离并禁用该路由器,21:39 UTC 流量开始恢复正常流动。随后一个处理日志/指标的核心数据中心出现短暂拥塞并丢失部分记录,边缘网络全程正常。

root_cause

缓解拥塞的配置变更存在错误,使骨干网路由策略把所有流量错误地汇聚到单一节点(亚特兰大),造成该节点过载并连带使依赖该骨干段的位置集体掉线。

amplifiers

① 单点配置错误放大为全局:一条路由策略失误把全量流量导向一个节点。② 缺乏防止错误路由全域生效的护栏:变更未做影响封顶。③ 恢复依赖人工快速定位,耗时约 27 分钟。

mitigation

立即隔离亚特兰大路由器、关闭骨干网相关段并将流量改走 transit 提供商;随后对骨干网配置做全局更改以防止同类错误再次发生。

lessons

骨干网路由变更需带自动封顶/健康检查护栏;高危配置变更应可一键回滚并预先演练;关键配置应有独立校验而非依赖人工。

checklist

① 骨干网配置变更增加全局护栏与自动回滚。② 单点路由变更前做爆炸半径评估。③ 配置推送前增加自动化正确性校验。④ 核心日志/指标链路独立冗余。