Copiar um ficheiro entre duas máquinas Windows é rápido até ambas entrarem na mesma VPN, e então desaba enquanto um teste de débito pelo mesmo par continua a reportar quase a velocidade da linha. Essa diferença é o diagnóstico: a ligação está boa e algo escolhe um caminho pior para a própria transferência. Esse algo costuma ser o multicanal SMB3, a fazer exatamente aquilo para que foi desenhado. Retire o canal extra da equação e a cópia volta à ligação física.

O sintoma espera pelo seu canal mais lento

O multicanal permite que uma sessão SMB use várias ligações TCP, uma por cada par de endereços adequado entre cliente e servidor. Quando ambas as máquinas estão na LAN e no mesmo túnel, o Windows pode emparelhar os endereços da LAN com os do túnel e tratar ambos os pares como utilizáveis. A sessão acaba com mais canais do que a ligação física necessita, e um deles é muito mais lento.

Não falha. Espera, porque a sessão não pode terminar mais depressa do que o seu canal mais lento.

É por isso que um teste de largura de banda pode parecer saudável enquanto uma cópia se arrasta: uma medição de fluxo único pode escolher um caminho, enquanto a transferência estava repartida por dois. Leia a lista de canais antes de alterar qualquer definição do adaptador, e leia-a enquanto a cópia ainda corre, porque uma sessão inativa não mostra nada. O que anotar deve nomear a interface por trás de cada canal, não apenas o quão lento o resultado pareceu.

Confirme que existe um segundo canal

Dois cmdlets respondem diretamente à pergunta. A lista de ligações mostra os canais em uso, e o resumo da sessão mostra a própria ligação. Execute ambos durante a cópia lenta.

Get-SmbMultichannelConnection
Get-SmbConnection

Procure mais do que uma linha marcada como selecionada para o mesmo servidor, e depois resolva o endereço do cliente na linha suspeita. Se esse endereço pertencer ao adaptador do túnel, o segundo caminho é real e está confirmado. Se todas as linhas pertencerem à interface física, o multicanal não é o seu problema e a cópia está lenta por um motivo não relacionado. Faça essa confirmação primeiro, porque a reparação é suficientemente perturbadora para merecer um minuto de provas.

Get-NetIPAddress -IPAddress 10.20.30.44

Os endereços aqui são marcadores de posição. Substitua-os pelo que a sua própria saída reportar, porque copiar um endereço de um blog é a forma como um comando que funciona se transforma numa mensagem de erro confusa.

Retire o túnel do SMB e depois meça novamente

Desativar o multicanal é a forma mais rápida de confirmar o diagnóstico, e é reversível. Aplique a definição de cliente na máquina que copia e a de servidor na máquina que aloja a partilha, porque qualquer dos lados sozinho pode manter o canal extra vivo. A alteração aplica-se a ligações novas e não às existentes, pelo que uma sessão aberta sobrevive-lhe. Reinicie ambas as máquinas, ou pelo menos feche todos os identificadores da partilha, antes de medir o que quer que seja.

Set-SmbClientConfiguration -EnableMultiChannel $false -Force
Set-SmbServerConfiguration -EnableMultiChannel $false -Force

Confirme o novo estado e depois veja o que o servidor anuncia agora aos clientes.

Get-SmbClientConfiguration | Select-Object EnableMultiChannel
Get-SmbServerNetworkInterface | Format-List *

A interface do túnel deveria desaparecer dessa lista anunciada. Se não desaparecer, a definição foi parar ao extremo errado ou uma sessão antiga continua aberta. Se a partilha de ficheiros simplesmente não deve usar o túnel, desassocie antes o componente de servidor desse adaptador, o que deixa o túnel utilizável para todos os outros serviços.

Get-NetAdapterBinding -Name "OpenVPN Data Channel Offload"
Disable-NetAdapterBinding -Name "OpenVPN Data Channel Offload" -ComponentID ms_server

Prefira o caminho da LAN sem fingir que elimina canais

A métrica de uma interface diz ao Windows que caminho preferir para ligações novas. Não remove um canal que o multicanal já decidiu abrir. Aumentar a métrica do túnel continua a valer a pena, porque mantém o tráfego não relacionado longe do caminho lento e torna a rota preferida previsível, mas é um empurrão, não um filtro.

Get-NetIPInterface | Sort-Object InterfaceMetric | Select-Object InterfaceAlias, InterfaceMetric
Set-NetIPInterface -InterfaceAlias "OpenVPN Data Channel Offload" -AutomaticMetric Disabled -InterfaceMetric 1000

Copie o alias dessa saída em vez de o escrever, porque algumas instalações traduzem o nome do adaptador e a cadeia em inglês não coincidirá.

Depois meça novamente os dois números: a cópia do ficheiro e um teste de débito pelo mesmo par. Se a cópia recuperar enquanto o teste de débito nunca esteve lento, o multicanal era a causa e pode parar. Se ambos desabarem, o túnel é o estrangulamento e o multicanal apenas o amplificou. Se a cópia continuar lenta enquanto ambos os caminhos parecem corretos, o problema restante vive na partilha, no armazenamento ou num controlador de filtro, o que é outra investigação.

Artigos relacionados