Eu tenho uma VM convidada em uma máquina Windows Server 2012 R2 executando o Hyper-V. Atualmente, o convidado está usando a vlan nativa (vlan ID 1). Posso me comunicar com o convidado do host e da rede. No entanto, o convidado é um controlador de wlan Zebra/Motorola VX9000 que também precisará lidar com o tráfego nas IDs de vlan 10 e 15. A porta do switch usada pelo host não está marcada na vlan 1 e atualizei a porta para também ser marcada nas vlans 10 e 15. Também emito o seguinte comando via powershell:
Set-VMNetworkAdapterVlan -VMName MyGuest -Trunk -AllowedVlanIdList "10,15" -NativeVlanId 1
Infelizmente, depois de executar este comando, perco minha capacidade de me comunicar com o convidado. Se eu abrir o console do Hyper-V para o convidado, ele não terá acesso à rede. Tentar fazer ping do convidado do host ou de outros locais na rede resulta em uma Destination host unreachable
mensagem.
Posso "consertar" retornando o adaptador ao modo não marcado:
Set-VMNetworkAdapterVlan -VMName MyGuest -Untagged
Agora posso me comunicar com o hóspede novamente, mas isso não resolve nada. Eu ainda preciso desse convidado para poder lidar com o tráfego nas vlans 10 e 15.
Não entendo porque isso acontece. Os pacotes não marcados eram vlan ID 1 antes de alternar para o modo de tronco. Não deveria ainda ser assim agora? Como posso fazer com que esse convidado se comunique em todas as vlans de que preciso?
O melhor que recebo da mensagem de erro que vejo ao executar o ping é semelhante ao que eu veria se não houvesse rota. Preciso emitir um comando separado para criar uma rota para essas redes depois de definir a porta como tronco (talvez no host)?
Eu só tenho algumas VMs configuradas dessa maneira e elas também não falam na VLAN nativa. O que fizemos para resolver isso foi definir a VLAN nativa para algo não utilizado na rede, colocar a VLAN que você deseja usar no permitido e, em seguida, trocar todas as NICs dentro da VM para marcar seu tráfego.
Eu encontrei uma solução!
Uma postagem de aljanp neste link me levou a tentar brincar com vlan 0, e o seguinte comando parece estar funcionando:
Resumindo, defini a vlan nativa como 0 e incluí minha vlan nativa real na lista permitida.
Claro, isso só pode funcionar enquanto a vlan não marcada necessária para o convidado corresponder à vlan não marcada da porta do host/switch. Felizmente, esse é o caso hoje.