Ajustando o tráfego de rede para o túnel OpenVPN

2

Eu configurei um servidor OpenVPN em um VPS executando o Centos 5.7 via UDP. Os clientes se conectam a ele na inicialização e, se forem, recebem um endereço 10.5.5.x. O servidor executa servidores de email, samba e jabber. O OpenVPN é configurado para que os clientes possam se ver, então o ping, o jabber, o ssh, o scp, etc. funcionam. A interface tun é somente para essa sub-rede, portanto, o tráfego normal da Internet não é roteado. Todos os clientes são Ubuntu 11.10.

Estou tendo problemas com tráfego de rede. Parece que sempre que há uma quantidade maior de dados a serem transferidos (scp peer-to-peer, envio de anexos de e-mail maiores para o servidor, transferência de arquivos via Pidgin / XMPP, VNC ponto a ponto), as atividades expiram. Pelo menos eu acho que eles fazem, porque a atividade apenas trava. Por exemplo:

user@somehost:~$ scp Desktop/ss.png [email protected]:/home/otheruser/Desktop/
ss.png                                      100% 849KB 848.7KB/s 00:00

e apenas fica pendurado. ctrl-c não funciona. arquivos menores vão sem um problema. scp'ing esse arquivo para o servidor e, em seguida, scp'ing para os trabalhos de mesmo nível.

A latência de ping na VPN (cliente para servidor) varia de 90 a 300 ms, dependendo do cliente.

Então, eu apreciaria algumas dicas sobre coisas para ler sobre como ajustar as configurações de rede para que todas as transferências pretendidas passem conforme pretendido.

    
por sostacked 11.04.2012 / 14:54

2 respostas

3

Isso parece um problema de MTU: pequenos arquivos funcionam, grandes não.

openvpn tem uma opção --mtu-test para investigar o tamanho do MTU através do link. Você pode executar isso.

Se mostrar uma MTU inferior a 1500, talvez você queira examinar as opções "fragment" e / ou "mssfix".

Veja os documentos link para opções / discussão relacionadas a MTU.

    
por 11.04.2012 / 15:09
0

Eu fiz um pouco de testes de velocidade do OpenVPN no passado, e é sempre o meu processador maximizando a velocidade. Como o OpenVPN não suporta múltiplos processadores, ele só pode rodar tão rápido quanto o processador permitir. Portanto, eu recomendo que você verifique o uso da CPU do servidor ao fazer o download desses arquivos grandes. A partir daqui você terá que começar a ajustar suas configurações do server.conf.

  • Teste vários padrões de criptografia (acabei usando o AES-128-CBC para obter a criptografia mais rápida / melhor do meu teste)
  • Teste o udp vs tcp (acabei usando o udp)
  • Use um tamanho menor de chave dh (1024 em 2048)
  • Reduza a verbosidade do registro (isso consumirá menos CPU e deixará mais espaço para a criptografia)
  • Teste várias configurações como rcvbuf, sndbuf, tun-mtu, tun-mtu-extra, mssfix, fragmento, fast-io, auth-none (após a maioria desses testes, acabei usando o fast-io porque os outros não afetou muito a velocidade nos meus testes)

Cada configuração vai ser um pouco diferente, mas essas são algumas das coisas que eu procuraria se fosse você. Infelizmente não consigo encontrar o documento dos meus testes de velocidade reais.

    
por 11.04.2012 / 15:14