如果有人在 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
- 第一個查詢尋找根伺服器 (*.root-servers.net)
- 然後根伺服器會建議在哪裡找到網域最右邊的部分 - “.com”
- 第三個查詢傳回 google.com 的名稱伺服器
- 最後,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。