文|宙斯盾DDoS防护团队
Rocky
导语
美国时间10月4日中午,Facebook公司网络出现重大故障,故障持续了6个小时后才恢复。官方给出的故障原因,简单来说是一次误操作引发了连锁反应。
(复杂点就是:在例行网络维护中,发送的一条命令无意中关闭了其全球骨干网的所有BGP连接,在其DNS服务器与内部网络不通后触发了内部机制,自动禁止DNS服务所在网段的BGP路由播布,而这又导致故障范围进一步加剧,并对故障恢复带来极大困难)。
这是Facebook创立以来最严重的一次网络访问事故,在这起故障中,我们又看到了BGP的身影(我为什么要说“又”)。
BGP是什么?
BGP协议,全称Border Gateway Protocol(边界网关协议),是组成我们当今Internet的一种去中心化的自治系统间的动态路由协议,它允许Internet上不同AS(自治系统)之间自动交换IP路由信息和可达信息,最主要功能在于控制路由的传播和选择最好的路由,并且还具备冗余备份、消除环路的特点。
该协议,最初是在1989年1月第12次IETF会议的午餐期间,Yakov Rekhter、 Kurt Lougheed 在 Len Bosak 的帮助下设计的,并写在了三张餐巾纸上【图1】。
后来于1989年6月份正式发布了RFC1105(BGP-1),之后升级到了RFC1163(BGP-2)、RFC1267(BGP-3)和RFC1771(BGP- 4),并一直沿用至今(BGP- 4)。
图1
目前全球有18W+多个AS,通过BGP协议连接构建成了我们整体的互联网,这些AS号的使用者包括有各大ISP和内容提供商、云服