有没有办法让 Hyper-V(Hyper-V Server 2008 R2 SP1)的网络子系统忽略VLAN 标记并仅接受物理网卡接受的所有数据包?...希望通过完全忽略标记而不是通过某些通配符设置来实现?
考虑这个简化的场景。您的 Hyper-V 主机通过一根电缆连接到交换机;主机上运行着一个 VM(客户机)。一切都具有网络连接;主机和客户机都可以通过 TCP/IP 访问互联网并相互访问(您可以 ping、RDP 等)。接下来,有人在交换机中打开 VLAN 标记,这样通过它的所有数据包都将被标记为 VLAN 2。您的主机和客户机现在已失去所有网络连接。
您如何告诉 Hyper-V 忽略传入数据包现在标记为 VLAN 2 的事实?物理 NIC 可以很好地忽略标记,那么 Hyper-V 也可以这样做吗?
背景故事
情况是这样的。我有一个交换机,它被划分为 2 个不同的冲突域,但由于别无选择,因此只能通过设置 VLAN 来实现。Hyper-V 主机物理上插入其中一个冲突域的一个端口;主机和所有虚拟机都应在同一个冲突域内工作。除了交换机之外,没有任何其他 VLAN 配置;所有连接的机器都表现得像使用了 2 个独立的“哑”交换机一样。我希望它保持这种状态。
但是,在 Hyper-V 管理器中,当我进入“虚拟网络管理器”对话框添加新的外部(物理)接口时,如果我没有选择正确的 VLAN ID(用于主机/“父分区”),NIC 将失去所有网络连接。这是因为虽然物理 NIC 不在乎,但新的 Microsoft 虚拟交换机却在乎——并尽职尽责地丢弃数据包。...并且每个 VM 也必须配置相同的 VLAN ID,否则 VM 无法获得网络连接。
(仅供参考,这个特定的“陷阱”造成了难以言喻的折磨,因为 Hyper-V 中没有任何地方报告此类活动,并且它的开箱即用行为与物理 NIC 的行为完全相反。)
编辑:试图阐明我的“背景故事”并添加了一个简化的示例场景。
答案1
上游物理交换机端口是否设置为中继?除非设置为中继,或者明确配置为中继,否则它不应该发送标记流量。如果您可以说服物理交换机的管理员将端口上的本机 vlan 设置为 2,您的上游流量将正确到达那里,但您仍可能会收到下游标记流量。
我的看法是:你在浪费时间。如果你正在接收标记流量,那么你应该在 HyperV 主机上所有需要的物理或虚拟端口上配置正确的标记,然后就结束了。对于 10 台虚拟机,在 VMware 机器上,这需要大约 15 秒的时间,我无法想象 HyperV 需要更多的努力。祝你好运找到你想要的解决方案,但我怀疑这会发生。
答案2
不要在虚拟网络上标记 VLan ID,只标记虚拟机虚拟 NIC。