Windows Server Hyper-v虚拟机设置网卡为Trunk模式

众所周知,如果你在 Hyper-V GUI 里面去掉 VLAN tagging 选项,那么你会获得一个 untagged access 接口,也就是说所有带着 VLAN tag 的帧就进不来了。但是其实 Hyper-V 是支持把一个接口作为真正的 VLAN Trunk 接口的。

PS C:\> Get-VMNetworkAdapterVlan -VmName *

VMName VMNetworkAdapterName Mode     VlanList
------ -------------------- ----     --------
Game   网络适配器                Untagged
Docker 网络适配器                Trunk    0,1-4094

然后把需要修改的虚拟机网口设置为 Trunk 接口:

PS C:\Windows\system32> Set-VmNetworkAdapterVlan -VmName "Docker" -VmNetworkAdapterName "网络适配器" -Trunk -NativeVlanId 0 -AllowedVlanIdList "1-4094"

最后验证配置:

PS C:\> Get-VMNetworkAdapterVlan -VmName "Docker"

VMName VMNetworkAdapterName Mode  VlanList
------ -------------------- ----  --------
Docker 网络适配器                Trunk 0,1-4094

如果之后要改回来,直接在 GUI 上改可能会报错。要先用 PowerShell 把接口设成 Untagged 再设置 Access:

Set-VmNetworkAdapterVlan -VmName "Docker" -VmNetworkAdapterName "网络适配器" -Untagged
Set-VmNetworkAdapterVlan -VmName "Docker" -VmNetworkAdapterName "网络适配器" -Access -VlanId 1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注