O TCP no OpenVPN é muito lento (tsg anexado)

7

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.

    
por Pentium100 26.08.2014 / 12:28

2 respostas

3

Eu resolvi isso. Ou melhor, sei como torná-lo mais rápido, mas não sei por que é lento. Parece que a cifra AES interfere de alguma forma com o TCP neste servidor específico e resulta no baixo desempenho. Se eu alterar a cifra para, digamos, 3des (que é mais lento conforme relatado por "velocidade de abertura"), recebo 150mbps. Depois de algumas tentativas, agora uso isso:

cipher camellia-128-cbc
auth sha1
tun-mtu 9000

Agora recebo 300mbps para um único fluxo e 450mbps para vários fluxos.

    
por 27.08.2014 / 11:00
1

talvez você esteja com problemas com a MTU na conexão. dê uma olhada nos dois links a seguir, eles podem conter algumas informações úteis.

Configure o MTU com o Fragment e o MSS

Otimizando o desempenho em redes gigabit

    
por 26.08.2014 / 14:33