我已经与 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 的鸡与蛋问题。