How to Utilize NIC Teaming for Hyper-V VMs with VLAN in Windows Server 2016

Posted on

A server stack is the collection of software that forms the operational infrastructure on a given machine. In a computing context, a stack is an ordered pile. A server stack is one type of solution stack — an ordered selection of software that makes it possible to complete a particular task. Like in this post about How to Utilize NIC Teaming for Hyper-V VMs with VLAN in Windows Server 2016 was one problem in server stack that need for a solution. Below are some tips in manage your windows server when you find problem about windows, hyper-v, vlan, network-teaming, .

I have two Windows Server 2016 with Hyper-V installed. Each server has two ethernet adapters. And each Hyper-V has several VMs. My goal is VMs can communicate with each other if they fall into the same VLAN.

In order to make the network connection redundancy, I created the network teaming on the physical machine. The teaming is using “Switch Independent” with “Address Hash” options. On the Virtual Switch Manager, I created an external adapter by selecting the teamed adapter (Microsoft Network Adapter Multiplexor Driver).

Under each VM, I create a virtual adapter with VLAN tagged.

However, the VMs in the same VLAN cannot communicate with each other.

On the switch side, I have already configured trunk mode for all the ports connected with the physical machines.

If I remove the teaming, the VMs can communicate with VLAN tags. How to address this issue?

It’s not entirely clear where your problem lies from your description. I’m uncertain about the “removing team” bit especially. If the VMs can communicate with each other when your virtual switch is Internal or Private, then the problem is not with Hyper-V.

If they can communicate with each other when you attach the virtual switch to only one unteamed adapter, then test using the other adapter instead. If one works but not the other, then it is likely a physical adapter or switch problem. If either works, but not both in a team, then it is likely a physical switch problem.

Check these points, even if you’ve already checked them. Problems like this are typically sourced back to something extremely minor and easy to overlook:

Physical Switch

  • Ports are in trunk mode
  • Ports are not in a port channel or LAG
  • The desired VLAN is specifically allowed and/or marked as “Tagged”
  • The ports do not use a numbered default VLAN, PVID, or have any numbered VLAN set as “Untagged”

Physical NICs

  • NICs do not have any VLAN settings applied, check both firmware and drivers

Physical NIC Team

  • You are using exactly one team interface and it is not assigned a numbered VLAN

Virtual adapters (Hyper-V Side)

  • Virtual adapters have been assigned to the correct VLAN
  • Virtual adapters are connected to the correct virtual switch

Virtual adapters (inside guest)

  • Adapter has appropriate TCP/IP settings
  • Firewall is not blocking the expected traffic


If you’ve done all of the above and it still doesn’t work, then you likely have a physical problem somewhere.

  1. Disconnect the wire from one physical adapter and test
  2. Reconnect the initial wire and wait for stable connectivity (viewable in LBFOAdmin.exe or Get-NetLbfoTeamMember).
  3. Disconnect the second wire and test

Leave a Reply

Your email address will not be published. Required fields are marked *