Today I was working at a customer site, setting up a NVGRE Gateway in a Fabric domain. Install, configuration, all went nice and smooth until we should test and verify that the VM’s could access the network, found a miss configuration and then, hey it was working, well TCP was working but NOT UDP, wtf??? Some troubleshooting (Google and Bing and some cursing) and it seems to be some various obscure things, some hotfixes but then we found something that actually worked…
The issue: Encapsulated Task Offloading
I’m pretty sure that the idea behind it is all good, but of course as all “great” things, it does not work in this combination.
The Solution: Disable it!
But, if you disable it on every hyper-v host (not only the hosts running the NVGRE gateway), it starts working. At the time we could not find any other solution then to disable it.
In this case the customer (and you know how you are) was kind enough to let me post the script that was used to disable this “amazing” technology.
or here in plain text form
$Nics = Get-NetAdapterAdvancedProperty -DisplayName “Encapsulated Task Offload”
foreach($Nic in $Nics)
Set-NetAdapterEncapsulatedPacketTaskOffload -Name $Nics.Name -EncapsulatedPacketTaskOffloadEnabled:$false