背景
Cloudflare 最近一年尝试在高负载的地区调整为更灵活、更具弹性的网络架构,已有19个数据中心转为MCP架构
Multi-Colo PoP (MCP):阿姆斯特丹、亚特兰大、阿什本、芝加哥、法兰克福、伦敦、洛杉矶、马德里、曼彻斯特、迈阿密、米兰、孟买、纽瓦克、大阪、圣保罗、圣何塞、新加坡、悉尼、东京
此架构为数据中心引入额外路由层,通过控制内部网格,可以轻松启停内网部分服务,在不中断正常流量请求时进行维护、处理问题,从而提高整体服务可用性
事件
Cloudflare使用BGP协议广播部分IP地址段以供外部网络访问自身服务
在调整架构修改地址广播时,新的更新程序生成了不正确的路由器配置,它改变了原有规则优先级阻止了正确路由广播规则生效,使访问请求无法正常流向基础设施最终导致应用服务出现中断,此间全球访问Cloudflare网络的 50% 请求受影响
时间线
11:56 尝试部署新的配置到第一个节点。当前所有节点使用旧有架构&设置,故不受影响
14:17 更新部署到最繁忙的节点,但未部署到具有 MCP 架构的节点
14:27 部署已到达启用 MCP 的节点,更新已部署应用到骨干网。这是事件开始的时候,因为从这以后最繁忙的 19 个数据中心离线脱机运行
14:32 内部通报事故发生
14:51 在路由器上进行了首次更新尝试,以验证事件发生根本原因
14:58 找到并理解了根本原因。开始恢复有问题的配置变化
15:42 最后一项恢复工作已完成。由于网络工程师们互相修改对方的配置,恢复之前的恢复,导致问题零星地重新出现,整体恢复有延迟
17:00 事件最终完结