我试图让一个在 Windows 8.1 中运行的虚拟机在不同于操作系统使用的 VLAN 上。我正在使用 Intel NIC 并安装了 Intel 驱动程序,默认情况下这些驱动程序带有 VLAN 标记。它连接到配置有一个未标记 VLAN 和另一个 VLAN 标记的 HP 交换机(在 Cisco 中,它是一个具有两个允许 VLAN 的中继端口,其中一个是本机 VLAN)。我希望 VM 能够使用标记的 VLAN 进行通信,而 Windows 8.1 主机使用未标记的 VLAN。
为此,我配置了一个虚拟交换机,将其连接到物理网卡,并告诉它允许在没有 VLAN ID 的网卡上管理 O/S。然后在虚拟机中,我将网络适配器连接到虚拟交换机,并告诉它使用 VLAN 4。
两个问题:
- 这是设置它的正确方法吗?
- 虚拟机应该发送标记还是未标记的数据包?即,我需要在操作系统中设置 VLAN 标记吗?
理想情况下,我想要的是这样的:
physical /____ VLAN 1 untagged ____\ virtual /____ VLAN 2 untagged ____\ VM
switch \ VLAN 2 tagged / switch \ /
更新:
此链接似乎表明数据包通过虚拟交换机时标记完整,因此没有 VLAN 标记的数据包将发送到未设置 VLAN 的 VM,否则标记的 VLAN 数据包将通过该 VLAN 的 VM,因此需要进行 VLAN 标记在虚拟机中配置。
任何人都可以确认或否认这一点吗?当我有机会时,我将尝试为我的虚拟机添加 VLAN 支持,但它似乎......不知何故错了。也许我只是习惯了 VMware 如何处理端口组,其中来宾中不需要 VLAN 标记...
这是正确的做法。您将 NIC 绑定到 Hyper-V 虚拟交换机,然后在 VM 的硬件配置中设置要使用的 VLAN。您不希望或不需要在来宾 VM 内启用 VLAN 标记。