Hyper-V Program Manager
In my house I have all of my computers and sundry network connected devices configured to use DHCP. For devices that need to have static IP addresses I use DHCP reservations.
The reason why I do this is that it gives me a single place to look at my entire network configuration, and it allows me to make major network configuration changes easily.
A couple of weeks ago used SCVMM to quick migrate my FTP server from one Hyper-V server to another. Everything appeared to work correctly. But two days later I could no longer access the FTP server from an external computer.
After a bit of investigation I discovered that the virtual machines MAC address had changed, which had stopped my DHCP reservation from working, which had in turn stopped my port forwarding configuration on my router from working.
To figure out why this appeared to work at first and then later failed I needed to talk to our developers about when and why dynamic MAC addresses get regenerated in Hyper-V.
Before I explain the root cause – let me define some terms / concepts:
A dynamic MAC address will get regenerated if:
Some more notes about dynamic MAC address regeneration:
So in my situation – my FTP server was moved to a Hyper-V server with a different MAC address range. Because the FTP server came across in a saved state; Hyper-V did not regenerate the MAC address until the first time the virtual machine rebooted. This is why everything appeared to work immediately after the virtual machine was moved – but then stopped working a couple of days later.
Cheers, Ben
This is a great feateer but is there an equivilent in MED-V? We have all of our MED-V images generated from Virtual PC using bridged mode to enable no NAT communications but are struggling to find a consistent range of MAC addresses used by Virtual PC so we can map DHCP reservaqtions to the MED-V workspaces.
Good call... running multiple Hyper-V clusters here with various applications whose licenses are bound to the MAC address of the VM. Moving VMs from host to host within the cluster was not an issue, until the VM was restarted.
Thanks for this post Ben. This problem has caused many problems in my environment. Glad we know why this occurs now.