导致Facebook、其相关服务(Instagram、WhatsApp、Oculus、Messenger)、其企业平台和公司内部网络瘫痪的大规模故障,都是从一次例行维护开始的。据基础设施副总裁桑托什·贾纳丹(Santosh Janardhan)说,在维护过程中发出的一条命令无意中导致了连接世界上所有Facebook数据中心的骨干网的关闭。
这本身就够糟糕的了,但正如我们已经解释过的,你无法使用Facebook的原因是,指向其服务器的DNS和BGP路由信息突然消失了。但据Janardhan说,这个问题原本反倒是次要的,因为Facebook的DNS服务器注意到与骨干网的连接丢失,并停止分发BGP路由信息,以帮助互联网上的每台计算机找到其服务器,这就导致DNS服务器本身仍在工作,但它们无法到达。
然后连锁反应恶化了问题的表现:网络连接的缺乏和DNS的丢失切断了服务器与试图修复问题的工程师的联系,并禁用了他们通常用于修复和通信的许多工具--就像我们昨天听到的那样:
什么是BGP,它在Facebook的大规模故障中发挥了什么作用?
由于围绕这一关键硬件的物理和系统安全问题,工程师们遇到了额外的障碍。一旦他们"激活安全访问协议"(这显然不是"用角磨机切开服务器门"的暗语),他们就能够让主干网上线,并在逐渐增加的负载中慢慢恢复服务。这也是昨天一些人花了较长时间才恢复访问的部分原因,因为一次性打开所有资源所带来报复性访问需求可能会导致计算机更多的崩溃。
所以,没有黑客入侵,只是一个审计工具遗漏了一个命令中的错误,而在六个小时内,连接数十亿人的服务就这样莫名其妙地消失了这么久。