使用 Broadcom NetXtreme 1 千兆位网络适配器时,虚拟机将失去网络连接
本文针对使用 Broadcom NetXtreme 1 千兆位网络适配器时虚拟机失去网络连接的问题提供了解决方案。
适用于: Windows Server 2012 R2
原始 KB 编号: 2986895
症状
当你在 Microsoft Windows Server 2012上运行 Hyper-V 或Windows Server 2012 R2 以及 Broadcom NetXtreme 1 千兆位网络适配器 (但 NetXtreme II 网络适配器) ,你可能会注意到以下一个或多个症状:
虚拟机可能会随机失去网络连接。 网络适配器似乎在虚拟机中工作。 但是,无法从虚拟机 ping 或访问网络资源。 重启虚拟机无法解决问题。
无法从远程计算机 ping 或连接到虚拟机。 这些症状可能发生在运行 Hyper-V 的服务器上的部分或所有虚拟机上。 重启服务器会立即解析到所有虚拟机的网络连接。
原因
这是使用 b57nd60a.sys 驱动程序的 Broadcom NetXtreme 1 千兆位网络适配器的已知问题。 在网络适配器上启用虚拟机队列 (VMQ) 时,会出现此问题。 (默认情况下,VMQ 由 Broadcom 网络驱动程序启用。)
Broadcom 将这些网络适配器命名为基于 57xx 的芯片集。 它们包括 5714、5715、5717、5718、5719、5720、5721、5722、5723 和 5780。
某些服务器 OEM 也以不同的型号销售这些网络适配器。 HP 以型号 NC1xx、NC3xx 和 NC7xx 销售这些驱动程序。 你可能使用的是驱动程序版本 16.2、16.4 或 16.6,具体取决于你正在使用的 OEM 版本或你使用的是 Broadcom 驱动程序版本。
解决方案
此问题已在 Broadcom 驱动程序 b57nd60a.sys 版本 16.8 及更新版本中得到解决。 2015 年 3 月,Broadcom 发布了驱动程序版本 17.0 以供下载。 2015 年 4 月,HP 发布了适用于其受影响网络适配器的驱动程序版本 16.8。 如果需要特定于服务器的驱动程序,请联系服务器 OEM。
如果无法更新网络适配器驱动程序来解决此问题,则可以通过使用 Set-NetAdapterVmq
PowerShell 命令在每个受影响的 Broadcom 网络适配器上禁用 VMQ 来解决此问题。
请考虑以下情况:
- 你有一个双端口网络适配器。
- 这些端口在 Windows 中名为 NIC 1 和 NIC 2。
在此方案中,可以使用以下命令在每个适配器上禁用 VMQ:
Set-NetAdapterVmq -Name "NIC 1" -Enabled $False
Set-NetAdapterVmq -Name "NIC 2" -Enabled $False
可以使用 Get-NetAdapterVmq PowerShell 命令确认在正确的网络适配器上禁用了 VMQ。
注意
默认情况下,使用 1 千兆位网络适配器的虚拟机在 Hyper-V 虚拟交换机上禁用 VMQ。 仅当系统使用 10 千兆位或更快的网络适配器时,才在 Hyper-V 虚拟交换机上启用 VMQ。 这意味着,通过禁用 Broadcom 网络适配器上的 VMQ,不会丢失网络性能或任何其他优势,因为这是默认设置。 但是,需要执行此操作才能解决驱动程序问题。
Get-NetAdapterVmqQueue
显示在网络适配器上分配的虚拟机队列 (VMQs) 。 默认情况下,不会看到分配给 1 千兆位网络适配器的任何 VMQ。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈