如果有人在 GoDaddy、OpenDNS 等上托管主机名/网站名称,他们将如何更新该新添加主机名的全球 DNS 服务器记录?因为互联网上有很多 DNS 服务器,每个 ISP 都为其客户提供不同的 DNS 服务器。
答案1
他们不知道。(稍微简化一下)DNS 是一个层次结构。DNS 服务器知道如何查找父 DNS 服务器或如何查找“根”服务器列表。
如果他们找到了父 DNS 服务器,他们就直接询问它,然后服务器会询问其父 DNS 服务器,直到得到权威答案。
然而,在大多数情况下,名称服务器知道根名称服务器,而根名称服务器又将它们指向适合该域的服务器。(或者在某些情况下,指向适合该域第一部分的服务器。此过程重复进行,直到域名解析完成为止)。
下面是一个“跟踪”示例,显示了系统如何权威地解析 IP 地址www.google.com(忽略签名):
减少 Linux 命令“dig +trace www.google.com”的输出
; <<>> DiG 9.11.3-1ubuntu1.11-Ubuntu <<>> +trace www.google.com
;; global options: +cmd
. 514683 IN NS a.root-servers.net.
. 514683 IN NS b.root-servers.net.
. 514683 IN NS c.root-servers.net.
. 514683 IN NS d.root-servers.net.
. 514683 IN NS e.root-servers.net.
. 514683 IN NS f.root-servers.net.
. 514683 IN NS g.root-servers.net.
. 514683 IN NS h.root-servers.net.
. 514683 IN NS i.root-servers.net.
. 514683 IN NS j.root-servers.net.
. 514683 IN NS k.root-servers.net.
. 514683 IN NS l.root-servers.net.
. 514683 IN NS m.root-servers.net.
;; Received 525 bytes from 10.0.3.254#53(10.0.3.254) in 13 ms
com. 172800 IN NS i.gtld-servers.net.
com. 172800 IN NS k.gtld-servers.net.
com. 172800 IN NS a.gtld-servers.net.
com. 172800 IN NS e.gtld-servers.net.
com. 172800 IN NS h.gtld-servers.net.
com. 172800 IN NS j.gtld-servers.net.
com. 172800 IN NS l.gtld-servers.net.
com. 172800 IN NS m.gtld-servers.net.
com. 172800 IN NS c.gtld-servers.net.
com. 172800 IN NS b.gtld-servers.net.
com. 172800 IN NS f.gtld-servers.net.
com. 172800 IN NS g.gtld-servers.net.
com. 172800 IN NS d.gtld-servers.net.
google.com. 172800 IN NS ns2.google.com.
google.com. 172800 IN NS ns1.google.com.
google.com. 172800 IN NS ns3.google.com.
google.com. 172800 IN NS ns4.google.com.
;; Received 840 bytes from 192.33.14.30#53(b.gtld-servers.net) in 35 ms
www.google.com. 300 IN A 172.217.25.36
;; Received 59 bytes from 216.239.36.10#53(ns3.google.com) in 178 ms
- 第一个查询查找根服务器 (*.root-servers.net)
- 然后根服务器建议在哪里找到域名的最右边部分 - “.com”
- 第三个查询返回 google.com 的名称服务器
- 最后,谷歌的名称服务器给出了答案www.google.com
我注意到,在上面的例子中,我手动将查询结果精简到最基本的部分。实际上,名称服务器通常不会进行所有这些查询,因为它会记住部分内容。也就是说,当有人第一次查找任何 .com 域名时,他们使用的 DNS 服务器会记住名称服务器(在本例中为 172800 秒),因此不需要再进行一次查找。对于查找的所有更具体的部分,情况也是如此。
因此,如果有人通过 GoDaddy(或任何注册商)注册 example.com,GoDaddy 需要(以编程方式)将 example.com 的名称服务器输入到“.com”名称服务器中。同样,如果他们在澳大利亚,如果他们想注册“example.com.au”,则需要将信息输入“.com.au”空间 - 这需要与控制“.com.au”空间名称服务器的人达成协议 - 这就是为什么并非所有注册商都可以注册所有域名,以及为什么获取新的顶级域名是如此的过程 - 他们需要支付大笔费用才能在根名称服务器上注册 TLD。