DHCP 疑難排解指導
試用我們的虛擬代理程式 - 它可協助您快速識別並修正常見的 DHCP 問題。
裝置必須獲指派IP位址,才能在網路中運作。 您可以手動或自動指派 IP 位址。 自動指派是由動態主機設定通訊協定 (DHCP) 服務 (Microsoft 或第三方伺服器) 處理。
DHCP 是 RFC 1541 所定義的標準通訊協定(由 RFC 2131 取代)。 DHCP 可讓伺服器以動態方式將IP位址和組態資訊散發給用戶端。 DHCP 伺服器通常至少提供下列基本資訊給用戶端:
- IP 位址
- 子網路遮罩
- 預設閘道
- 其他資訊,例如功能變數名稱服務 (DNS) 伺服器位址和 Windows 因特網名稱服務 (WINS) 伺服器位址。 系統管理員會使用剖析至客戶端的選項來設定 DHCP 伺服器。
如需詳細資訊,請參閱 DHCP 基本概念。
疑難排解檢查清單
開始進行疑難解答之前,請先檢查下列專案。 這些項目可協助您找出問題的根本原因。
- 問題何時開始發生?
- 是否有任何錯誤訊息?
- DHCP 伺服器先前是否正常運作,或從未運作過? 如果先前運作過,請在問題開始之前執行任何變更。 例如,是否已安裝更新? 對基礎結構所做的變更嗎?
- 問題是否持續或間歇性? 如果它是間歇性的,它最後何時發生?
- 所有用戶端或只有特定客戶端發生位址租用失敗,例如單一範圍子網?
- 在與 DHCP 伺服器相同的網路子網上是否有任何用戶端?
- 如果客戶端位於相同的網路子網上,他們可以取得IP位址嗎?
- 如果用戶端不在相同的網路子網上,路由器或 VLAN 交換器是否已正確設定為具有 DHCP 轉送代理程式(也稱為 IP 協助程式)?
- DHCP 伺服器是否獨立或設定為高可用性,例如分割範圍或 DHCP 故障轉移?
- 檢查中繼裝置是否有 VRRP/HSRP、動態 ARP 檢查或 DHCP 探查等功能,已知會造成問題。
針對 DHCP 伺服器進行疑難解答
針對 DHCP 伺服器,請檢查下列裝置和設定:
- DHCP 伺服器服務已啟動並執行。 若要檢查此設定,請執行
net start
命令,並尋找 DHCP 伺服器。 - DHCP 伺服器已獲授權。 請參閱 加入網域案例中的 Windows DHCP 伺服器授權。
- 確認 DHCP 用戶端所開啟子網的 DHCP 伺服器範圍中是否有IP位址租用。 若要這樣做,請參閱 DHCP 伺服器管理控制台中適當範圍的統計數據。
- 檢查是否可以在 [位址租用] 區段中找到任何BAD_ADDRESS清單。
- 檢查網路上是否有任何裝置具有未從 DHCP 範圍排除的靜態 IP 位址。
- 確認 DHCP 伺服器所系結的 IP 位址位於必須從中租用 IP 位址的範圍子網內。萬一沒有可用的轉接代理程式,就會發生這種情況。 若要這樣做,請執行
Get-DhcpServerv4Binding
或Get-DhcpServerv6Binding
Cmdlet。 - 確認只有 DHCP 伺服器正在 UDP 連接埠 67 和 68 上接聽。 沒有其他進程或其他服務(例如 WDS 或 PXE)應該佔用這些埠。 若要這樣做,請執行
netstat -anb
命令。 - 如果您要處理 IPsec 部署的環境,請確認已新增 DHCP 伺服器 IPsec 豁免。
- 確認可以從 DHCP 伺服器 Ping 轉接代理程式 IP 位址。
- 列舉並檢查已設定的 DHCP 原則和篩選。
針對 DHCP 用戶端進行疑難解答
針對 DHCP 用戶端,請檢查下列裝置和設定:
- 纜線已連接且可運作。
- MAC 篩選會在用戶端所連接的交換器上啟用。
- 已啟用網路配接器。
- 已安裝並更新正確的網路適配器驅動程式。
- DHCP 用戶端服務已啟動並執行。 若要檢查此問題,請執行 net start 命令,並尋找 DHCP 用戶端。
- 用戶端計算機上沒有防火牆封鎖埠 67 和 68 UDP。
使用網路追蹤對 DHCP 進行疑難解答
確認 DHCP 用戶端和伺服器上的設定後,您可以使用 Wireshark 來檢查 DHCP DORA 程式是否已順利完成,或者是否有任何封包捨棄導致 DHCP 用戶端無法從伺服器取得 IP 位址。
收集網路追蹤的步驟
若要針對使用網路追蹤的 DHCP 問題進行疑難解答,請遵循下列步驟:
在受影響的 DHCP 用戶端和 DHCP 伺服器上安裝 Wireshark 。
以系統管理員身分在客戶端和伺服器上執行 Wireshark。
在Wireshark中按兩下 DHCP,選擇兩部裝置上用於 DHCP 的網路介面。
在客戶端和伺服器上以Wireshark啟動封包擷取。
重現問題。 觸發 DHCP 問題(例如,在用戶端上執行
ipconfig /renew
)。 等候失敗案例發生。使用Wireshark中的紅色按鈕,在兩個裝置上停止封包擷取。
選取 [檔案>另存新檔],將擷取的封包儲存到指定的位置。
套用 DHCP 篩選器以檢視 DHCP 交易:
在用戶端擷取上,套用 「dhcp」 的顯示篩選。
在伺服器擷取上,使用篩選條件 「dhcp.id == <交易標識碼>」來追蹤特定的用戶端交易。 您可以從用戶端擷取取得交易標識碼,並在伺服器端擷取的篩選中套用它。
分析 DHCP 交易:
- 檢查所有四個 DHCP 封包的用戶端擷取(DISCOVER、OFFER、REQUEST、ACK)。 如果都存在,DORA 程式可能會成功。
- 如果遺漏任何封包(例如,只有 DISCOVER 封包是可見的),表示可能會卸除。
識別網路卸除。 尋找網路下降的這些指標:
- 用戶端擷取會顯示 DISCOVER 封包,但伺服器擷取不會。
- 用戶端擷取會顯示 DISCOVER 封包,而伺服器會顯示已傳送供應專案,但用戶端上看不到任何供應專案。
- 用戶端擷取會顯示 DISCOVER、OFFER 和 REQUEST,但伺服器只會顯示 DISCOVER 和 OFFER。
- 用戶端擷取會顯示 DISCOVER、OFFER 和 REQUEST,但伺服器會顯示已完成的所有四個封包(DISCOVER、OFFER、REQUEST、ACK),且用戶端上未看到 ACK。
確認卸除之後,請讓網路小組調查並解決卸除問題。
這些步驟可確保使用Wireshark進行徹底的疑難解答,以找出 DHCP 通訊中斷的位置,協助更快速地解決 DHCP 設定或網路問題。
協力廠商資訊免責聲明
本文提及的協力廠商產品是由與 Microsoft 無關的獨立廠商所製造。 Microsoft 不以默示或其他方式,提供與這些產品的效能或可靠性有關的擔保。
資料收集
在連絡Microsoft支援之前,您可以收集問題的相關信息。
必要條件
- TSS 必須由本機系統上具有系統管理員許可權的帳戶執行,而且必須接受 EULA(一旦接受 EULA,TSS 將不會再次提示)。
- 我們建議本機電腦
RemoteSigned
PowerShell 執行原則。
注意
如果目前的 PowerShell 執行原則不允許執行 TSS,請採取下列動作:
- 執行 Cmdlet
PS C:\> Set-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned
來RemoteSigned
設定進程層級的執行原則。 - 若要確認變更是否生效,請執行 Cmdlet
PS C:\> Get-ExecutionPolicy -List
。 - 因為進程層級許可權僅適用於目前的 PowerShell 工作階段,一旦指定的 PowerShell 視窗在 TSS 執行時關閉,進程層級的指派許可權也會回到先前設定的狀態。
在連絡Microsoft支援之前收集重要資訊
在所有節點上下載 TSS ,並將它解壓縮到 C:\tss 資料夾中。
從提升許可權的 PowerShell 命令提示字元開啟 C:\tss 資料夾。
使用下列 Cmdlet 在用戶端和伺服器上啟動追蹤:
用戶端:
TSS.ps1 -Scenario NET_DHCPcli
伺服器:
TSS.ps1 -Scenario NET_DHCPsrv
如果追蹤第一次在伺服器或用戶端上執行,請接受EULA。
允許錄製 (PSR 或視訊)。
輸入 Y 之前重現問題。
注意
如果您在用戶端和伺服器上收集記錄,請在這兩個節點上等候此訊息,再重現問題。
輸入 Y 以在重現問題之後完成記錄收集。
追蹤會儲存在 C:\MS_DATA 資料夾中的 zip 檔案中,以便上傳至工作區進行分析。
參考
事件記錄檔
檢查 System 和 DHCP Server 服務事件記錄檔(應用程式和服務記錄>Microsoft>Windows>DHCP-Server),以取得與觀察到的問題相關的回報問題。
根據問題的種類,事件會記錄到下列其中一個事件通道:
DHCP 伺服器記錄
DHCP 伺服器服務偵錯記錄檔會提供有關 IP 位址租用指派的詳細資訊,以及 DHCP 伺服器完成的 DNS 動態更新。 根據預設,這些記錄位於 %windir%\System32\Dhcp 中。
如需詳細資訊,請參閱分析 DHCP 伺服器記錄檔。