Tuesday, 3 July 2012

VLAN tagging problems in Windows Server 2012 Hyper-V

Now when the Release Candidate of Windows Server 2012 is available I started to evaluate its features, most of all Hyper-V because the company I work for has a Hyper-V based lab environment I can use to play with the new stuff.

We have two HP DL380 G5 servers in a cluster and I decided to evict one node from the Windows Server 2008 R2 cluster and install Windows Server 2012. You can read about it here.

Very soon I have encountered a problem with VLAN tagging. I set up NIC Teaming feature using two network cards. Network cards I used are HP NC7170 Dual Gigabit Server Adapter, but I had to uninstall these drivers and install Windows included drivers. Then my network cards appeared as Intel PRO/1000 MT Dual Port in Device Manager.

Physical network switches where these cards are connected to have ports configured as trunk ports so I can pass the VLAN tags from the operating system above. This worked fine using Windows Server 2008 R2 and HP Network Configuration Utility, but not with NIC Teaming and VLAN tagging in Windows Server 2012.

I could easily set up NIC Teaming, but when I tried to tag the traffic, either on the host OS or from the virtual machine, nothing would pass through to the switches. After a couple of days of troubleshooting I discovered that I must tell the NIC driver to pass through the tagged VLAN traffic. However, this was not exposed anywhere in the GUI but only in the registry.

If you have a similar problem, you must edit or create the VlanFiltering DWORD value in registry on the following location and set it to 0:


xx could be any number so you must open each key and look for your network adapter. If you are using NIC Teaming you probably need to do this for both adapters or all adapters that set up your team, in case you have more than two.

After you have changed the values, you can just go to Device Manager and disable and enable the network cards. This should be enough for the new setting to become active. It worked for me.

I hope this is only RC "feature" and it will be fixed in the final release.