Unable to obtain IP address from Windows DHCP in Linux-based VMs on XenServer
Having recently downloaded and installed the CitrixVDI-in-a-box Kaviza appliance in the lab, I spent several hours unable to start using it as it refused to obtain an IP address from my lab Windows 2008R2 DHCP server (that was another VM running on the same internal virtual network)
After lots of research and forum reading I eventually traced this down to a TCP offload problem in the Windows 2008 VM causing corruption of UDP broadcast packages. The error that is reported is “5 bad UDP checksums in 5 packets”
Despite first seeing the issue in the Kaviza appliance VM, I managed to reproduce it using the basic “Linux demo” VM template so it looks like this would apply to other Linux distributions too.
Identifying the problem
There’s a difference in behaviour from not receiving a response from any DHCP server, and the problem I’m describing in this blog post.
When nothing responds to the broadcast:
And when the response is corrupted:
To fix, create a reg key on the Windows 2008 DHCP server to disable TCP offload:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters
DisableTaskOffload (REG_DWORD) = 1
and reboot. When the server comes back, this should then be the behaviour:
Note: To force the Kaviza appliance to re-broadcast for a DHCP IP address use the command “sudo dhclient eth0”
So, we now have working DHCP, and then log into the Kaviza management web console to continue configuring the appliance (the subject of a future blog post!)
Leave a comment
You must be logged in to post a comment.
One Comment
Leave a commentTrackbacks and Pingbacks