O problema é provável com o convidado do Windows e como ele está se comunicando com o NIC virtual. Aqui estão algumas coisas para tentar:
Desative o descarregamento de chaminés TCP no convidado do Windows. Para determinar se está habilitado, execute netsh int tcp show global
. Para desativá-lo, execute netsh int tcp set global chimney=disabled
Desativar o descarregamento de TCP na NIC no convidado do Windows. Na instalação do Windows convidada, acesse o gerenciador de dispositivos, abra a NIC em questão, vá para a guia avançada e procure por qualquer opção TCP / UDP, checksum, largesend e / ou TCP / IP offloading. Desative-os. Se ele diz "offloading" desativá-lo.
Desativar o dimensionamento do lado do recebimento no convidado do Windows. Verifique se ele está ativado com netsh int tcp show global
. Desativar com netsh int tcp set global rss=disabled
.
Desative o NetDMA no convidado do Windows. Verifique se ele está ativado com netsh int tcp show global
. Para habilitar / desabilitar manualmente, uma chave de registro precisa ser adicionada. Verifique se já existe com get-itemproperty -path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -name EnableTCPA
. Se ele não existir e o NetDMA estiver habilitado, crie a seguinte chave do Registro com o PowerShell:
New-Item -Path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableTCPA
New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\" -Name "EnableTCPA" -Value 0 -PropertyType "DWord"
Desative o descarregamento de tarefas de rede do Windows no Windows Guest. Verifique se a chave do Registro existe usando o PowerShell: get-itemproperty -path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -name DisableTaskOffload
. Se isso não acontecer, adicione essa chave do Registro ao PowerShell: New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\" -Name "DisableTaskOffload" -Value 1 -PropertyType "DWord"
Desative o ajuste automático no Windows Guest. Primeiro, verifique se ele está ativado: Netsh interface tcp show global
. Se estiver, desative-o com: Netsh interface tcp set global autotuning=disabled
Desative a Compactação Diferencial Remota no Windows Guest, se estiver ativada. Vá para o comando run e execute appwiz.cpl, selecione "Ativar ou desativar recursos do Windows" e desmarque a compactação diferencial remota. / p>
Verifique se o Antivírus está configurado para verificar o tráfego ao vivo. As ferramentas antivírus podem ser configuradas para verificar todo o tráfego proveniente do host em busca de algo mal-intencionado. Se esse for o caso do seu convidado do Windows, desative-o temporariamente para testar.
EDIT 1
Alguns últimos esforços para isso incluem:
- Um dos meus palpites era que havia uma incompatibilidade de velocidade de porta - mas você resolveu isso. A menos que haja mais opções com as quais você possa se preocupar,
- Eu geralmente recomendo atualizar o driver de rede, mas isso é menos necessário em uma VM, já que a NIC virtual é bastante baunilha.
- Instale as ferramentas de guest mais recentes no Windows Guest.
- Eu vi alguns problemas com o IPv6 em clientes Windows causando lentilhas misteriosas de TCP / IP. Não faço ideia do porquê; Eu não pesquisei profundamente. Eu suponho que você poderia desinstalar / remover v6 da NIC.
- Verifique as estatísticas de TCP / IP no convidado do Windows para ver se há muitos erros ou outros números interessantes.
netstat -es
fará o truque.
- Por último, mas com certeza não menos importante, instale o Network Monitor e inspecione o tráfego em busca de algo incomum. Erros de CRC, reconexões, pacotes descartados ... quem sabe. Qualquer coisa que pareça feia.