10月8日讯:近期,在一篇GoDaddy公司的首席信息官奥古斯特•古德曼(Auguste Goldman)的博客中,古德曼对公司9月10日的影响广泛的DNS服务中断系列事件做出解释。文章确认该次事件的起因为一次网络故障的“完美风暴”,并再次反驳了外界对该公司系统被黑客攻击的猜测。
在文章中,古德曼称GoDaddy的DNS基础设施平均每天要应答大约100亿次的DNS查询,跨越4100万个DNS区域。该系统采用任播BGP路由,将入站DNS查询需求平均分配到最近的吊舱(pod),在发生硬件故障时能减少延迟、提供冗余。
古德曼称9月10日的事故“挑战了我们的路由器性能”。“造成该次服务中断的原因不是单一的,” 古德曼说,“而是多种因素共同引起的。造成服务中断的原因有:路由器内存耗尽、路由器硬件故障和遏制。”
根据相关报道,GoDaddy路由器硬件故障最先引起异常大的路由表转发到转发信息库中。路由器硬件状态回落到“软件切换模式”,并且路由器的CPU无法跟上数据包的传输。
“在事件开始的几分钟内,恢复程序就开始执行,将故障路由器从我们所有的路由协议中移除,” 古德曼写到,“恢复程序是路由器软件的标准响应——将故障路由器从FIB(文件信息块)中移除并开始硬件二次转发。再加上正常分层DNS缓存,可以将已经发生的服务中断最小化。但在此次事件中,该机制并没有执行。”
为了恢复服务,GoDaddy公司称他们先过滤了网络上的路由信息,然后重建路由表,随后重启故障路由器。由于GoDaddy将路由吊舱(pod)重新联网,过载的缓存随即带来DNS洪流,中止系统的重新联网。
古德曼称GoDaddy为减轻宕机事件的影响,限制了其所有网络节点处的DNS查询需求,延长了服务中断的时间,但确保了系统能够安全地重新联机。DNS吊舱的上线增加了流量。
这篇文章令我们想起近年来亚马逊遭遇的几次主要的EC2服务故障后的事故分析报告,展示了GoDaddy的一种不同寻常的透明度。这也表明了自2011年底被收购以来,公司在新管理方法下正经历着一些自我调整。
比较GoDaddy用户将如何回应类似事故分析报告(和亚马逊用户不一定相同),也许会很有趣。
“我们的目标就是向用户公开我们具体采取的措施,以防止再一次发生这类事故,”古德曼说,“写这篇文章也是希望业界同仁能从中吸取经验教训。”
根据该博文,GoDaddy为其DNS系统在路由技术方面增添了新的保障措施。目前,公司正在实行新的路由反射层允许的路由器数量限制,以更加主动地减少那些损坏系统的变化。
为了向宕机事件中的遭受损害的用户致歉,古德曼写到“在过去的十多年里,我们向用户提供了达99.999%正常运行的DNS设备。我们会认真对待每一次服务故障,而且我们有信心在事件之后迅速改善我们的系统。我们要为我们的顾客负责,为我们每天处理大量DNS流量的整个互联网负责。”