Cloudflare 2022 年 6 月中断的 6 个教训



2022 年 6 月 21 日,总部位于美国的全球内容交付网络 (CDN) 提供商和安全公司 Cloudflare 在世界标准时间 6:27 遭遇中断,持续到 7:42。中断是由影响 Cloudflare 的 19 个数据中心位置的网络配置错误引起的——阿姆斯特丹、亚特兰大、阿什本、芝加哥、法兰克福、伦敦、洛杉矶、马德里、曼彻斯特、迈阿密、米兰、孟买、纽瓦克、大阪、圣保罗、圣何塞、新加坡、悉尼、东京。中断产生了全球性影响,使从这些数据中心提供服务的用户无法访问许多应用程序,例如 Discord。应用性能监控



背景


Cloudflare 是一个主要的 CDN,它通过使用通过主干服务器连接的边缘服务器网格来交付数据,从而为企业在其网站上提供快速可靠的内容交付。为了通过 Internet 访问用户,Cloudflare 使用边界网关协议 (BGP),即 Internet 的路由协议。



Cloudflare 支持对大部分 Internet 的全球访问,维护自己的 BGP 路由。BGP是Internet的路由协议,也称为Internet的邮局网络。BGP 为系统找到最简单的数据传输路径提供了一种合乎逻辑的方法。BGP 的传播方式由运营商设置的 BGP 广告策略决定。这些策略会定期评估,Cloudflare 会帮助维护它们。


作为升级现有服务的持续努力的一部分,Cloudflare 于 6 月 21 日在其受影响的 19 个数据中心实施了新的架构变更。正在实施一个服务器主干层以改进边缘服务器的网格,旨在帮助使 Cloudflare 的内容交付基础设施更具弹性和灵活性。


在运行代码升级时,网络配置代码错误影响了 BGP 通告的顺序,导致 Cloudflare 的 IP 地址从 Internet 中撤出。使情况进一步复杂化的是,此错误还切断了 Cloudflare 工程师与受影响的数据中心的连接以恢复有问题的更改。


diff 格式的错误配置重新排序了 BGP 前缀中的术语,停止了广告本身,删除了对受影响位置的访问,并阻止了服务器到达源服务器。Cloudflare 的内部负载均衡器也出现故障,并使较小的集群过载,从而放大了问题。