我的 Hyper-V 设置有一个非常烦人的问题,它让我很烦恼,因为我不知道为什么。
我的 Hyper-V 主机是 Windows Server 2019,具有三个网络适配器。适配器 1 和 2 是物理的并且具有静态配置。
适配器 3 已配置为 Hyper-V 可扩展交换机。(外部)此适配器连接到思科交换机上的中继端口,其中多个 vlan 已被标记。主机适配器使用 VLAN 777 并且可以正常连接。
我创建了一个新 VM,并在其中安装了另一个 Windows Server 2019 实例。此 VM 使用相同的 vSwitch,但配置为 VLAN 666。
在VM内部,我查看了适配器的状态信息:
- 自设备启动以来发送了 X 个数据包
- 收到 0 个数据包
起初我怀疑是一些奇怪的防火墙阻止了连接。
为了理智,我禁用了所有防火墙规则/设置/配置文件,因为该主机无论如何都在本地网络中。 我为主机和虚拟机做了这个。
没有任何改变,仍然没有数据包传入。
我检查了它所连接的交换机——它显示了虚拟机的静态 MAC 地址,确认它以某种方式注册了它。但是,它显然无法接收任何数据包,这使得 DHCP 或任何通信都无法进行。
- 还有什么可能阻止此连接?
- 我可以激活或查看哪些日志来解决这个问题?
交换机上没有任何阻止规则或任何东西。主机确认了这一点,因为虚拟主机适配器工作得很好。
它就在虚拟机内部。
有关 VM 的一些技术说明:
- 它是使用 ISO 设置的
17763.737.190906-2324.rs5_release_svc_refresh_SERVERESSENTIALS_OEM_x64FRE_de-de_1
- 它设置为第 2 代
- 网络适配器的虚拟机配置中的附加功能和复选框均未选中。
更新 - 我到目前为止检查过的内容:
- 虚拟机和主机上的事件日志(但是,我不知道具体要查找什么!)
- 使用适配器镜像查看 Wireshark 内部的连接(来自 VM 的适配器作为源,新的主机适配器作为目标)-> 并没有真正导致任何结果,但我确实注意到我看不到 ICMP ping,奇怪的是足够的
- 主机和虚拟机上的防火墙设置 -> 在两个系统上,所有配置文件上的防火墙设置都已关闭,以便在没有进一步可能干扰的情况下对此进行故障排除
- 为丢弃的数据包激活防火墙记录并检查那些,那里什么都没有。
- 三重检查的 Hyper-V 设置,没有激活关于网络连接的特殊功能。
- 将 Switch 上的配置更改为 vlan 的访问端口而不是 Trunk -> 没有区别
- 为适配器使用动态 MAC 地址而不是静态地址 -> 没有区别
我想通了,答案很悲伤。
在用于 vSwitch 的物理 NIC 上,在硬件驱动程序上配置了一个 VLAN。这并没有在创建 vSwitch 时被删除,并且它以某种方式设法阻止所有进出流量,因为当硬件本身更改 VLAN ID 时,没有人真正可以通信。
我是怎么知道的?我将 NIC 插入到交换机附近,并注意到它也没有在主机上获得流量。在多次尝试 ping 主机 NIC 之后,我得出的结论是,故障一定出在该机器的网卡上。我换了网卡,它工作。
再次检查适配器硬件设置后,我注意到由英特尔 ProSet 适配器配置实用程序硬编码的 VLAN ID。
所以是的......清除了,现在一切正常。
给自己上了一堂愚蠢的课。