2021年10月4日Facebook宕机的原因


今天,Facebook 及其附属服务 WhatsApp 和 Instagram 都已关闭。他们的 DNS 名称停止解析,他们的基础设施 IP 无法访问。初步分析是BGP路由配置错误导致!
以下是cloudflare的博文分析:
 
什么是BGP
BGP代表边界网关协议。它是一种在 Internet 上的自治系统 (AS) 之间交换路由信息的机制。 互联网正常运转需要大型路由器,这些路由器拥有庞大的、不断更新的可能路由列表,可用于将每个网络数据包传送到其最终目的地。如果没有 BGP,互联网的路由器将不知道该做什么,互联网将无法工作。
Internet互联网顾名思义就是一个网络的网络,它由 BGP 绑定在一起。BGP 允许一个网络(例如 Facebook)向构成 Internet 的其他网络通告其存在。在这段中断时间内,Facebook 没有向其他路由广播其存在,ISP 和其他网络无法找到 Facebook 的网络,因此它变得不可用。
每个单独的网络都有一个 ASN:自治系统编号。自治系统 (AS) 是具有统一内部路由策略的单个网络。AS 可以产生前缀(比如它们控制一组 IP 地址),以及传输前缀(比如它们知道如何到达特定的 IP 地址组)。每个 ASN 都需要使用 BGP 向 Internet 通告其前缀路由;否则,没有人会知道如何连接以及在哪里找到它。
Facebook的BGP路由问题导致DNS解析失败:
 
DNS 受到影响
在 UTC 时间1658,我们注意到 Facebook 已停止公布其 DNS 前缀的路由。这意味着,至少,Facebook 的 DNS 服务器不可用。因此,Cloudflare 的 1.1.1.1 DNS 解析器无法再响应询问 facebook.com 或 instagram.com 的 IP 地址的查询。
其直接后果是,世界各地的 DNS 解析器停止解析其域名。
发生这种情况是因为 DNS 与 Internet 上的许多其他系统一样,也有其路由机制。当有人在浏览器中键入https://facebook.com URL 时,DNS 解析器负责将域名转换为要连接的实际 IP 地址,首先检查它的缓存中是否有内容并使用它。如果没有,它会尝试从域名服务器中获取答案,域名服务器通常由拥有它的实体托管。
如果域名服务器无法访问或由于某些其他原因无法响应,则返回 SERVFAIL,并且浏览器会向用户发出错误消息。
但这还不是全部。现在,人类行为和应用程序逻辑开始发挥作用并导致另一个指数效应。随之而来的是额外的 DNS 流量海啸。1.1.1.1处理的查询比平时多 30 倍,并可能导致其他平台出现延迟和超时问题。
发生这种情况的部分原因是应用程序不会接受答案错误并开始重试,有时是积极的,部分原因是最终用户也不会接受答案错误并开始重新加载页面,或杀死并重新启动他们的应用程序,有时还是很积极重试。
 
其他消息渠道
其他人认为:Facebook、Instagram、WhatsApp 都是因 BGP 配置错误而关闭。
还有人认为:Facebook 当前的中断是如何由reactjs的合成事件逃逸和堵塞互联网管道造成的。
有人很生气:人们拿 Facebook 服务宕机开玩笑让我感到恶心。任何当时使用 Oculus 耳机的人目前都被困在 VR虚拟现实中,他们会像在现实生活中死去。#元宇宙