NS 记录鸡和蛋:NS 在它所服务的域中

Ban*_*ami 9 domain-name-system domain delegation ns-record glue-record

我已经与 BIND 打交道多年,这一直困扰着我。

$ dig google.com ns

;; QUESTION SECTION:
;google.com.            IN  NS

;; ANSWER SECTION:
google.com.     87046   IN  NS  ns3.google.com.
etc...

;; ADDITIONAL SECTION:
ns1.google.com.     87274   IN  A   216.239.32.10
etc.
Run Code Online (Sandbox Code Playgroud)

我明白,至少在理论上,根服务器处理 .,并将 .com.、.gov. 等任何内容交给正确的服务器(尽管实际上这都缓存了几个级别),但在某些时候,有人要知道向216.239.32.10 的服务器询问whatever.google.com 的A 记录。但是解析器首先是如何解决这个问题的,因为您需要知道 NS 的 A 才能做到这一点?(就此而言,既然我们知道它是一个 Internet NS 而不是 Chaos 或其他东西,为什么您必须使用名称而不是 NS 记录的地址?)

我的域名服务器总是有一些上游人可以找到的名字(例如,我在 foo.com 上托管了 bar.com 的 DNS,而我的上游处理了 foo.com),但我从来没有完全理解像 Google 这样的人是如何克服以 google.com 的名义托管 google.com 的 DNS 的鸡与蛋问题。

use*_*517 12

我认为您正在努力解决的概念是胶水记录


从上面的链接文章:

例如,如果 example.org 的权威名称服务器是 ns1.example.org,则尝试解析 www.example.org 的计算机首先解析 ns1.example.org。由于 ns1 包含在 example.org 中,因此需要首先解析 example.org,这会带来循环依赖。为了打破这种依赖关系,顶级域 org 的名称服务器包括与 example.org 的委派一起使用的胶水。粘合记录是为 ns1.example.org 提供 IP 地址的地址记录。解析器使用这些 IP 地址中的一个或多个来查询域的权威服务器之一,从而完成 DNS 查询。