網域名稱系統 (DNS) 用戶端電腦可以使用動態更新,在每次發生變更時,就向 DNS 伺服器登錄及動態更新其資源記錄。這可以降低手動管理區域記錄的需求,尤其是對經常移動或變更位置以及使用動態主機設定通訊協定 (DHCP) 來取得 IP 位址的用戶端。
DNS 用戶端服務及 DNS 伺服器服務支援使用動態更新,如要求建議 (RFC) 2136<網域名稱系統中的動態更新 (DNS UPDATE)>(可能為英文網頁) 所述。DNS 伺服器服務允許在設定為載入標準主要或目錄整成區域的每台伺服器上,針對每個區域個別啟用或停用動態更新。根據預設,設定 TCP/IP 的 DNS 用戶端服務時,此服務會動態更新 DNS 中的主機 (A) 資源記錄。
用戶端及伺服器電腦如何更新它們的 DNS 名稱
根據預設,為 TCP/IP 靜態設定的電腦會嘗試針對其已安裝網路連線所設定和使用的 IP 位址,動態登錄主機 (A) 資源記錄以及指標 (PTR) 資源記錄。根據預設,所有電腦都會根據它們的完整網域名稱 (FQDN) 來登錄記錄。
主要的完整電腦名稱 (FQDN) 是根據附加在電腦名稱後面之電腦主要 DNS 尾碼而定。
其他考量:
-
根據預設,DNS 用戶端不會嘗試動態更新頂層網域 (TLD) 區域。以單一標籤名稱命名的任何區域都會視為 TLD 區域,例如 com、edu、blank、my-company。若要設定 DNS 用戶端允許動態更新 TLD 區域,您可以使用 [更新頂層網域區域] 原則設定,或是修改登錄。
-
根據預設,電腦 FQDN 的主要 DNS 尾碼部分與電腦所加入的 Active Directory 網域服務 (AD DS) 網域名稱相同。若要允許使用不同的主要 DNS 尾碼,網域系統管理員可以透過修改網域物件容器中的 msDS-AllowedDNSSuffixes 屬性,進而建立受限制的允許尾碼清單。網域管理員會使用 Active Directory 服務介面 (ADSI) 或輕量型目錄存取協定 (LDAP),來管理這個屬性。
發生下列任何原因或事件,便會傳送動態更新:
-
已在所有已安裝網路連線的 TCP/IP 內容設定中,新增、移除或修改 IP 位址。
-
已使用所以已安裝網路連線的 DHCP 伺服器,變更或更新 IP 位址租用。例如,在啟動電腦或使用 ipconfig /renew 命令時。
-
ipconfig /registerdns 命令是用來手動強制重新整理 DNS 中的用戶端名稱登錄。
-
電腦開機啟動時。
-
成員伺服器會升級成網路控制站。
當上述的其中一項事件觸發動態更新時,DHCP 用戶端服務 (不是 DNS 用戶端服務) 便會傳送更新。這樣的設計若是因 DHCP 而使 IP 位址資訊發生變更,就會執行 DNS 中的對應更新,以同步處理該台電腦的名稱到位址對應。DHCP 用戶端服務會為系統上所有的網路連線執行這項功能,包括未設定為使用 DHCP 的連線。
範例:動態更新如何運作
通常,在電腦上的 DNS 名稱或 IP 位址有所變更時,就會要求動態更新。例如,假設先以下列名稱,在 [系統內容] 中設定名為 oldhost 的用戶端。
電腦名稱 |
oldhost |
電腦的 DNS 網域名稱 |
tailspintoys.com |
完整電腦名稱 |
oldhost.tailspintoys.com |
在此範例中,該電腦並未設定任何連線特定的 DNS 網域名稱。將電腦從 oldhost 重新命名為 newhost 後,會發生下列系統名稱變更。
電腦名稱 |
newhost |
電腦的 DNS 網域名稱 |
tailspintoys.com |
完整電腦名稱 |
newhost.tailspintoys.com |
在 [系統內容] 中套用名稱變更後,就會提示您重新啟動電腦。當電腦重新啟動 Windows 時,DHCP 用戶端服務就會依序執行下列動作來更新 DNS。
-
DHCP 用戶端服務會使用電腦的 DNS 網域名稱,傳送起始點授權 (SOA) 類型查詢。
用戶端電腦會使用目前設定的電腦 FQDN (例如 newhost.tailspintoys.com),做為這個查詢中的指定名稱。
-
包含用戶端 FQDN 的區域授權 DNS 伺服器會回應 SOA 類型查詢。
在標準主要區域中,SOA 查詢回應會傳回固定且靜態的主要伺服器 (擁有者)。它會永遠與儲存在區域內之 SOA 資源記錄的實際 DNS 名稱相符。不過,如果正在更新的是目錄整合區域,則任何載入該區域的 DNS 伺服器都能回應,並可在 SOA 查詢回應中動態插入本身的名稱做為區域的主要伺服器 (擁有者)。
-
接著,DHCP 用戶端服務會嘗試與主要 DNS 伺服器連線。
用戶端會處理其名稱的 SOA 查詢回應,以判斷授權做為主要伺服器來接受用戶端名稱的 DNS 伺服器 IP 位址。接著,它會繼續執行連線及動態更新其主要伺服器所需的下列步驟順序:
-
它會將動態更新要求傳送到 SOA 查詢回應所判斷的主要伺服器。
如果更新成功,就不會採取任何動作。
-
如果更新失敗,用戶端接下來會傳送在 SOA 記錄中指定的區域名稱名稱伺服器 (NS) 類型查詢。
-
當用戶端收到此查詢的回應時,就會將 SOA 查詢傳送給回應中所列的第一台 DNS 伺服器。
-
完成解析 SOA 查詢後,用戶端會將動態更新傳送到傳回 SOA 記錄中指定的伺服器。
如果更新成功,就不會採取任何動作。
-
如果更新失敗,就會重複 SOA 查詢處理程序,將查詢傳送給回應中所列的下一台 DNS 伺服器。
-
它會將動態更新要求傳送到 SOA 查詢回應所判斷的主要伺服器。
-
與可執行更新的主要伺服器連線後,用戶端會傳送更新要求,然後伺服器便會處理該要求。
更新要求的內容包括以下指示:新增 newhost.tailspintoys.com 的主機 (A) (也可能是指標 (PTR)) 資源記錄,以及移除 oldhost.tailspintoys.com (先前登錄的名稱) 的這些相同記錄類型。
伺服器也會檢查以確認允許用戶端要求的更新。動態更新在標準主要區域並不安全;因此,任何嘗試更新的用戶端都能成功。對於 AD DS 整合區域,可以使用目錄型安全性設定來保護和執行更新。
定期傳送或重新整理動態更新。根據預設,電腦會每 7 天傳送重新整理一次。如果更新沒有造成區域資料的變更,則區域會維持目前的版本且不會寫入任何變更。只有在實際變更名稱或位址時,更新才會造成實際的區域變更或增加區域轉送。
當 DHCP 用戶端服務登錄電腦的主機 (A) 及指標 (PTR) 資源記錄時,會為主機記錄使用 15 分鐘的預設快取存留時間 (TTL)。這會決定當查詢回應中內含記錄時,其他 DNS 伺服器及用戶端快取電腦記錄的時間。
安全動態更新
只有與 AD DS 整合的區域才能使用 DNS 更新安全性。區域與目錄整合後,便可使用 [DNS 管理員] 中的存取控制清單 (ACL) 編輯功能,讓您在指定區域或資源記錄的 ACL 中,新增或移除使用者或群組
根據預設,DNS 伺服器及用戶端的動態更新安全性可以下列方式處理:
-
DNS 用戶端會先嘗試使用不安全的動態更新。如果不安全的更新遭到拒絕,用戶端就會嘗試使用安全的更新。
此外,除非特別封鎖更新安全性,否則用戶端會使用預設的更新原則,嘗試覆寫先前登錄的資源記錄。
-
區域成為 AD DS 整合區域後,執行 Windows Server® 2008 的 DNS 伺服器會預設為只允許安全動態更新。
使用標準區域存放裝置時,DNS 伺服器服務會預設為不允許對區域執行動態更新。對於目錄整合或使用標準檔案存放裝置的區域,您可以變更該區域,以允許所有動態更新,亦即允許接受所有更新。