FaceBook究竟是怎么炸的?

facebook的这次长达6小时的宕机简直是巧合中的巧合,离谱中的离谱。

1、一个程序员敲错了一行代码

不知道这个程序员想干什么,莫名其妙地屏蔽了两个子网:185.89.218.0/23和129.134.30.0/23。这两个子网是facebook旗下所有产品的dns服务器所在地址。

dns:负责域名解析,小于的网站使用的dns是由腾讯云的dnspod提供的。你在访问网站时,浏览器会向dns服务器请求,获得网站的ip地址,这样才能找到服务器。就像门牌号一样。

dns服务器被屏蔽之后,后果也很简单------找不到服务器了

(为何这个程序员有那么高的权限?)

 

2、两个网段毁了4台服务器

有趣的是,facebook的dns服务器全都在这两个网段,没有一点容灾。

但凡大公司都知道多设置几个ip和服务器容灾吧,不,facebook没有。

 

3、一堆请求卡在了dns服务器

你的浏览器获得不到dns服务器返回的数据,只能不停地retry,也就是不断重新获取。这个上限大约是27次,所以,dns服务器受到了平常27倍的请求量,这导致很多小的dns服务器直接承受不了压力坏掉了,从而像是雪崩、核反应般的链式反应------更多的网站请求不到dns地址了,到时非常多的网站由于facebook的间接作用不能访问了。其实我国十几年前迅雷崩掉了也导致了半个国家的网站访问不了,也是这个原因。

 

4、一群程序员进不了内网了

facebook内网也需要dns解析,不像是QQ,内置了ip地址,不需要解析。dns解析坏掉导致程序员进入不了内网,就如同你把云服务器的ssh关掉,或者从外网关掉了内网服务器的内网穿透(我干过)。程序员没办法进入内网,就没办法回退刚刚的错误命令。自己坑自己。。。

 

5、一个疫情、一个内网导致程序员进不去机房

进不了内网没关系,我到机房直接内网登录服务器也可以。结果又是这个疫情,程序员居家办公,去不了。。

机房运维也是不专业,应急情况都处理不了。。

facebook迅速成立了小组应对情况,赶到就近机房。

最离谱的事情发生了,由于门禁是靠内网解锁的,门禁打不开了。。

于是,暴力解锁(砸了门),进了机房。

 

6、一个疏忽搞炸服务器

这个应急小组也是不专业,线没拔就上线了服务器。

那一瞬间,流量充斥了整个机房。

服务器炸了。

(也有可能是因为他们抬不动服务器够不到线)

20分钟后,小组终于发现了问题,问题解决。

 

 

 

点赞

发表评论