了解DNS查找机制

时间:2012-08-09 15:58:47

标签: dns subdomain resolve nameservers

导致我尝试取消此过程的特定查询是:

如果父域assets.example.com已经解析,那么子域的DNS查找(例如example.com)会更快吗?

通过我(天真)的理解,将域名转换为IP地址的basic process非常简单。知道如何解析顶级域名(如comnet)的十三个根服务器的地址是在网络硬件中进行硬编码的。在查找example.com的情况下,我们的本地DNS服务器(可能是我们的路由器)要求其中一个根服务器在哪里找到com的顶级名称服务器。然后它会询问结果名称服务器是否知道如何解析example。如果确实如此,我们就完成了,如果没有,我们就会被传递到另一台服务器。此过程中的每个名称服务器都可能正在缓存,因此有一段时间我们的本地路由器现在会知道在哪里查找comexamplecom服务器将知道在哪里寻找example

尽管如此,我还是没有得到它。

  • 我知道还有其他中间DNS服务器,例如ISP提供的服务器。他们在什么时候被查询?
  • 如果com TLD名称服务器不知道如何解决example,那么它如何解决其他名称服务器需要检查的问题?或者这只是意味着example.com无法解决?
  • 当我注册一个域并配置名称服务器时,我是否实际上为该TLD的名称服务器使用的数据库中的特定TLD子域编辑了一组NS记录?

Wikipedia解释说,某些DNS服务器将缓存与递归查询实现相结合,允许它们提供缓存命中并可靠地解决缓存未命中问题。我不明白这些服务器是如何被查询的,或者解析算法如何(甚至广泛地)起作用。

回顾我最初的问题,假设A记录在同一名称服务器上,我可能会尝试“不”。这准确吗?

1 个答案:

答案 0 :(得分:17)

首先,误解:

  • 根提示(13个根服务器的名称和IP地址)几乎不会“在网络硬件中进行硬编码”。网络硬件(如路由器)有时可能有内置的DNS解析器,如果碰巧也有DHCP服务器,但如果有,它通常只是一个转发解析器将查询传递给上游名称服务器(从ISP获得) )如果它不知道答案。
  • ISP提供的
  • 名称服务器通常不充当“中间DNS服务器”。您可以使用自己的名称服务器(例如公司名称服务器,或者在计算机上安装BIND),也可以使用ISP提供的名称服务器。在任何一种情况下,无论您选择哪个名称服务器,都将从头到尾处理递归解析过程。例外情况是前面提到的转发名称服务器。
  • 如果com TLD名称服务器不知道如何解决example,则无法确定要检查的其他名称服务器。 本身就是要检查的名称服务器。它要么知道example,要么example不存在。

你的问题的答案是肯定的。如果名称服务器已经解析example.com(并且该结果在其缓存中仍然有效),那么它将能够更快地解析assets.example.com

递归解析过程就像你描述的那样:首先找出.(根)的名称服务器,然后找出com等的名称服务器......只有递归解析器实际上并没有要求.com以及example.com的域名服务器。它实际上每次都要求assets.example.com。根服务器不会给出答案(他们对assets.example.com一无所知),但他们至少可以提供com的名称服务器的引用。类似地,com的名称服务器不会回答问题(他们也不知道),但他们可以提供example.com的名称服务器的推荐。 example.com的名称服务器可能知道也可能不知道问题的答案,具体取决于assets.example.com是否被委托给其他名称服务器,还是在与example.com相同的区域中进行配置。因此,递归解析器将收到最终答案或另一个推荐。