Eu tenho um problema muito estranho com o OpenVPN.
A maioria das VPNs funciona bem, exceto esta. Aqui obtenho um desempenho muito baixo das conexões TCP, mas a carga da CPU é baixa (portanto, não é um problema de CPU).
O OpenVPN é configurado com UDP, cifra AES-256-CBC, autenticação SHA256 e sem compactação.
Aqui estão algumas medidas que fiz com iperf:
Conexão de rede sem VPN:
iperf -c external.ip result:300 - 500mbps (good)
iperf -c vpn.int.ip result: 20-30mbps (not good)
O uso da CPU em ambas as extremidades é baixo. OK, talvez alguns ISP moldem ou filtrem os pacotes UDP.
iperf -c external.ip -b 500M result: no packet loss
Hmm ... e se eu forçar o fluxo UDP através da VPN
iperf -c vpn.int.ip -b 100M result: no packet loss
iperf -c vpn.int.ip -b 180M result: packet loss ~0.1%
Assim, minha conexão VPN deve ir até 180mbps, com base nos resultados com o UDP, mas isso não acontece. Eu também fico muito estranho gráfico com tcptrace.
É assim que o teste é bom (sem VPN, usando IPs externos):
Comovocêpodever,ospacotesenviadosficampróximosdalinhaamarela,oquesignificaqueajaneladerecebimentoémantidaquasecheia.Estapartedográficoestápertodoiníciodaconexão,depois,ospacotesenviadosestãopraticamentenotopodalinhaamarela.
EestegráficoéoquerecebodaVPN:
Agora, por algum motivo, o remetente age como se a janela fosse muito pequena, embora seja grande (não importa o que eu defina a janela, tentei manter a configuração padrão e 4MB) e envia os pacotes somente pequenas rajadas.
Esta é a primeira vez que vejo um gráfico como este? O que poderia estar causando isso? Alguma filtragem UDP pelo ISP, OpenVPN em si, algo mais?
EDIT: A execução da VPN usando TCP em vez de UDP resulta em troughput de 10 mbps.