DNS 記錄如何更新到 Internet 上的所有 DNS 伺服器?

DNS 記錄如何更新到 Internet 上的所有 DNS 伺服器?

如果有人在 GoDaddy、OpenDNS 等上託管主機名稱/網站名稱,他們將如何更新世界各地新新增的主機名稱的 DNS 伺服器的記錄?由於網路上有許多 DNS 伺服器,每個 ISP 都為其客戶提供不同的 DNS 伺服器。

答案1

他們不這樣做。 (稍微簡化一下)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. 最後,Google的網域伺服器給了答案www.google.com

我注意到在上面的範例中,我已手動將查詢結果剝離為最基本的內容。實際上,名稱伺服器通常不會進行所有這些查詢,因為它會記住其中的一部分。也就是說,當有人第一次查找任何 .com 網域時,他們使用的 DNS 伺服器將記住名稱伺服器(在本例中為 172800 秒),因此不需要進行另一次查找。對於查找的所有更具體的部分也是如此。

因此,如果有人透過 GoDaddy(或任何註冊商)註冊 example.com,GoDaddy 需要(以程式設計方式)將 example.com 的網域伺服器輸入到「.com」網域伺服器中。同樣,如果他們在 AU,如果他們想要註冊“example.com.au”,則需要將資訊輸入“.com.au”空間 - 這需要與控制“example.com.au”網域名稱伺服器的人員達成協議.com.au”空間- 這就是為什麼並非所有註冊商都可以註冊所有域名,以及為什麼獲取新的頂級域名是這樣一個過程- 他們需要支付大筆費用才能向根域名服務器註冊TLD。

相關內容