全球F、E根服务器瘫痪、BGP路由出故障:全是bug惹的祸!
一番调查让人们对关于私有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看来很显眼,因为它是互联网上相当庞大而重要的一部分。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
RSA 2020最值得关注的10大安全热门趋势
在过去的28年中,RSA大会已经成为企业和IT安全专业人士的一次全球聚会,有超过43000人和700家厂商聚集在这里展示他们的最新产品,讨论网络安全数据、创新和思想领导力方面的最新创新。 但是,今年RSA大会却由于新冠病毒的爆发而变得不那么确定。此前巴塞罗那世界移动通信展和Facebook旧金山全球营销峰会相继取消。RSA大会方面表示,有1.2%的与会者取消了注册,14家厂商中有3家白金和黄金赞助商(IBM Security、AT&T Cybersecurity和Verizon)宣布退出。 旧金山市长London Breed在致RSA与会者的公开信中表示,由于新冠病毒尚未在旧金山地区传播,因此旧金山受病毒感染的风险很低。但大会方面还是采取了一些健康和安全措施,包括对展台和地板进行连续消毒,以及对敏感地区的国际旅行者进行健康检查。 本周RSA 2020即将拉开帷幕,我们与来自8家安全厂商的高管进行了交流,分享了从SD-WAN和DevSecOps到资产识别和无密码技术等一系列值得关注的热门安全趋势。 国家行为攻击者 RSA NetWitness副总裁Mike Adler表示,如...
- 下一篇
Docker监控——Prometheus
博文大纲:一、Docker的监控二、prometheus简介三、Prometheus组成及架构四、部署prometheus1)环境准备2)部署prometheus3)配置Peometheus监控实现报警 一、Docker的监控 (1)docker自带的监控命令 [root@localhost ~]# docker top wordpress_wordprss_1 //查看容器的使用状态 UID PID PPID C STIME TTY TIME CMD root 5601 5569 0 20:53 ? 00:00:00 apache2 -DFOREGROUND 33 6073 5601 0 20:54 ? 00:00:00 apache2 -DFOREGROUND 33 6074 5601 0 20:54 ? 00:00:00 apache2 -DFOREGROUND 33 6075 5601 0 20:54 ? 00:00:00 apache2 -DFOREGROUND 33 6076 5601 0 20:54 ? 00:00:00 apache2 -DFOREGROUND 33 6...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS关闭SELinux安全模块
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装