Recently I had two Dell Servers running Hyper-V on Windows 2012R2 that would loose network connectivity on a more less regular bases. All available NIC’s were teamed as all VM’s were still running and could connect to each other. However, there was no outbound or inbound traffic to the actual Hyper-V host (ping the subnets gateway fails). Both servers had Broadcom NetXtreme 1-gigabit network adapters that use the b57nd60a.sys driver in version 16.2. Apparently, this is a known issue with Broadcom NetXtreme 1-gigabit network adapters that use the b57nd60a.sys driver, when VMQ is enabled on the network adapter. (By default, VMQ is enabled by the Broadcom network driver.)
This issue is resolved in Broadcom driver b57nd60a.sys version 16.8 and newer. This mean one way of solving the problem is to upgrade the driver to version > 16.8. However, this will require some downtime in a maintenance windows and ultimately this should be scheduled.
To fix the issue in a running production environment the VMQ can be simply disabled running a PowerShell command.
First lets have a look at what the current settings are fro all installed NIC’s by running the following PowerShell command:
[codesyntax lang=”powershell”]
Get-NetAdapterVmq –Name "*" | Where-Object -FilterScript { $_.Enabled }
[/codesyntax]
This will list all VMQ capable network adapters where VMQ is enabled.
To get around this issues without updating the drivers we can disabling VMQ on each affected Broadcom network adapter by using the Set-NetAdapterVmq Windows PowerShell command.
In our case we have 5 and need to run the following:
Set-NetAdapterVmq -Name “NIC1” -Enabled $False
Set-NetAdapterVmq -Name “NIC2” -Enabled $False
Set-NetAdapterVmq -Name “NIC3” -Enabled $False
Set-NetAdapterVmq -Name “NIC4” -Enabled $False
Set-NetAdapterVmq -Name “TRN-HYP-01″ -Enabled $False
Once done lets verity that VMQ is disabled on all of the above network adapters. Running
[codesyntax lang=”powershell”]
Get-NetAdapterVmq –Name "*" | Where-Object -FilterScript { $_.Enabled }
[/codesyntax]
should return nothing as we have have no NIC’s left with VMQ enabled. Running the next command will list all network adapters with there current settings.
[codesyntax lang=”powershell”]
Get-NetAdapterVmq –Name "*"
[/codesyntax]