Facebook, Instagram, and WhatsApp宕机事件的原因线索(2021-10-04晚开始)


【宕机根本原因的线索】:这个问题与一个叫做BGP路由的东西有关,且极有可能与配置失误有关。
【影响时间长的线索】:当时facebook的办公网无法连接外网, 极有可能是影响时长达6小时的原因,因为无法登录BGP路由做个修改。
【宕机时间段】:2021-10-04 23:39〜2021-10-05 06:45

周一,Facebook、INSTAGRAM、WhatsApp 和 Oculus 的中断使马克·扎克伯格帝国的每个角落都下线。这是一种社交媒体停电,最贴切的说法是“彻底”停电,而且似乎特别难以被解决。

Facebook本身尚未确认其宕机的根本原因,但互联网上流传很广。与DNS记录无法访问的时间相吻合,该公司的所有应用程序在美国东部时间上午11点40分开始从互联网上消失了。 DNS通常被称为互联网的电话簿;它将您输入到URL的主机名(如 facebook.com)转换为IP地址,即这些站点所在的IP地址。

DNS事故很常见,如果有疑问,它们就是特定站点宕机的原因。它们可能由于各种不稳定的技术原因而发生,通常与配置问题有关,并且可以相对简单地解决。然而,这一次,似乎发生了更严重的事情。

网络威胁情报公司Bad Packets的首席研究官Troy Mursch说,“Facebook 的宕机似乎是由DNS引起的;然而,这只是表象。” Mursch说,**根本问题是(其他专家也同意) Facebook已经撤回了所谓的边界网关协议(BGP)路由器**,此路由器包含了DNS服务器的IP地址。如果DNS是互联网的电话簿,那么BGP就是它的导航系统;它决定数据在信息高速公路上行驶时采用的路线。

“你可以把它想象成电话游戏,但不是人们在玩,而是较小的网络,让彼此知道如何联系对方。他们向邻居宣布这条路线,他们的邻居会将其传播给他们的邻居。” 网络监控公司Cisco ThousandEyes的产品营销总监 Angelique Medina 说。

这里很多术语,但很容易说清楚,Facebook已经从互联网地图上消失了。如果您现在尝试 ping这些,正如Mursch所说,“这些数据包最终进入了一个黑洞,” 。

Facebook, Instagram, and WhatsApp宕机事件的原因线索(2021-10-04晚开始) 地图显示了由于DNS解析失败而无法访问Facebook。由CISCO THOUSAND EYES提供

显而易见但仍未解决的问题是为什么这些BGP路由器首先消失了。这不是一种常见的问题,尤其是在这种规模或持续时间。在宕机期间,Facebook除了一条推文外没有说别的,“正在努力尽快让事情恢复正常”。在周一下午晚些时候服务逐渐恢复后,Facebook发了一份仍然缺乏任何技术细节的声明。 该公司表示, “对于今天受到我们平台中断影响的每个人:我们很抱歉!我们知道全世界有数十亿人和企业依赖我们的产品和服务来保持联系。我们感谢您的耐心等待。”

与 WIRED 交谈的互联网基础设施专家都表示,最可能的答案是Facebook的配置错误。互联网基础设施公司Cloudflare的首席技术官John Graham-Cumming表示:“看起来Facebook对他们的路由器做了一些事情,这些路由器将Facebook网络连接到互联网。”他强调说他不知道细节发生了什么。毕竟,他说,互联网本质上是网络的网络,每个网络都向另一个网络宣传它的存在。这一次,Facebook停止了广告。

这也意味着不仅仅是Facebook的外部服务受到影响。例如,您不能在第三方网站上使用Facebook登录。而且由于公司自己的内部网络无法访问外部互联网,据报道,其员工今天也无法工作。 (Instagram 首席执行官亚当·莫塞里(Adam Mosseri)甚至在推特上说“感觉就像下雪天。”)

这也解释了为什么需要这么长时间才能恢复运行。 2019年,谷歌云宕机导致谷歌工程师无法登录谷歌云来修复谷歌云宕机。 Facebook 似乎至少有可能陷入类似的 catch-22,无法访问互联网来修复BGP路由问题。

梅迪纳说,“好消息是,一旦 Facebook能够恢复任何配置,它应该很快就会恢复业务。 “当它得到纠正后,交通将真正开始流动,”

与此同时,互联网的其它应用也感受到了Facebook的宕机。或者,更具体地说,像 Cloudflare这样的DNS解析器(将域名转换为IP地址的服务)监控到了平常流量的两倍之多,因为人们一直试图加载 Facebook、Instagram 和 WhatsApp。这些请求不足以压倒整个系统,但激增的流量提醒人们互联网确实是相互依赖的,有时甚至是脆弱的。

上一篇:【程序媛晒83行代码】被代码耽误的吃货小姐姐,用代码终结选择困难症


下一篇:如何利用vw+rem进行移动端布局