How to Configure High Availability for DHCP with DHCP Failover on Windows Server 2016
DHCP (Dynamic Host Configuration Protocol) is a critical network service — when it fails, new devices cannot obtain IP addresses and existing leases eventually expire, causing network outages. Windows Server 2016 includes DHCP Failover, a feature that allows two DHCP servers to share address lease information and provide redundancy for DHCP services. Unlike older approaches that required manual scope splitting or Active Directory-integrated hot-standby, DHCP Failover provides automatic synchronization of the lease database between two servers and configurable load balancing or hot-standby operation modes.
DHCP Failover supports two modes. In Load Balance mode, both servers actively respond to DHCP requests, sharing the load according to a configured percentage split (commonly 50/50). This utilizes both servers and provides immediate failover if one goes down. In Hot Standby mode, one server is active and the other is passive, taking over only when the primary fails. Hot Standby is simpler to reason about but wastes the standby server’s capacity. Both modes synchronize the lease database so clients can renew with either server seamlessly.
Prerequisites
Install the DHCP Server role on both servers that will participate in failover. Both servers must be joined to the same Active Directory domain:
Install-WindowsFeature DHCP -IncludeManagementTools
Authorize both DHCP servers in Active Directory (must be done as a Domain or Enterprise Admin):
Add-DhcpServerInDC -DnsName "DHCP1.corp.local" -IPAddress 192.168.1.11
Add-DhcpServerInDC -DnsName "DHCP2.corp.local" -IPAddress 192.168.1.12
Verify both servers are authorized:
Get-DhcpServerInDC
Creating a DHCP Scope on the Primary Server
Create a DHCP scope on the primary server if one does not already exist. The failover relationship will replicate the scope to the secondary server:
Add-DhcpServerv4Scope -ComputerName "DHCP1.corp.local" -Name "LAN Scope" -StartRange 192.168.1.100 -EndRange 192.168.1.200 -SubnetMask 255.255.255.0 -State Active
Configure scope options such as default gateway and DNS servers:
Set-DhcpServerv4OptionValue -ComputerName "DHCP1.corp.local" -ScopeId 192.168.1.0 -Router 192.168.1.1 -DnsServer 192.168.1.5,192.168.1.6 -DnsDomain "corp.local"
Configure the lease duration:
Set-DhcpServerv4Scope -ComputerName "DHCP1.corp.local" -ScopeId 192.168.1.0 -LeaseDuration (New-TimeSpan -Hours 8)
Configuring DHCP Failover in Load Balance Mode
Create a failover relationship from the primary DHCP server. The PartnerServer parameter specifies the secondary server. A shared secret is used for authentication between the servers:
Add-DhcpServerv4Failover -ComputerName "DHCP1.corp.local" -Name "DHCP-Failover" -PartnerServer "DHCP2.corp.local" -ScopeId 192.168.1.0 -LoadBalancePercent 50 -SharedSecret "DHCPSecret@2016" -AutoStateTransition $true -MaxClientLeadTime (New-TimeSpan -Hours 1)
The MaxClientLeadTime is a safety margin that prevents lease expiry during a controlled failure state. The AutoStateTransition parameter enables automatic transition to partner-down state when the primary cannot reach the secondary, allowing the surviving server to serve the entire address pool.
Verify the failover relationship was created:
Get-DhcpServerv4Failover -ComputerName "DHCP1.corp.local"
Configuring DHCP Failover in Hot Standby Mode
To configure Hot Standby mode instead, specify the Mode parameter and a reserve percentage (the percentage of the address pool reserved for the standby server when the primary is down):
Add-DhcpServerv4Failover -ComputerName "DHCP1.corp.local" -Name "DHCP-Standby" -PartnerServer "DHCP2.corp.local" -ScopeId 192.168.1.0 -Mode HotStandby -ServerRole Active -ReservePercent 5 -SharedSecret "DHCPSecret@2016" -AutoStateTransition $true
Replicating Scopes to the Partner
After creating the failover relationship, replicate the scope configuration to the partner server:
Invoke-DhcpServerv4FailoverReplication -ComputerName "DHCP1.corp.local" -Name "DHCP-Failover" -Force
Replicate all scopes in the failover relationship:
Invoke-DhcpServerv4FailoverReplication -ComputerName "DHCP1.corp.local" -Force
Monitoring and Managing DHCP Failover
Check the current state of the failover relationship. The State should show Normal when both servers are communicating properly:
Get-DhcpServerv4Failover -ComputerName "DHCP1.corp.local" | Select-Object Name,State,PartnerServer,Mode,LoadBalancePercent
View lease statistics for both servers to verify load is being distributed:
Get-DhcpServerv4ScopeStatistics -ComputerName "DHCP1.corp.local" -ScopeId 192.168.1.0
Get-DhcpServerv4ScopeStatistics -ComputerName "DHCP2.corp.local" -ScopeId 192.168.1.0
Remove the failover relationship if reconfiguration is needed:
Remove-DhcpServerv4Failover -ComputerName "DHCP1.corp.local" -Name "DHCP-Failover" -Force
DHCP Failover on Windows Server 2016 is a straightforward way to eliminate a single point of failure in IP address management. For most environments, Load Balance mode is recommended as it provides both redundancy and uses both servers actively. Ensure the shared secret is strong and stored securely, as it protects the DHCP lease data exchanged between servers. Regularly monitor the failover relationship state and set up alerting for any transition out of Normal state to catch communication failures between the DHCP servers before they impact network availability.