Eu sei que o TCP encapsulado sobre o TCP é uma idéia terrível em geral, mas eu posso lidar com os ocasionais problemas de desempenho e MTU, e o efeito de bola de neve TCP dentro do TCP fornece onde o controle de erro entra em ação.
O cliente OpenVPN mais recente no Windows 7 x64 tem problemas terríveis de latência, onde o ping de um host dentro do túnel resulta em um tempo de ping de > 500 ms e um desempenho péssimo no geral. O rendimento parece bom, é apenas latência.
No entanto, no mesmo computador, o cliente OpenVPN no Linux 64 bits (Ubuntu 10.04, mesmas versões OpenVPN, mesma configuração OpenVPN, sem configurações diferentes) é executado sem problemas. ~ 30ms, tudo é muito útil.
No mesmo switch, a mesma versão do cliente OpenVPN, o mesmo arquivo de configuração, no Mac OS X 10.5 (PowerPC) também funciona perfeitamente.
Eu não consigo explicar isso. Eu tentei várias coisas, como diminuir o valor de MTU para o adaptador virtual para 1400 (desde que a terrível-ever-since-commercial-switch documentação menciona isso não sendo dinamicamente definido no windows e recomenda tal ação), eu tentei desabilitando o ECN, a chaminé e o CTCP nas configurações globais de TCP, ligando e desligando a lzo, sacrificando uma cabra, nada a torna melhor.
Alguma ideia? No começo eu pensei que a falta de suporte PMTU no OpenVPN no Windows era responsável por isso, mas eu tentei com o Windows XP e funciona perfeitamente também. Eu tenho relatórios de usuários que também funciona perfeitamente no Windows 7 32 bits. Além disso, o documento parece dizer que as configurações de MTU são inúteis para conexões TCP e são destinadas ao UDP.
tl; dr: O OpenVPN sobre TCP é lento, mas somente no windows 7 x64, tudo funciona bem. O que dá?
Muito obrigado, se alguém pudesse responder, eu ficaria eternamente em dívida por recuperar meu sono.