共用方式為


當 DHCP 伺服器停止傳送選項 81 時,用戶端電腦不會傳送 DDNS 更新

本文可協助解決當動態主機設定通訊協定 (DHCP) 伺服器停止傳送 DHCP 回應之 DHCPREQUEST (REQ) 和 DHCPACK (ACK) 封包中的選項 81 (也稱為用戶端完整域名 #FQDN) 選項時,Windows 用戶端電腦不會傳送動態功能變數名稱系統 (DNS) 更新的問題。

您有一部 DHCP 伺服器,可將 IP 位址租用給用戶端電腦,而且您已從 DHCP 伺服器端啟用選項 81 組態。 選項 81 已設定為針對傳入 DHCP 用戶端要求執行動態 DNS (DDNS) 更新。 使用此設定時,DHCP 伺服器會針對用戶端執行 DDNS 更新,並一律將選項 81 傳回用戶端。

注意

DHCP 伺服器上的組態設定如下:

  • 一律動態更新 DNS 記錄
  • 刪除租用時捨棄 A 和 PTR 記錄
  • 動態更新未要求更新之 DHCP 用戶端的 DNS 記錄(例如,執行 Windows NT 4.0 的用戶端)

用戶端計算機會持續執行,並持續執行 REQ-ACK 進程(未完成 DORA 程式),以根據 DHCP 租用時間進行 IP 位址租用擴充功能。 在理想情況下,DHCP 更新會在租用期間的 50% 和 87.5% 發生。

注意

DORA 代表 [探索]、[供應專案]、[要求] 和 [認可]。

當 DHCP 伺服器停止傳送選項 81 時,用戶端電腦會假設 DHCP 伺服器仍在處理 DDNS 更新,而且不會如預期般觸發更新本身。 即使您重新啟動用戶端電腦(考慮租用尚未過期),用戶端計算機也不會在 REQ-ACK 封包上執行 DDNS 更新。

因此,不會填入 DNS 記錄,因為 DHCP 伺服器和用戶端電腦都不會更新記錄。 如果已啟用 DNS 清除,可能會刪除受影響電腦的記錄。

用戶端電腦未收到選項 81 並依賴快取

用戶端電腦會更新並快取從 ACK 框架內 DHCP 伺服器收到的 DHCP 選項 81 組態。 每次附加選項 81 的 DHCP 伺服器傳回 ACK 時,就會發生此更新。 此快取會儲存在下列登入值中:

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{Interface GUID}\DCHPInterfaceOptions

重要

請勿對此登錄進行任何變更,因為登錄包含不應手動變更的資訊。

用戶端電腦不會收到選項 81,因此沒有任何專案可更新並完全依賴快取。

用戶端電腦必須執行完整的 DORA 程式

若要修正此問題,用戶端計算機必須執行完整的 DORA 程式來更新快取。 DORA 程式可由下列其中一種方法起始:

  • 讓客戶端電腦的IP位址過期。 例如,關閉租用期間的作業系統。
  • ipconfig /release在機器上執行和 ipconfig /renew 命令。
  • 執行腳本來設定裝置,以使用 ipconfig /registerdns 命令手動註冊 DNS。

診斷和記錄收集

若要識別您遇到問題,請遵循下列步驟:

  1. 在有問題的用戶端電腦上,在 事件檢視器 中啟用下列事件記錄:

    應用程式和服務記錄>Microsoft>Windows>Dhcp-Client>Microsoft-Windows-DHCP 用戶端事件/操作

  2. 開啟之後,請開啟提升許可權的命令提示字元視窗,然後執行下列命令:

    ipconfig /renew
    

    然後,某些事件將會在 Dhcp-Client>Microsoft-Windows-DHCP 用戶端事件/操作產生。

  3. 搜尋事件識別碼 50042,其工作類別目錄為 DNS 狀態事件。 此事件會提供 DNS 旗標值。

  4. 如果 DNS 旗標值設定為 64,表示用戶端電腦不會傳送動態更新本身,而是依賴 DHCP 伺服器。

    當 DHCP 伺服器未傳回選項 81 時,登錄快取可能會造成值 64。

    在某些情況下,值 64 可能也會指出 DHCP 伺服器回應選項 81,這會覆寫客戶端選項:

    此螢幕快照顯示 DHCP 伺服器回應選項 81,並覆寫客戶端選項。

    本文修正了快取所造成值 64 而不是 DHCP 伺服器回應的問題。

收集追蹤記錄

若要診斷問題,請使用 netsh收集網路追蹤:

  1. 開啟提升許可權的 Windows 命令提示字元。

  2. 執行下列命令來啟動網路追蹤:

    Netsh trace start overwrite=yes persistent=yes traceFile=C:\DDNSTrace.etl capture=yes report=disabled maxSize=16000 provider={1C95126E-7EEA-49A9-A3FE-A378B03DDB4D} keywords=0xffffffffffffffff level=0xff provider= {1540FF4C-3FD7-4BBA-9938-1D1BF31573A7} keywords=0xffffffffffffffff level=0xff provider= {9CA335ED-C0A6-4B4D-B084-9C9B5143AFF0} keywords=0xffffffffffffffff level=0xff provider= {609151DD-04F5-4DA7-974C-FC6947EAA323} keywords=0xffffffffffffffff level=0xff provider= {76325CAB-83BD-449E-AD45-A6D35F26BFAE} keywords=0xffffffffffffffff level=0xff provider={A7B8B859-D00E-45CC-85B8-89EA5D015C62} keywords=0xffffffffffffffff level=0xff provider={CFAA5446-C6C4-4F5C-866F-31C9B55B962D} keywords=0xffffffffffffffff level=0xff provider={CA030134-54CD-4130-9177-DAE76A3C5791} keywords=0xffffffffffffffff level=0xff provider="Microsoft-Windows-DNS-Client" keywords=0xffffffffffffffff level=0xff provider="Microsoft-Windows-Dhcp-Client" keywords=0xffffffffffffffff level=0xff provider={CC3DF8E3-4111-48d0-9B21-7631021F7CA6} keywords=0xffffffffffffffff level=0xff
    
  3. 執行以下命令:

    ipconfig /renew
    
  4. 執行下列命令來停止網路追蹤:

    netsh trace stop