I'm trying to get a VM running in Windows 8.1 on a different VLAN than what the O/S is using. I'm using an Intel NIC and have installed the Intel drivers, which have VLAN tagged on by default. It's connected to a HP switch that is configured with one VLAN untagged and another VLAN tagged (in Cisco-speak, it's a trunk port with two allow VLANs, one of which is the native VLAN). I would like the VM to be able to use the tagged VLAN for communication, while the Windows 8.1 host uses the untagged VLAN.

To this end, I've configured a virtual switch, attached it to the physical NIC, and told it to allow management O/S on the NIC with no VLAN ID. Then in the VM, I connected the Network Adapter to the virtual switch, and told it to use VLAN 4.

Two questions:

  1. Is this the correct way to set this up?
  2. Should the VM be sending out packets tagged or untagged? i.e., do I need to set up VLAN tagging in the O/S?

Ideally, what I'd like is something like this:

physical /____ VLAN 1 untagged ____\ virtual /____ VLAN 2 untagged ____\ VM
 switch  \      VLAN 2 tagged      / switch  \                         /


This link seems to indicate that packets go through the virtual switch with tagging intact, so packets without the VLAN tag will go to VMs with no VLAN set, otherwise tagged VLAN packets go through to the VMs for that VLAN, so VLAN tagging needs to be configured in the VM.

Can anyone confirm or deny this? I'm going to try to add VLAN support to my VM when I get a chance, but it seems... wrong somehow. Maybe I'm just used to how VMware did it with port groups, where VLAN tagged wasn't required in the guest...

1 Answer 1


This is the right way to do it. You bind your NIC to a Hyper-V Virtual Switch, and then in the hardware config for the VM you set the VLAN to use. You don't want or need VLAN tagging enabled inside the guest VM.

  • The section "What about the Native VLAN?" seemed to say only packets received untagged get sent to untagged ports. Since I've assigned a VLAN (which, now that I think about it, only assigns a network, not a tag), I thought only tagged packets would be sent up the stack. Most places I've read seemed to say to use the native Intel drivers, but thinking back over it, I'm not sure if any of them mentioned 2012 R2/8.1 specifically. Would it change anything to mention that the VM is running Ubuntu 14.04? I can try another as Win8.1 and see if that works. ESX was so much easier. :-P
    – DarkMoon
    Jul 28, 2014 at 7:11
  • That section only serves to explain that there is no concept of "native VLAN" on Hyper-V. I.e. you can't say to Hyper-V "VLAN 123 is my native VLAN, and should be sent untagged", and then configure VLAN 123 on the VM. That won't work, instead it will send VLAN 123 tagged. So, if you want to use the "native" VLAN on a port, you just don't configure a VLAN tag. Incidentally, this is exactly the same way ESXi works (except with ESXi you configure this on a per-portgroup level, where in Hyper-V (unless you use SCVMM to manage networks) it's done on the VM level.) Jul 28, 2014 at 7:14
  • Hmm, well then, it should work the way I have it. I'll have to do some lower-level troubleshooting then. Thanks.
    – DarkMoon
    Jul 28, 2014 at 7:17
  • As I said, try using the stock Windows drivers for the NIC on the Hyper-V host machine, rather than using the Intel drivers with VLAN support. I know it sounds counterintuitive, but because Hyper-V is doing its own thing with VLANs, having the Intel drivers do it's own VLAN thing as well may stop it from working the way you expect. Let us know how that works out. :-) Jul 28, 2014 at 7:19
  • 1
    Well, now I feel like a bonehead. I forgot there was an IP phone between my laptop and the switch, and it only allows untagged traffic through. When I plugged my laptop directly to the switch, the VLANs worked. Thanks for confirming that my setup should work, so I knew to troubleshoot elsewhere.
    – DarkMoon
    Jul 28, 2014 at 21:14

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .