Facebook 把自己从互联网上抹掉:一条维护命令,让全站消失约 6 小时
配图:AI 生成的概念示意图,非论文原图、真实现场或实验数据。
TL;DR:2021 年 10 月 4 日,Facebook、Instagram、WhatsApp 同时下线,持续约 6 小时。Facebook 官方说明称,起因是一次例行维护中,一条本想评估骨干网容量的命令意外断开了全球骨干网连接,而审计工具的 bug 没能拦住它。官方确认的是“物理接入因安全措施而变慢”;至于“门禁卡失效、要砸门”,主要来自媒体报道,不是 Facebook 官方文章里的说法。
这是 2021 年的旧事,不是今天的新闻,但它仍是讲“基础设施互相依赖”最好的教材之一。
一条命令,断掉整张骨干网
Facebook 的数据中心靠一张规模庞大的骨干网互联。2021 年 10 月 4 日,工程师在例行维护中下发了一条命令,原意是评估全球骨干网的容量,结果却把骨干网里的所有连接都断了,全球数据中心彼此失联。
按理说,这类命令会被审计系统检查并拦下。但官方称,审计工具里有个 bug,没能正确阻止这条命令。
真正让外界“看不见”的是 BGP 和 DNS
Facebook 的权威 DNS 服务器放在较小的机房里,并通过 BGP 向互联网宣告自己的 IP 地址。这些服务器有个设计:一旦发现连不上数据中心,就撤回自己的 BGP 宣告,避免把用户引到坏节点。
骨干网一断,这个“自我保护”被触发,DNS 服务器纷纷撤回路由。服务器本身还活着,但互联网上已经没人知道怎么找到它们。按 Cloudflare 的观测,UTC 15:58 前后,Facebook 停止了对其 DNS 前缀的路由宣告。从外面看,Facebook 像是从互联网上蒸发了。
修复的难处:工具也依赖出事的系统
更麻烦的是,内部的排查和管理工具同样依赖这套网络和 DNS,连带带外管理通道也受到影响。工程师只能亲自赶到现场。Facebook 官方文章承认,物理和系统层面的强安全措施拖慢了进入机房、重启系统的速度。
媒体当时还报道,员工的门禁卡也一度失效,有人需要想办法破门而入。这一说法并非来自 Facebook 官方文章,应当当作二手报道看待。
恢复也得小心
骨干网恢复后,也不能一把全开。数百万台机器同时涌回,会带来骤增的用电和流量,可能引发新的故障;官方提到,机房用电曾出现数十兆瓦级的波动。靠着此前演练“风暴”(模拟大故障)的经验,团队逐步恢复,没有造成二次全局崩溃。大约在 UTC 22:00 前后,服务陆续恢复。Facebook 称,没有证据表明用户数据在此次事故中泄露。
为什么值得记住
这次事故没有黑客,没有天灾,只是一条命令加一个失效的保险。更讽刺的是,系统的每个“安全设计”单独看都合理:DNS 失联就撤路由,机房要严格门禁。组合起来,却成了把自己锁在门外的一把锁。Facebook 事后表示会加强演练,并把“全球骨干网故障”纳入模拟。
来源:Facebook Engineering:More details about the October 4 outage