DNS 记录如何更新至互联网上的所有 DNS 服务器?

DNS 记录如何更新至互联网上的所有 DNS 服务器?

如果有人在 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
  1. 第一个查询查找根服务器 (*.root-servers.net)
  2. 然后根服务器建议在哪里找到域名的最右边部分 - “.com”
  3. 第三个查询返回 google.com 的名称服务器
  4. 最后,谷歌的名称服务器给出了答案www.google.com

我注意到,在上面的例子中,我手动将查询结果精简到最基本的部分。实际上,名称服务器通常不会进行所有这些查询,因为它会记住部分内容。也就是说,当有人第一次查找任何 .com 域名时,他们使用的 DNS 服务器会记住名称服务器(在本例中为 172800 秒),因此不需要再进行一次查找。对于查找的所有更具体的部分,情况也是如此。

因此,如果有人通过 GoDaddy(或任何注册商)注册 example.com,GoDaddy 需要(以编程方式)将 example.com 的名称服务器输入到“.com”名称服务器中。同样,如果他们在澳大利亚,如果他们想注册“example.com.au”,则需要将信息输入“.com.au”空间 - 这需要与控制“.com.au”空间名称服务器的人达成协议 - 这就是为什么并非所有注册商都可以注册所有域名,以及为什么获取新的顶级域名是如此的过程 - 他们需要支付大笔费用才能在根名称服务器上注册 TLD。

相关内容