为什么必须存在DNS根服务器而不是使用顶级域?

时间:2019-12-25 09:03:20

标签: dns

如上所述,是否可以在本地存储所有顶级域?尽管有许多TLD,但数量不多,如果我们可以跳过DNS根服务器,则DNS查找肯定会加快速度。谁能解释一下?

2 个答案:

答案 0 :(得分:1)

可能出于同样的原因,您没有所有六级DNS名称的本地副本,例如www.paxdiablo.is.good.looking.com

是的,其中有很多更多(超过13个左右的IP地址),但主要问题不是更新策略的大小。

目前,这13台根服务器具有特定的IP地址(实际上,有13台以上的服务器,但是它们都可以通过这些IP地址之一进行访问)。

这些IP地址被烘焙到各种DNS解析程序中,并且很少更改。

如果必须更改一个 ,其他12个将继续提供服务,直到地球上所有DNS解析器的列表都更新为止。实际上,最近({2},我认为是)对L服务器的更改是通过在关闭旧旧IP地址之前运行六个月来完成的。大概这将为所有DNS解析器提供切换到新地址的机会,因此永远不会没有完整的13。

因此,您可能不希望一次更改所有13个IP地址,而无需某种形式的新旧并行服务:-)这为查找系统提供了很大的弹性。

但是,TLD地址不一定具有这种弹性,因为它们可以随意在提供商之间移动,甚至可以在提供商内 更改IP地址。 ICANN对根域的控制要比对各种TLD提供者的控制要多(就其IP地址而言),并且目前存在1500 TLDs

无论如何,由于各种DNS解析器已经已经缓存了层次结构的多个级别,因此改进可能并没有您期望的那么多,这与您计算机上的ARP表缓存IP到MacAddress的方式相同查找表。您应该阅读Patrick Mevzek对这个问题的绝妙答案(甚至可以接受),因为它更深入地研究了技术层面。

答案 1 :(得分:1)

在加速事情的错误前提下

  

如果我们可以跳过DNS根服务器,则DNS查找肯定会加快速度。

这个前提是错误的,或者至少比您现在看到的复杂得多。

每个递归名称服务器都附带一个根名称服务器列表,包括名称和IP地址。通过称为root priming的过程,他们将联系其中任何一个以获取更新的列表(IP地址会不时更改)。由于已缓存所有DNS答复,因此已被缓存。

因此,您与根服务器的联系比您想像的要少得多,因此,这里实际上没有什么可以“加速”的。 对于以下级别的TLD也是如此。通过查询根名称服务器,任何递归名称服务器都将获得给定TLD的权威名称服务器列表,并将其缓存。

当前根区域NS记录的TTL为2天,因此对于给定的TLD,递归名称服务器绝不会每两天与根名称服务器联系一次,并且您肯定需要在同一TLD中解析多个名称,因此再次这里几乎没有任何收获。

但是,您可以在本地存储所有TLD

您可以在本地存储TLD列表,这绝对不是问题。 ICANN允许您下载根区域,该区域与根名称服务器发布的内容完全相同,例如,您只需要转到https://www.internic.net/domain/root.zone。或者,您可以对自己的名称服务器进行编程,以对允许它们的某些根名称服务器进行AXFR查询,从而使您成为私有从属服务器,并在本地拥有所有TLD的列表。参见https://root-servers.org/faq.html

的底部

现在的问题主要是如何确保对此进行了更新? TLD来来去去,而不是每天发送几十个,但是会发生变化:引入新的TLD(2012年后掀起大浪,gTLD有望掀起新潮,ccTLD的国家也发生小变化)或被移除(gTLD过期或破产,国家消失等) 。),或更改名称服务器集(名称或IP地址)。 现在是否要监视事物,以便获得正确的最新列表 (在其中按定义查询根名称服务器将始终为您提供最新内容)?

您还有一个较小的问题:如何确保内容的真实性?您是否正确检查了上述HTTPS资源附带的证书?您是否对AXFR答复进行身份验证?等等

实际上,对于某些人来说,这正是DNSSEC的亮点,因为它可以对根区域中的所有记录进行身份验证,因此,从哪里获取内容并不重要……只要您可以对其进行验证。但是要验证它,您需要一个根域DNSSEC密钥的副本,该副本已经随着时间而改变。

无论如何,RFC 7706 - Decreasing Access Time to Root Servers by Running One on Loopback中详细描述了这种设置,其摘要如下:

Some DNS recursive resolvers have longer-than-desired round-trip
times to the closest DNS root server.  Some DNS recursive resolver
operators want to prevent snooping of requests sent to DNS root
servers by third parties.  Such resolvers can greatly decrease the
round-trip time and prevent observation of requests by running a copy
of the full root zone on a loopback address (such as 127.0.0.1).
This document shows how to start and maintain such a copy of the root
zone that does not pose a threat to other users of the DNS, at the
cost of adding some operational fragility for the operator. 

有关更多上下文以及递归名称服务器启动时发生的情况,您可能还希望了解一下 BCP 209 - RFC 8109 - Initializing a DNS Resolver with Priming Queries的摘要是:

This document describes the queries that a DNS resolver should emit
to initialize its cache.  The result is that the resolver gets both a
current NS Resource Record Set (RRset) for the root zone and the
necessary address information for reaching the root servers.

您也可以访问以下网站:https://localroot.isi.edu/ 它为您提供了一种同步根区域并使用TSIG密钥对其进行身份验证的方法。