名稱伺服器請求是如何排序的?
假設我有一個在網站上註冊的域名。在他們的網站上,它說以下內容:
域名伺服器按順序列出:
ns9.zoneedit.com ns18.zoneedit.com ns3.freedns.ws
名稱伺服器是否按特定順序讀取?還是它使用最近的一個/一個接收第一個請求?或者是那裡的順序,它被請求的順序?即,ns9.zoneedit.com 會是主地址嗎?
我問的原因是因為不幸的是他們的系統中存在錯誤(您需要通過電子郵件發送表格才能更新您的域),而且我的舊記錄中曾經有 3 個名稱伺服器,並且我更改了 DNS 提供商,但是現在我只使用 2 並且無法刪除第三個 ns3.freedns.ws。
這會影響它嗎?因為如果它只使用主要和次要,那應該沒問題吧?我昨天更新了這些更改,已經過了 24 小時大關。
查詢權威名稱伺服器的方式沒有可預測的順序。使用您描述的設置,如果 ns3.freedns.ws 沒有您的域名記錄,那麼大約 1/3 試圖訪問您的站點的訪問者將無法訪問,因為名稱伺服器會響應它沒有擁有您的域名的 IP 地址。我建議聯繫您的註冊商並讓他們刪除第三個域名伺服器記錄——這對他們來說應該很容易更新。
資源記錄集中的各個資源記錄沒有排序。“主要”和“次要”DNS 內容伺服器的概念僅適用於數據庫複製。
資源記錄集是一個集合。集合不需要訂購,涉及域名系統時*也不需要訂購。*在內容 DNS 伺服器和 DNS 客戶端之間的路徑中有許多點可以重新排序該集合的成員。
- 當內容 DNS 伺服器從源文件編譯其數據庫時,不需要保留 RR 在源文件中的順序。編譯後的數據庫甚至可能沒有任何這樣的排序概念。
- 當內容 DNS 使用集合的數據庫記錄來響應查詢時,當它將集合分開以在 DNS 協議中對其進行編碼時,不需要以任何特定的順序對其進行編碼。實際上,對於諸如某些內容的集合類型,
A
DNSAAAA
伺服器會有意地重新排序資源記錄集。- 當代理 DNS 伺服器收到來自內容 DNS 伺服器的響應時,不需要使用或保留任何特定的集合排序。實際上,對於諸如
A
和AAAA
一些代理 DNS 伺服器之類的集合類型,它們會有意地重新排序資源記錄集。- 當記憶體代理 DNS 伺服器使用它們的記憶體時,它們在向記憶體添加內容或從記憶體中檢索內容時不需要維護任何集合順序。
- 當 DNS 客戶端收到來自代理 DNS 伺服器的完整應答響應時,不需要使用或保留任何特定的集合排序。實際上,對於諸如
A
和AAAA
許多 DNS 客戶端這樣的集合類型,會有意地重新排序資源記錄集。請注意,因此必須為 DNSSEC 指定什麼。在計算或驗證
RRSIG
資源記錄集的記錄時,總是需要先對集進行排序。當代理 DNS 伺服器決定與哪些內容 DNS 伺服器通信時,它們使用兩部分
NS
加A
/AAAA
委託資訊來獲取內容 DNS 伺服器 IP 地址列表。一些代理 DNS 伺服器軟體嘗試根據一些指標對內容 DNS 伺服器進行排名:哪個內容 DNS 伺服器響應“最佳”,對於“最佳”的某個值。其他人只是輪換順序。然而其他人根本不做任何事情,並使用在獲取資源記錄時發生的任何順序。從這種異構的行為範圍中,無法預測哪些內容 DNS 伺服器將接收最多的查詢。如您所知,每個人的代理 DNS 伺服器今天可能會決定您的舊 DNS 託管服務的伺服器是今天要詢問的“最佳”內容 DNS 伺服器。在這種情況下,每個人都會收到舊數據。
沒有排序,“主要”和“次要”的概念在這裡根本不適用。任何給定域的所有內容 DNS 伺服器都是整個世界的對等點。
所以把它修好。
進一步閱讀
- Jonathan de Boyne Pollard (2001,2012) “主要”和“次要”DNS 伺服器。. 經常給出答案。
- 喬納森·德博因·波拉德 (2004)。“Round Robin”資源記錄集洗牌的無用之處。經常給出答案。