当虚拟交换机端口处于中继模式时,Hyper-V guest虚拟机将失去networking访问权限

我在运行Hyper-V的Windows Server 2012 R2计算机上有访客虚拟机。 目前,guest虚拟机正在使用本地vlan(vlan ID 1)。 我可以从主机和networking与客人交stream。 但是,客户端是Zebra / Motorola VX9000 wlan控制器,也需要处理vlan ID 10和15上的stream量。主机使用的交换机端口在vlan 1上未标记,并且我更新了端口以在vlans上进行标记10和15.我也通过powershell发出以下命令:

Set-VMNetworkAdapterVlan -VMName MyGuest -Trunk -AllowedVlanIdList "10,15" -NativeVlanId 1 

不幸的是,在执行这个命令之后,我失去了和客人沟通的能力。 如果为guest虚拟机打开Hyper-V控制台,则它没有任何networking访问权限。 试图从主机或networking上的其他位置ping来宾会导致Destination host unreachable消息。

我可以通过将适配器返回到无标记模式来“修复”它:

 Set-VMNetworkAdapterVlan -VMName MyGuest -Untagged 

现在我可以再次与客人沟通,但这并不能解决任何问题。 我仍然需要这个客人能够处理10号和15号航class的交通。

我不明白为什么会发生这种情况。 在切换到中继模式之前,无标记的数据包是vlan ID 1。 现在不应该这样吗? 我怎样才能让这个客人在我需要的所有虚拟世界中交stream?

我从错误信息中得到的最好的结果是ping的时候看到的是类似于没有路由的情况。 将端口设置为中继(可能位于主机上)之后,是否需要单独发出命令来为这些networking创build路由?

我只有几个虚拟机这样设置,他们也没有谈到本地VLAN。 我们解决这个问题的方法是将本地VLAN设置为networking上未使用的VLAN,将要使用的VLAN放入允许的VLAN中,然后切换VM内的所有NIC以标记其stream量。

我find了解决scheme!

alejanp在这个链接的post导致我尝试玩vlan 0,下面的命令似乎工作:

 Set-VMNetworkAdapterVlan -VMName MyGuest -Trunk -AllowedVlanList "1,10,15" -NativeVlanId 0 

简而言之,我将本机vlan设置为0,并将我的真实本地vlan包含在允许的列表中。

当然,只要guest虚拟机所需的untagged vlan与主机/交换机端口上的untagged vlan相匹配,这只能工作。 谢天谢地,今天就是这样。