技術文章 · IT 指令工具箱

Windows DHCP Failover:同步、Partner Down 與拿不到 IP 排錯

整理 Windows DHCP Failover 建立、狀態、TCP 647、設定複寫、DNS credentials、scope 滿載與 Communications Interrupted 排查指令。

作者 Steve Chen · 發布  · 約 9 分鐘閱讀

IT 指令工具箱 — 廷皓技術專欄插圖

DHCP Failover 不是把兩台 server 各建一份相同 scope。兩台以 relationship 同步 lease 與設定;變更 scope 後還要從正確來源主動複寫,方向選錯會覆蓋 partner。

20 組範例Windows Server 2019/2022/2025DHCPv4 Failover查核日期:2026-08-11
動手前:Partner Down 會改變可用位址與 ownership,錯判可能造成重複租約。先確認對方真的故障、時間同步與網路隔離狀態;本頁不提供未確認情境下強制 Partner Down 的快捷指令。

關係與狀態盤點

列出 Failover relationship系統管理員 PowerShell

Get-DhcpServerv4Failover -ComputerName DHCP01 | Format-List Name,PartnerServer,Mode,State,ScopeId,AutoStateTransition,StateSwitchInterval

確認每個 scope 只屬於預期 relationship。

查看單一 relationship 全部屬性PowerShell

Get-DhcpServerv4Failover -ComputerName DHCP01 -Name 'DHCP-HA' | Format-List *

比較兩台看到的 state 與時間。

比較兩台 ScopePowerShell

Get-DhcpServerv4Scope -ComputerName DHCP01; Get-DhcpServerv4Scope -ComputerName DHCP02

確認 ScopeId、State、範圍與名稱一致。

比較 Scope optionPowerShell

Get-DhcpServerv4OptionValue -ComputerName DHCP01 -ScopeId 192.168.50.0; Get-DhcpServerv4OptionValue -ComputerName DHCP02 -ScopeId 192.168.50.0

變更後最常漏同步的是 option、reservation 與 policy。

查看兩台 Scope 用量PowerShell

Get-DhcpServerv4ScopeStatistics -ComputerName DHCP01; Get-DhcpServerv4ScopeStatistics -ComputerName DHCP02

用量不應只看單台當下回覆數。

測 Failover TCP 647PowerShell

Test-NetConnection DHCP02.corp.example -Port 647

要從 DHCP01 及反方向各測一次。

比較兩台時間系統管理員 CMD

w32tm /monitor /computers:DHCP01,DHCP02

Failover 對時間差敏感,先修時間階層。

建立與同步

建立 Load Balance relationship系統管理員 PowerShell

$secret=Read-Host 'Failover shared secret'; Add-DhcpServerv4Failover -ComputerName DHCP01 -Name 'DHCP-HA' -PartnerServer DHCP02.corp.example -ScopeId 192.168.50.0 -LoadBalancePercent 50 -SharedSecret $secret

先備份兩台並確認 partner 沒有同 ScopeId 的獨立 scope。

建立 Hot Standby relationship系統管理員 PowerShell

$secret=Read-Host 'Failover shared secret'; Add-DhcpServerv4Failover -ComputerName DHCP01 -Name 'Branch-HA' -PartnerServer DHCP02.corp.example -ScopeId 192.168.60.0 -ServerRole Active -ReservePercent 5 -SharedSecret $secret

ReservePercent 與 MCLT 要依斷線時間與容量規劃。

從正確來源複寫設定系統管理員 PowerShell

Invoke-DhcpServerv4FailoverReplication -ComputerName DHCP01 -Name 'DHCP-HA'

DHCP01 的 scope 設定會覆蓋 partner;方向不能猜。

複寫單一 Scope系統管理員 PowerShell

Invoke-DhcpServerv4FailoverReplication -ComputerName DHCP01 -ScopeId 192.168.50.0

先確認這台才是你要保留的設定來源。

查看 DNS update credentials系統管理員 PowerShell

Get-DhcpServerDnsCredential -ComputerName DHCP01

兩台 Failover partner 應使用相同 DNS credentials。

查看 DHCP 資料庫PowerShell

Get-DhcpServerDatabase -ComputerName DHCP01; Get-DhcpServerDatabase -ComputerName DHCP02

確認 audit logging、backup path 與資料庫位置。

Communications Interrupted 與用戶端故障

查 DHCP Failover 事件PowerShell

Get-WinEvent -LogName 'Microsoft-Windows-Dhcp-Server/Operational' -MaxEvents 100 | Where-Object Message -Match 'failover|partner|communication'

兩台各查一次;HA log 不會自動合併。

查 DHCP Server 管理事件PowerShell

Get-WinEvent -LogName 'Microsoft-Windows-Dhcp-Server/Admin' -MaxEvents 100

對照 service、database、authorization 與 failover 時間。

確認 DHCP servicePowerShell

Get-Service -ComputerName DHCP01 -Name DHCPServer; Get-Service -ComputerName DHCP02 -Name DHCPServer

遠端查詢也需要 RPC/權限;失敗不代表 service 一定停止。

確認 AD 授權PowerShell

Get-DhcpServerInDC

Failover 兩台在網域環境都應正確授權。

列出 Declined leasePowerShell

Get-DhcpServerv4Lease -ComputerName DHCP01 -ScopeId 192.168.50.0 -BadLeases

大量 declined 要查重複 IP、relay 與 rogue DHCP。

匯出故障當下租約系統管理員 PowerShell

Export-DhcpServer -ComputerName DHCP01 -File C:\DHCPBackup\incident.xml -ScopeId 192.168.50.0 -Leases -Force

取證與回復使用,檔案含內網與裝置資訊。

用戶端更新租約系統管理員 CMD(用戶端)

ipconfig /renew

只在已確認 DHCP 路徑恢復後測;遠端工作站可能斷線。

怎麼確認有做對

  • 兩台 relationship 顯示 Normal,Scope、Option、Reservation 與 lease 可同步。
  • 從兩個 VLAN 實測新租約與續租,兩台 audit log 都能對上。
  • 中斷測試只在隔離或核准維護窗執行,並驗證復原後回到 Normal。

常見錯誤

  • 把兩台 DHCP 各自手動建相同 scope 當 HA。
  • 在錯的 partner 上按 Replicate,覆蓋正確設定。
  • 看到 Communications Interrupted 就立刻 Partner Down。
  • 忘記 Failover 只支援 DHCPv4,拿它解釋 DHCPv6。

常見問題

Communications Interrupted 可以直接切 Partner Down 嗎?

不能只看狀態字樣。先確認 partner 真正離線、不是兩台彼此隔離,並評估 MCLT 與 lease ownership;雙方都誤判可能發出重複位址。

改完 Reservation 為什麼另一台沒有?

Failover relationship 不代表每項設定都即時自動複寫。從保有正確設定的 server 主動 Replicate,再到 partner 回查。

延伸閱讀

版本與官方文件

參數會隨工具版本與作業系統實作改變。正式環境先用 --help、-h 或系統內建說明確認,再以當版官方文件為準。

常見問題

Communications Interrupted 可以直接切 Partner Down 嗎?

不能只看狀態字樣。先確認 partner 真正離線、不是兩台彼此隔離,並評估 MCLT 與 lease ownership;雙方都誤判可能發出重複位址。

改完 Reservation 為什麼另一台沒有?

Failover relationship 不代表每項設定都即時自動複寫。從保有正確設定的 server 主動 Replicate,再到 partner 回查。

聯絡廷皓討論 看更多文章