The most Generic model: enable Trunking on the physical switch (specifying the VLAN IDs and native VLAN) and apply a VLAN ID in the settings of the virtual NIC of each VM that needs it and the VM is attached to the proper External Virtual Network.
Note: Hyper-V Virtual Networks are "trunking mode" by default.
- Configure the switch port as a trunk
- Specify VLAN IDs / Tags and native VLAN
- On Hyper-V create an External Virtual Network attached to the configured trunk port of the physical switch
- Apply a VLAN ID / Tag to each VM in the settings of the virtual network adapter
The Network Teaming model: NIC Teaming is involved (since Hyper-V does not support bonding) - you apply the VLAN tag to the Teaming virtual NIC and attach a virtual switch to this.
- Create a trunked port on your switch.
- Create a team
- Create several Team Virtual NICs in parent partition assigning different VLAN IDs to each virtual NIC
- Create a Virtual Network from each of the Teaming Virtual NICs
- Connect VMs to proper Virtual Networks
- Don’t specify the VLAN ID field in VM properties
- But in some cases (e.g. HP NCU) step 6 is exactly opposite. You must specify VLAN ID both on virtual NIC level (step 3) and each VM level (step 6)
SCVMM is involved – follow the Generic Model and be sure to set the “trunking” option on the Virtual Network settings in the SCVMM management console.
Note: SCVMM exposes the two different types of trunking options (the Hyper-V Manager GUI does not expose the access mode setting) - trunk mode and access mode.