Chromium的功能之一给根DNS服务器带来了巨大的负担。





Chromium浏览器是迅速扩展的Google Chrome浏览器和新版Microsoft Edge的开源父版本,其良好的功能已受到严重的负面关注,该功能旨在检查用户的ISP是否正在窃取不存在的域查询结果。



Intranet重定向检测器为统计上不太可能存在的随机“域”创建虚假查询,它负责全球根DNS服务器接收到的总流量的大约一半。威瑞信(Verisign)工程师马特·托马斯(Matt Thomas)在APNIC博客上写了一篇冗长的文章,描述了问题并评估了问题的规模。





通常如何完成DNS查找





这些服务器是解决.com,.net等问题的最终联系机构,因此它们告诉您frglxrtmpuf不是顶级域(TLD)。



DNS,即域名系统,是一个系统,计算机可以通过该系统将令人难忘的域名(例如arstechnica.com)转换为不太方便的IP地址(例如3.128.236.93)。没有DNS,互联网将无法以人类友好的形式存在,这意味着顶级基础架构上的不必要负载是一个真正的问题。



加载单个现代网页可能需要大量的DNS查找。例如,当我们分析ESPN主页时,我们计算了93个单独的域名,范围从a.espncdn.com到z.motads.com。全部页面加载都需要它们!



DNS被设计为多级层次结构,以处理需要为整个世界服务的这种工作负载。金字塔服务器的顶部是根服务器-每个顶级域(例如.com)都有自己的服务器系列,这是它们之下每个域的最终权限。这些服务器之上的一个级别是根服务器本身,从a.root-servers.netto m.root-servers.net



这种情况多久发生一次?



由于DNS基础结构的分层缓存层次结构,全球DNS查询的很小一部分到达根服务器。大多数人直接从其ISP获取其DNS解析器信息。当用户的设备需要知道如何访问特定站点时,首先会将请求发送到该本地提供商管理的DNS服务器。如果本地DNS服务器不知道答案,它将请求转发给它自己的“转发器”(如果指定)。



如果本地ISP的DNS服务器或其配置的“转发器”都没有缓存的响应,则该请求将直接路由到要解析的域上方的域中的权威服务器。什么时候.com这将意味着请求被发送到域名本身的权威服务器comgtld-servers.net



gtld-servers请求的系统以domain.com域的权威名称服务器列表以及至少一个包含一个此类名称服务器IP地址的粘合记录作为响应。然后,这些响应沿链下降-每个转发器将这些响应向下发送到请求它们的服务器,直到该响应最终到达本地提供者的服务器和用户计算机。同时,它们都缓存此响应,以免不必要地干扰更高级别的系统。



在大多数情况下,域名服务器记录为domain.com将已经缓存在这些转发器之一上,因此不会干扰根服务器。但是,现在我们正在谈论URL的通常形式-一种可以转换为常规网站的形式。Chrome查询的级别高于集群本身的级别root-servers.net



Chromium和NXDomain盗窃检查





Chromium检查“此DNS服务器在欺骗我吗?”占到达Verisign DNS根服务器群集的所有流量的近一半。



Chromium浏览器是Google Chrome浏览器的父项目,新的Microsoft Edge和无数鲜为人知的浏览器,希望为用户提供在单个字段(有时称为“多功能框”)中的轻松搜索功能。换句话说,用户在浏览器窗口顶部的同一文本框中输入真实URL和搜索引擎查询。进一步简化,它也不会强制用户使用http://输入URL的一部分https://



尽可能方便的是,此方法要求浏览器了解什么算作URL,什么算作搜索查询。在大多数情况下,这非常明显-例如,带空格的字符串不能是URL。但是,当您考虑使用Intranet时,事情会变得更加棘手-私有网络也可以使用私有顶级域来解析实际网站。



如果用户在其公司的Intranet上输入“市场营销”,并且其公司的Intranet具有一个具有相同名称的内部网站,则Chromium会显示一个信息框,询问用户是否要搜索“市场营销”或转到https://marketing... 没关系,但是许多ISP和公共Wi-Fi提供商都会“劫持”每个拼写错误的网址,从而将用户重定向到一个充满横幅广告的页面。



随机产生



Chromium开发人员不希望普通网络上的用户每次搜索一个单词时都询问其含义,因此他们进行了测试:启动浏览器或更改网络时,Chromium对三个随机生成的“域”执行DNS查找顶级,长度为7到15个字符。如果这些请求中的任何两个以相同的IP地址返回,则Chromium假定本地网络正在“窃取”NXDOMAIN它应接收的错误,因此浏览器会将来自同一单词的所有输入查询视为搜索尝试,直至另行通知。



不幸的是,在没有窃取DNS查询的结果,这三个操作通常到根域名服务器本身的顶部:本地服务器不知道如何翻译qwajuixk,因此它将此请求转发给转发器,转发器执行相同的操作,直到最后,a.root-servers.net或者转发其中一个他的“兄弟”不会被强迫说“对不起,但这不是域名”。



由于大约有1.67 * 10 ^ 21个可能的伪造域名,长度为7到15个字符,因此在“公平”网络上进行的每项测试都将其通向根服务器。这是多达一半上的根DNS总负荷的,根据来自簇的一部分统计root-servers.net属于威瑞。



历史总是重演



这不是一个好主意的项目第一次用不必要的流量淹没或几乎淹没了公共资源-它立即使我们想起了D-Link和Pole-Henning Camp NTP服务器在2000年代中期的悠久和可悲的历史。 X。



2005年,FreeBSD开发人员Poul-Henning(他还拥有丹麦唯一的Stratum 1网络时间协议服务器)收到了意想不到的巨额传输流量账单。简而言之,原因是D-Link开发人员在该公司的交换机,路由器和访问点产品线的固件中注册了Stratum 1 NTP服务器(包括Campa服务器)的地址。这立即使Kampa服务器的流量增加了9倍,这导致丹麦Internet Exchange(丹麦的Internet交换点)将其关税从“免费”更改为“每年9,000美元”。



问题不在于D-Link路由器太多,而是它们“违反了命令链”。NTP与DNS十分相似,NTP应该以分层方式工作— Stratum 0服务器将信息中继到Stratum 1服务器,再将信息中继到Stratum 2服务器,依此类推。典型的家用路由器,交换机或访问点(例如,一个D-Link要求提供NTP服务器地址)必须将请求发送到Stratum 2或Stratum3。Chromium



项目可能是出于最佳目的,在此重复了NTP问题。通过向Internet的根服务器加载它们永远不必处理的查询来实现DNS。



希望有一个快速的解决方案



Chromium项目存在一个打开的错误,需要禁用默认的Intranet重定向检测器才能解决此问题。我们必须向Chromium项目致敬:以前发现一个错误,来自Verisign的Matt Thomas引起了他对APNIC博客中的帖子的极大关注该漏洞是在六月发现的,但是一直遗忘了,直到托马斯(Thomas)上任为止。斋戒之后,他开始受到密切关注。



希望该问题能尽快得到解决,并且根DNS服务器将不再需要每天响应大约600亿个虚假查询。






广告



Epic服务器Windows或Linux VPS,具有功能强大的AMD EPYC处理器和非常快的Intel NVMe驱动器。赶快订购!






All Articles