互联网上的千万个 DNS 解析器

by Joe Abley on March 22, 2012

解析器是互联网上的服务器,它们使用域名系统 (DNS) 协议 [TXT, 120 KB] 检索来自权威服务器的信息,并将应答返还到最终用户应用程序。它们通常可以在企业和 ISP 网络中找到,还有一些公共解析器服务,由像 GoogleOpenDNS 这样的组织提供。您也可以将自己的计算机配置为一台解析器,或者使用 ISC BIND9NLNet Labs 的 unbound 等免费软件在您自己的网络中部署自己的解析器。

那么,总共有多少台解析器呢?由于任何人都可以运行一台解析器,这似乎很难计算。然而,事实上所有在互联网上与权威服务器直接对话的解析器都会留下痕迹,只要稍作数据处理我们就可以知道数量。

早在 2010 年,ICANN、VeriSign 和 NTIA 就完成了一次成功的合作,在 DNS 根区域中部署了 DNSSEC [TXT, 52 KB]。作为该项目的一部分,根服务器运营机构收集了发送到其各个根服务器基础架构的 DNS 请求,并将最终数据寄存在 DNS-OARC 以供分析。

这一数据收集做法的目标是努力发现由于 DNSSEC 部署给 DNS 客户端带来的任何潜在问题。不过,这一做法的附属产物是一个能够洞察 DNS 流量的数据集,这些流量是在一系列具有高度代表性的 DNS 解析器和 DNS 权威服务器之间产生(几乎所有解析器都会时不时地与根服务器对话)。

其中一个已实现的数据收集时间基线特别长。这一收集称为”LTQC”(长期查询收集),它只和初始查询有关。初始查询是指每个解析器在启动时发送给根服务器的首个查询,目的是获取最新的 DNS 根服务器名称集。13 个根服务器中有 11 个为这一收集贡献了数据,包括由 ICANN 运营的根服务器 L 根。数据在 2009 年 11 月到 2010 年 7 月间收集。

以下是我们采用的方法:我们查看了包含在 LTQC 数据包捕获中的每一个请求,并计算了唯一 IPv4 和 IPv6 源地址的数量。

在收集期间,我们查看了 9,945,017 个唯一源地址,其中 59,489 (0.60%) 个是 IPv6,9,885,528 (99.40%) 个是 IPv4。

那么我们看不到哪些解析器?

我们看不到那些不在互联网上直接向权威服务器发送查询,而是通过其他中间解析器发送的内部解析器。这类解析器包括那些隐藏在将 DNS 查询重新定向到中央缓存的中间盒之后,或者以其他方式更改正常初始行为的任何解析器。

我们不一定能看到部署在网络地址转换器 (NAT) 之后的内部解析器 - 至少,在这种情况下我们可能只能看到其中一些解析器。

我们看不到那些在数据收集期开始之前启动(和初始化)、并在收集期结束之前不再初始化的解析器。

显然我们也看不到任何在收集期结束后启动的解析器,并且我们推测,鉴于互联网的总体发展,解析器的数量很有可能增加。

任何在收集期间重新编号(并在重新编号事件前后都进行了初始化)的解析器都将计数两次。直观上看,这一影响很小;我们认为大多数解析器很少重新编号,因为它们一般是通过地址而非名称来引用。

鉴于我们测量的数据预期会因上述影响而产生误差,因此我们似乎可以将答案归结为一个有效数字;这至少能给我们一个下限的数量级。

最后我们得到的是什么?今天在互联网上至少有 1000 万个 DNS 解析器。

{ 0 comments… add one now }

Leave a Comment

You can use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Anti-spam image