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