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