睿诚科技协会

facebook 宕机技术原因

这次事件是互联网历史上最严重的服务中断之一,影响了全球数十亿用户,并持续了大约 6 个小时,其根本原因可以归结为一个核心问题:配置错误导致的“网络自我摧毁”

facebook 宕机技术原因-图1
(图片来源网络,侵删)

下面我将分点详细解释这个过程,从触发点到最终影响。


核心技术原因:BGP 路由劫持与 DNS 失效

这次宕机不是单一环节的失败,而是一个由小错误引发、被网络架构放大、最终导致核心服务彻底瘫痪的连锁反应。

导火索:错误的网络配置更新

  • 操作主体:Facebook 的工程师当时正在进行例行维护,旨在优化其全球骨干网络的流量。
  • 错误操作:他们执行了一条错误的命令,这条命令本质上是从骨干网络中移除了所有对 BGP (边界网关协议) 路由的引用。
  • BGP 是什么? 你可以把 BGP 想象成整个互联网的“地址簿”或“GPS 导航系统”,它决定了数据包(你访问网页的信息)如何在全球不同的网络之间找到最佳路径,Facebook 拥有一个庞大的内部网络,BGP 负责告诉外部世界如何到达 Facebook 的服务器。
  • 错误的影响:当这条错误的命令被执行后,Facebook 的所有 IP 地址(从 240.x.x13.x.x 等)都从全球互联网的路由表中消失了,这就像你把一个城市从所有地图上抹掉,任何导航系统都无法再找到它,对于全球的互联网服务提供商来说,通往 Facebook 的“路”突然断了。

灾难性放大:DNS 服务器失效

这是导致整个系统雪崩的最关键一步,也是为什么 Facebook 自己都无法修复问题的原因。

  • DNS 是什么? 域名系统是互联网的“电话簿”,它把人类容易记住的域名(如 facebook.cominstagram.com)翻译成机器能理解的 IP 地址。
  • Facebook 的 DNS 架构:和大多数公司不同,Facebook 没有使用第三方 DNS 服务商(如 Google Public DNS 或 Cloudflare DNS),它拥有并自己运行着全球最大的 DNS 基础设施之一,这些 DNS 服务器本身也位于 Facebook 自己的全球网络内部。
  • 致命的逻辑闭环
    1. 由于第一步的 BGP 错误,整个外部世界都无法访问 Facebook 的任何 IP 地址。
    2. 这包括 Facebook 自己的 DNS 服务器。
    3. 当用户或任何应用尝试访问 facebook.com 时,他们首先需要向 DNS 服务器查询其 IP 地址。
    4. 但这个 DNS 请求因为无法连接到 Facebook 的服务器而失败。
    5. 结果就是:没有人能通过域名找到 Facebook,甚至连 Facebook 自己的工程师也无法通过域名访问到内部用于修复问题的工具

这就形成了一个死循环:要修复网络,需要访问内部工具;要访问内部工具,需要网络正常工作。

facebook 宕机技术原因-图2
(图片来源网络,侵删)

最终结果:核心服务彻底离线

当 DNS 和 BGP 同时失效后,Facebook 的生态系统全面崩溃:

  • 对外用户:无法访问 Facebook、Instagram、WhatsApp、Messenger 等所有应用。
  • 对内员工:无法访问公司内部的代码库、内部沟通工具(如 Workplace)、监控系统等,工程师们被锁在了自己的系统之外,只能眼睁睁看着灾难发生,却无法远程登录进行修复,据报道,一些工程师甚至不得不物理进入数据中心,通过直接连接键盘和鼠标来手动恢复系统。

为什么修复如此困难?

  • 权限和认证系统瘫痪:Facebook 的员工身份验证系统也托管在其内部网络上,这意味着即使工程师设法连接到了某个服务器,他们也可能因为没有有效的网络凭证而无法登录。
  • 物理介入的必要性:由于无法远程访问,工程师们最终不得不驱车前往世界各地的数据中心,他们通过直接操作服务器来重启关键的系统和网络设备,这个过程是缓慢且繁琐的,据报道,加州 Menlo Park 的总部工程师是第一批恢复物理访问权限的团队,他们重启了核心系统后,才逐步让全球网络恢复。

从这次事件中学到了什么?

这次宕机给整个科技行业敲响了警钟,并带来了几个重要的教训:

  1. BGP 安全至关重要:暴露了 BGP 协议的脆弱性,一个配置错误就能让一个互联网巨头的所有地址从全球路由中消失,这推动了行业对更安全的 BGP 路由验证技术的讨论和采用。
  2. 不要把所有鸡蛋放在一个篮子里:这次事件最惨痛的教训是,Facebook 将其 DNS、认证、网络和核心应用全部构建在自己的私有基础设施上,没有“逃生舱”,这导致了一个单点故障引发了全局性灾难,许多公司都在重新评估其架构,考虑使用多区域、多供应商的冗余方案,甚至使用第三方 DNS 服务作为备用。
  3. 物理访问的重要性:在极端情况下,远程管理并非万能,确保对关键基础设施有物理访问权限和应急预案,是任何大型科技公司都必须考虑的问题。
  4. “防御纵深”原则:即使一个层面(如网络)出错,其他层面(如 DNS)也应该能够独立工作,为系统提供一层缓冲,Facebook 的架构在这点上存在致命缺陷。

Facebook 宕机的技术原因链是:

一个错误的网络配置命令 -> 导致 BGP 路由信息被撤回 -> 全球互联网找不到 Facebook 的服务器 -> 包括其 DNS 服务器在内的所有服务变得无法访问 -> 形成一个无法远程修复的死循环 -> 最终导致全球服务中断。

facebook 宕机技术原因-图3
(图片来源网络,侵删)

这不仅仅是一个技术失误,更是一次对现代互联网架构脆弱性的深刻展示。

分享:
扫描分享到社交APP
上一篇
下一篇