F、E 根服务器瘫痪、BGP路由出故障:全是 Cloudflare 发布的软件中的 bug 惹的祸
2020-02-27 16:37:10
  • 0
  • 0
  • 0

来源:云头条

一番调查让人们对关于私有vs公共Web管理提出了严峻问题。

据互联网系统联盟(ISC)本周发布的一份报告显示,Cloudflare发布的软件存在一处bug,结果导致互联网基础设施的核心部分出现故障。

ISC运行所谓的F根(F root)服务器,这是全球的13台根DNS服务器之一,它们被标记为A到M。这些服务器是支撑全球互联网的中央计算机:比如说,它们确保你在访问yuntoutiao.com时,被定向到为我们的主页提供服务的正确系统。

今年1月23日,ISC接到了反映.net域出故障的报告。它在调查后发现缺失了关键的A记录和AAAA记录,而这些记录负责将.net域名与IPv4和IPv6网络地址绑定起来。

实际上,所有以.net结尾的互联网地址从ISC的F根服务器统统消失了,.net是互联网上数量最多的注册域名之一,共有1340万个域名。最终依靠F根服务器连接到众多网站和服务的任何浏览器、应用程序、计算机或设备都将无法通过其.net地址访问那些系统,这是最糟糕的情况。

这个问题也不仅仅局限于ISC的F根服务器。报告声称,美国宇航局(NASA)运营的E根服务器也遇到了类似的问题。

错误修正版

从响应时间表来看,ISC在5分钟内迅速搞清楚了情况:问题出在它与Cloudflare合作运营的互联网节点上,于是将该问题上报给了这家互联网基础设施公司。Cloudflare也很快采取了行动,它在21分钟内就查明了罪魁祸首是发布的特定代码,该代码旨在修复四小时前带入的一个bug。

不过报告话锋一转,提到了脆弱不堪的边界网关协议(BGP):互联网错综复杂的庞大网络使用BGP,自动组织管理对方,并保持彼此之间的连接。

不管怎样,花了近两个小时的时间才撤回了导致该问题的BGP通告(BGP announcement),ISC特别指出这项工作本应该更快地完成。该报告在“汲取的经验教训”部分写道:“回想起来,一旦发现在提供不完整/不正确的数据,我们本应该立即从BGP撤回路由前缀。”

报告继续称:“撤回路由并没有按预期的顺利进行,于是Cloudflare和ISC同意执行常规的测试以实施这项功能……测试套件已经更新,添加了针对缺失的A记录和AAAA记录的测试,ISC和Cloudflare将竭力设计进一步的一致性测试。”

资金当道,稳定性靠边

由于全球DNS的工作方式,信息通过名称服务器、冗余配置和缓存的分布式层次结构一路向下传输,并且每隔几小时到几秒钟全局更新一次,对网民的影响绝对最小。由于E根服务器和F根服务器暂时瘫痪,众多浏览器和应用程序就只好寻找另外的途径来查询.net地址。

然而事态很严重,这主要是由于公共互联网的全球寻址系统的底层基础部分居然被一家私人公司一次不起眼的软件更新搞砸了。

进行软件更新的是Cloudflare,这家商业组织结合使用开源软件和闭源软件。尽管数十年来迎来了急剧发展,互联网还是获得了如此超长的正常运行时间,这还得归功于它奉行的传统:使用开源软件,认真细致地检查和测试更新,维护者组织不受商业考量因素的干扰。

正如一名资深的互联网工程师Bill Woodcock在Twitter上特别指出:“当公共互联网的关键功能被征用以牟取私人公司的利益时,会发生什么?透明度和问责制丧失殆尽,基础设施支出削减,系统坏掉。”

这个问题也不是学术问题。Woodcock最近就.org拟定出售给一家不知名的私募股权公司发出了警告——他公司为管理.org的互联网注册机构提供技术后端服务。鉴于拟议收购者出于获利的动机,他得出结论:技术支出可能会大幅缩减,这使得这个重要域名注册机构的稳定性令人堪忧。他就此问题写信给DNS监管组织ICANN,建议应停止这次拟议的出售。

他也不是唯一对此表示关切的互联网工程师。Bert Hubert的公司开发开源DNS软件,对于这份ISC报告他特别指出:“闭源Cloudflare软件存在的一个错误导致了闭源Akamai在美国一家大型有线接入提供商出现崩溃。”

断点

Hubert最近大声疾呼,他担心Firefox会使用Cloudflare作为其安全DNS:DNS-over-HTTPS(DoH)协议的默认提供商:最近,Mozilla已开始向美国的所有Firefox用户启用加密的DoH。

如果Cloudflare闭源软件中的软件错误会导致根服务器使互联网中整个很重要的部分销声匿迹,那么某个时候类似的问题很可能会导致Firefox用户失去安全DNS连接。而这可能会导致他们完全失去互联网(互联网仍会存在,但是大多数用户根本不知道原因是什么或如何解决问题。)

互联网工程师常常重复一句著名的话:“互联网把审查制度解释为破坏,并绕过它”,这句话最初由电子前沿基金会(EFF)联合创始人John Gilmore首次提出来。这句话具有极为广泛的含义,常常被工程师们用来基本上表示“别为此而担心,互联网一直在坏掉。”互联网每分每秒在坏掉,但几乎立即自行修复过来。

但是随着互联网的商业化气息越来越浓,以逐利为目的的私人公司日益介入互联网基础设施的基础层,ISC针对该F根服务器事件的报告很可能为今后出现的状况敲响了警钟。

Cloudflare的发言人驳斥了关于应归咎于其软件是闭源性质的任何说法

Cloudflare的工程师Martin Levy称:“那是一个很极端的案例。用非此即彼的角度(即开源是好的,闭源是坏的)看待这个问题有失公允。我们为开源世界贡献了大量的软件。”

他称,Cloudflare对即将部署的软件进行了“极其严格的测试,但我们没有注意到这个特殊的情况”;任何破坏是“非常局部性的”。简而言之,当初更改代码是为了替某个客户改进字符编码处理,却没想到引发了连锁反应。

在我们看来,BGP路由故障似乎导致了根服务器放弃其gTLD A和AAAA记录,这可能是由于它们从再也无法访问的另一个系统获取那些详细信息。请参阅报告的最后两页。

此外,这影响了由F根服务器和E根服务器处理的所有域名,而不仅仅是.net域名,不过.net在ISC看来很显眼,因为它是互联网上相当庞大而重要的一部分。


最新文章
相关阅读