Em sua carreira de TI, você já pesquisou no Google um problema ou sintoma apenas para descobrir que você é a única pessoa a ver esse problema? Não é uma sensação boa, não é? Você sabe qual é o oposto desse sentimento? Tente pesquisar no Google para obter desempenho CIFS/SMB lento em VPN. Eu vou esperar.
Resultado não falta aí, né? O desempenho de SMB sobre VPN é um problema que vemos periodicamente em nossos clientes. Normalmente, o perfil do cliente é que eles têm vários sites com VPNs site a site e um servidor de arquivos centralizado. Outro cenário pode ser trabalhadores remotos que se conectam usando VPNs para acessar servidores de arquivos.
O problema relatado geralmente é algo assim:
- As conexões de Internet são estáveis e têm velocidade decente.
- Outras transferências de arquivos como FTP são boas.
- As transferências de arquivos usando compartilhamentos de arquivos do Windows (ou seja, SMB (ou CIFS) são dolorosamente lentas.
Os engenheiros geralmente realizam alguns dos seguintes testes:
- teste de velocidade da internet,
- Teste de ping,
- Iperf ou algum outro teste de velocidade de link.
Os engenheiros também costumam gravitar para os próprios endpoints da VPN. As solicitações geralmente vêm expressas como sendo um problema com o firewall. Se você usasse o Google para SMB lento sobre VPN, veria que quase todos os produtos de rede são relatados em associação com esse problema: Cisco, Fortinet, Juniper, SonicWall, estão todos lá. Os jogadores de código aberto não saem mais fácil. Você encontrará referências ao Pfsense, IPCop e assim por diante.
Aqui estão algumas coisas que você pode tentar corrigir esse problema, ou pelo menos torná-lo menos doloroso:
- Reduza o tamanho da MTU nos endpoints da VPN. Muitos dispositivos são padronizados para 1500. Você pode tentar definir isso para 1400 ou 1350.
- Ajustar o tamanho máximo do segmento TCP para algo em torno de 1400 foi relatado para funcionar.
- Afaste-se dos dispositivos de rede e entre no próprio Windows, a Microsoft possui um KB específico para ajustar o SMB .
- Altere o protocolo VPN que está em uso. Eu vi alguns casos em que o SSL produziu melhores resultados do que o IPsec e vice-versa.
- Verifique a utilização de recursos nos dispositivos de rede envolvidos. Roteadores e firewalls também são computadores, embora sejam computadores muito especializados. Se os recursos ficarem sobrecarregados, isso causará problemas. Alguns fabricantes, como a Fortinet, criam código no sistema operacional que limita os serviços quando a utilização de recursos está em níveis mais altos.
- Descarte quaisquer outras condições de rede que estejam causando perda de pacotes, congestionamento ou latência. (Temos um documento abrangente muito bom sobre todos os lugares em que a latência ocorre com seu ambiente.)
Estas são todas sugestões muito boas, mas são um sucesso ou um fracasso se realmente funcionam ou não.
Há uma razão para isso: SMB é péssimo em conexões de alta latência! Em 2009, a Microsoft publicou um artigo sobre planejamento de requisitos de largura de banda . Parte do artigo comparou o desempenho do SMB com e sem latência. Abaixo estão os resultados do rastreamento e enumeração de um compartilhamento de arquivos em uma conexão de 10 Mbps com 100 ms de latência:
A Microsoft tentou resolver esses problemas com versões e atualizações mais recentes do protocolo SMB. Mas em sua essência, o SMB é limitado por ser um protocolo baseado em blocos. FTP e outros irão transmitir os dados. O SMB foi desenvolvido para conversar constantemente com o servidor de arquivos. Aqui está um bom (mas antigo) blog da Microsoft que apresenta alguns desses problemas .
Em vez de reinventar a roda, a Microsoft apresentou outras soluções para contornar as limitações do SMB com ferramentas como o OneDrive e recursos como o Branch Cache para ajudar se você deseja obter dados compartilhados para seus usuários de maneira rápida e eficiente.
Resumindo.
-> Transferir via SMB em rede Local = Latência baixa = Tanto faz o tamanho do arquivo = Boa prática
-> Transferir via SMB em rede extranet = Latência alta = Quanto maior o arquivo, exponencialmente o tempo será maior = Péssima Prática
Portanto, não há o que perder tempo com este problema, quando nem a Microsoft resolveu. Utilize-se de ferramentas como OneDrive, GoogleDrive e outras ferramentas gcloud para transferir arquivos grandes pela internet.