Domain-Name-System

當我更改區域文件或 DNS 設置中的名稱伺服器記錄或 A 記錄時會發生什麼?

  • June 27, 2018

我真的不明白網際網路和 DNS 是如何工作的。當我試圖在維基百科上閱讀它時,我被我不理解的術語所淹沒。我沒有電腦科學背景。

將名稱伺服器記錄從 ns1.oldserver.com 更改為 ns1.newserver.com 時,實際發生了什麼?我的意思是,什麼“機器”或事物負責將使用者的 url 查詢從 ns1.oldserver.com 引導到 ns1.newserver.com?使用者怎麼會知道再也不會訪問 ns1.oldserver.com?

同樣,當我將域的 A 記錄更改為從舊 IP 地址指向新 IP 地址時,實際發生了什麼?它與更改名稱伺服器記錄相同嗎?

謝謝

記錄是從父名稱伺服器委託的——它就像一個鏈(或通常描述為一棵逆樹)。每個 DNS 客戶端都知道根伺服器的 IP 地址——這些是一組伺服器(我認為是 13 個),它們提供註冊機構伺服器的 IP 地址 - Nominet 用於 .uk,eurID 用於 .eu 等。

然後,您的域將在具有您的名稱伺服器地址的系統資料庫中註冊(在您的範例中為 ns1.oldserver.com)。最後,您的域的名稱伺服器(或至少應該有兩個名稱伺服器)為實際請求提供服務。

例如,假設客戶想要訪問 www.domain.com

這可以分為三個部分 - 所謂的頂級域 (TLD),客戶端在此範例中向根伺服器查詢 - .com。提供此服務的名稱伺服器之一可能是 a.gtld-servers.net - 根伺服器會將 a.gtld-servers.net 的 IP 地址提供給客戶端 - 這些被稱為 NS 和粘合記錄。

接下來是實際的域 - 本範例中的 domain.com。客戶端在 a.gtld-servers.com 中查詢 domain.com。然後,這可能會返回帶有相關 IP 地址的 ns1.domain.com 和 ns2.domain.com 作為 NS 和粘合記錄。

最後是主機名 - 本範例中的 www。因此,客戶端將在 ns1.domain.com 或 ns2.domain.com 中查詢域 www.domain.com,並返回網站的實際 IP 地址(A 記錄)。

所有這一切都在幾毫秒內發生。DNS 解析器的典型超時為 2 秒。

回到您原來的問題,當您更改名稱伺服器時,您正在更改系統資料庫級別的 NS 記錄(Nominet、eurID 等)。更改完成後,當客戶端查詢 domain.com 的根伺服器時,它將獲得 ns1.newserver.com 的 IP 地址,而不是 ns1.oldserver.com。

世界各地的所有客戶通常需要長達 72 小時才能注意到更改,因為它們會在域記錄中指定的時間長度內記憶體所有結果。NS 記錄通常會記憶體 72 小時甚至長達一周。因此,在進行更改後至少幾天內不要讓您的舊名稱伺服器離線。

更改 A 記錄與更改 NS 記錄非常相似——您只是更改內容,就像更改數據庫記錄一樣。下次有人查詢您的記錄時,它將獲得新值(再次考慮記憶體,但對於 A 記錄來說要低得多,通常為 1/2 - 1 天。)

如果您可以訪問 Linux 機器,請執行 dig +trace www.google.com,您將看到完整的查詢鏈,這可能會給您一個更好的主意。

引用自:https://serverfault.com/questions/116359