I ran into an interesting little issue whilst performing a 2003 to 2012 DHCP Migration over the weekend.
The issue was around the failover relationship created between the two 2012 servers.
This may or may not be applicable to your environment during a migration but certainly applicable if the IP Address of the servers changes at any point AFTER the migration.
The issue occurs if a failover relationship is created and the servers IP address is then changed. It doesn’t dynamically update based on DNS record or Server hostname.
For my scenario we are re-using the old 2003 IP address on the 2012 servers (due to IP helper addresses configured on all switches on the estate, and work involved in getting those changed).
I configured the DHCP Failover between the two 2012 Servers, all scopes copied across fine to the standby DHCP Server, after this I then created a test scope and that also copied fine.
Happy days I thought… I then proceed to disable the NIC on the old 2003 server, and change the IP Address on the 2012 server.
Not thinking this would cause any issues, I proceeded to start to write up and document the migration progress.
It’s only when I got to the stage of writing a quick “how to guide” that when I tried to replicate a test scope from Master to Slave DHCP Server I received an error….
“Server state is not normal”…
Checking the Failover status I could see both servers were set to the state of “partner down”….
Rebooted both DHCP servers, (master then standby) and still the same status. I could ping both servers fine, telnet was open on port 647 which is required for scope replication.
Very strange… A quick search flagged up no issues, so all that was left was to investigate further.
It was only when I was looking through the Event logs (Applications and Services> Microsoft> Windows> Microsoft-Windows-DHCP Server Events/Admin” I found the following:
“Server has established contact with failover partner server 220.127.116.11 for relationship DHCPSERVER1_DHCPSERVER2_FAILOVER .”
Which OK that’s fine because when I created it that was the correct IP address. As I looked further up I then found the following:
Server has lost contact with failover partner server 18.104.22.168 for relationship DHCPSERVER1_DHCPSERVER2_FAILOVER.
Obviously that IP is no longer assigned to the second server, which means the failover does not dynamically update itself or update the failover relationship based on IP in DNS for the server hostname. Instead it will continue to communicate on the IP address which was active at the time of configuration.
The failover state of server: DHCPSERVER1 for failover relationship: DCHPSERVER1_DHCPSERVER2_FAILOVER changed from: COMMUNICATION_INT to PARTNER_DOWN.
I’ve had a look through the GUI and PowerShell options but there is no way to update the failover relationship IP address. Which is a bit of a pain as you have to remove the failover (you will most likely need to use the -force command via PowerShell) due to the servers not being able to communicate (or you assign the nic the old IP address).
It’s then the standard process of re-creating the failover again… this time with the new IP address and since then it’s been smooth sailing…
Server has established contact with failover partner server 22.214.171.124 for relationship DHCPSERVER1_DHCPSERVER2_Failover .