DHCP Failover 不是把兩台 server 各建一份相同 scope。兩台以 relationship 同步 lease 與設定;變更 scope 後還要從正確來源主動複寫,方向選錯會覆蓋 partner。
關係與狀態盤點
列出 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,DHCP02Failover 對時間差敏感,先修時間階層。
建立與同步
建立 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 $secretReservePercent 與 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-DhcpServerInDCFailover 兩台在網域環境都應正確授權。
列出 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 回查。