Domain-Name-System
如何確保主 DNS 伺服器之間的 DNS 記錄一致性?
根 DNS 伺服器可能是最典型的主(非只讀)DNS 伺服器。目前有 13 個用於根 DNS 伺服器的 IP 地址;但是,考慮到 IP 任播技術,全球部署了超過 13 個根 DNS 伺服器。
如果有人想要更新所有根 DNS 伺服器的 DNS 記錄,那麼所有這些 DNS 伺服器之間是否存在某種同步或複制機制?
更複雜的是,如果兩個人要同時更新同一個DNS記錄,DNS是如何解決潛在衝突的呢?
例如,人
A
將 DNS 記錄更新r1
為r2
ona.root-servers.net.(deployed at region A)
,同時,人B
將同一 DNS 記錄更新r1
為r3
ona.root-servers.net.(deployed at region B)
;region A
此外,假設和之間存在顯著的網路延遲region B
。第二個問題類似於數據庫集群,存在多個主數據庫伺服器,這些主伺服器同步所有其他主伺服器的數據。
回答您的第一個問題:“如何在 TLD DNS 伺服器之間同步 DNS 區域”
根 DNS 伺服器和 TLD DNS 機制與較低級別的普通 DNS 伺服器非常不同。簡而言之,每個 TLD 都有自己的機制來保持伺服器同步。他們可能使用區域傳輸,或者他們可能有非常具體的腳本來在所有節點之間同步和錯誤檢查區域數據。
對於您的第二個問題:“DNS 如何防止衝突更新”
這在普通 DNS 協議中通過一個 DNS 主機來處理,該主機將接收或更改區域數據,但其餘的 DNS 從機將無權更改任何內容。此外,區域更改通過 SOA 記錄中的序列號進行跟踪。權威 DNS 伺服器使用此資訊來確定它們是否“落後”並需要獲取該區域的新副本。
由於給定區域實際上只有 1 個主控,因此不可能有衝突的更改。