I ran into a problem with Hyper-V networking that I wanted to share with the online community. As is usually the case, the solution is simple once you understand the problem!
Disable Large Send Offload (LSO) on network adapters to solve performance/connectivity problems.
I was preparing to set up a new virtual SharePoint 2013 farm on my Dell Precision T7500 machine. I wanted to try out the new enhanced session mode in Hyper-V, so I loaded Server 2012 R2 as the base operating system. Everything was working well until I started up Hyper-V and loaded a virtual machine with Server 2012 R2.
I like to use Network Address Translation (NAT) so my guest virtual machines can access the internet. I use the Routing and Remote Access (RRAS) feature of Windows Server host OS to accomplish this. It has worked very well for me in Server 2008 R2. In this case, however, as soon as I configured NAT and started the guest OS, I experienced severe network performance problems. I couldn’t run Windows Update from the guest OS. This was puzzling, as we have any number of machines running this combination on a number of different computers in our classrooms and had never experienced this issue before.
I decided to try to load on another machine, a laptop with both wired and wireless network adapters, to see if I could duplicate the problem. Here the situation got even more strange. The guest OS performed flawlessly when NAT was configured to use the wireless network, but bombed completely on the wired network. In fact, I was starting to see disconnect/reconnect issues in the System event log that looked like the following:
Warning [DateTime] e1iexpress 27
followed by another message from e1iexpress with a higher number indicating a reconnection had occurred.
After spending way too much time reading through problems with network adapters based on different drivers, loading/unloading different drivers, trying different network cables, etc. I stumbled on a post that talked about potential problems with Hyper-V networking. The solution is to disable the Large Send Offload (LSO) feature on the guest and, potentially, on the host operating systems if it is enabled. Problem solved.
- On the client OS, open Device Manager (on Server 2012 R2, right-click ‘This PC’, choose Properties, then click ‘Device Manager’).
- In Device manager, expand the Network Adapters section.
- Right-click the adapter named ‘Microsoft Hyper-V Network Adapter’ and choose Properties.
- Click the Advanced tab.
- Set Large Send Offload Version 2 (IPv4) to Disabled.
- Set Large Send Offload Version 2 (IPv6) to Disabled.
- Close all windows.
The network adapter I was using in the T7500 was an Intel card, and the chip on the motherboard of the laptop was also a Intel network chip model 82579LM. The problem isn’t limited to Intel network products, however; I’ve seen reports with Broadcom cards and other manufacturers as well.
I wanted to share this because it took me 5 hours of intense effort before I figured it out. However, the article referenced above is typical of administrators reformatting their entire machines and taking other drastic measures before figuring out the problem. Hopefully I’ve saved someone some time and grey hair by documenting this fix.