OpenVPN desempenho terrível para outras máquinas na sub-rede do servidor [fechado]

4

Estou usando um "servidor" que é uma Apple TV de primeira geração hackeada executando Linux.

Estou tendo muita dificuldade em obter o desempenho do OpenVPN para ser o que eu esperaria com a minha nova configuração do OpenVPN. A rede é assim:

Página inicial da LAN 172.16.1.0/24 Clientes VPN (10.8.0.0/24) - > Airport Extreme (encaminhando porta OpenVPN) - > OpenVPN Server (escutando na porta 1294 do OpenVPN) - > Início iMac - > NAS Box

Estou usando o roteamento, com o seguinte arquivo de configuração. O roteamento é configurado usando o IP Masquerading no servidor OpenVPN, porque não posso criar rotas estáticas no meu gateway, que é um Airport Extreme). Observe que o uso da CPU no servidor VPN é mínimo em todos os testes abaixo.

Configuração do servidor:

port 1294
proto udp 
dev tun 
ca privnet/ca.crt
cert privnet/server.crt
key privnet/server.key
dh privnet/dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120 
comp-lzo
user nobody
group nobody
persist-key
persist-tun
status openvpn-status.log
verb 4
script-security 2
push "route 172.16.1.0 255.255.255.0"
topology subnet
route 192.168.163.0 255.255.255.0 10.8.0.2
tun-mtu 1500
fragment 1000
mssfix

Os testes que estou executando usam apenas um cliente VPN. Sem as linhas fragment e mssfix nas configurações do cliente e do servidor, o desempenho era tão ruim que obtive um quadro ou VNC por segundo ao VPNing através de duas conexões FiOS de 35Mb. Quando adicionei essas linhas, o desempenho da VPN melhorou, mas ainda é extremamente lento.

Meu caso de teste mais fácil é o desempenho do SCP.

  • O download do cliente via SCP faz com que o servidor OpenVPN sem VPN seja rápido (1 MBps).
  • O download do cliente via SCP do servidor OpenVPN com VPN ativada (usando os servidores VPN, LAN local e porta) é rápido (1 MBps)
  • O download do cliente via SCP de qualquer outro computador na sub-rede do servidor OpenVPN com VPN ativada é extremamente lento (< 50 KBps).
  • O upload do cliente via SCP para o servidor OpenVPN sem VPN é rápido (> 300 KBps)
  • O upload do cliente via SCP para o servidor OpenVPN com VPN ativado é rápido (> 300 KBps)
  • O upload do cliente via SCP para qualquer outro computador na sub-rede do servidor OpenVPN com VPN ativada é rápido (> 300 KBps)

Alguém pode sugerir o que fazer e por que estou vendo essas velocidades muito diferentes?

    
por Michael Gorbach 11.01.2012 / 17:43

4 respostas

1

Descobri: era um problema, hardware ou drivers, com a placa de rede no servidor. O "servidor" é uma Apple TV de primeira geração hackeada que executa o Linux e, por algum motivo, a ethernet integrada não estava funcionando muito bem ao fazer o mascaramento. Eu pluguei um dongle USB ethernet gigabit e tudo está bem!

    
por 04.02.2012 / 23:50
1

O MTU é tipicamente o problema entre as VPNs. Fragmento pode ajudar, mas você pode tentar baixar o MTU em uma máquina de teste e fazer um teste SCP.

A outra coisa que você pode olhar é NATing. Faça o TCPdumps nas interfaces internas (o tráfego não criptografado) e verifique se você está vendo os IPs esperados. Eu vi alguns NATs configurados incorretamente e roteando esse desempenho completamente sobrecarregado.

Além disso, um TCPdump informará o tamanho do pacote, o que é bom para a solução de problemas.

    
por 20.01.2012 / 06:47
1

Bem, é um tiro no escuro: Ao contrário da sabedoria convencional , eu tive uma situação através de uma conexão facilmente congestionada (ADSL 6 / 0,6Mbit / s) que funcionou melhor (devo dizer apenas?) se o tráfego OpenVPN é encapsulado em um fluxo TCP em oposição aos datagramas UDP.

O problema foi que os tempos limite no fluxo TCP interno ocorreram devido a pacotes UDP descartados do fluxo crypted (congestionamento sendo a fonte primária). De alguma forma, o escalonamento da janela no canal TCP interno não ajudava como esperado (deveria diminuir para basicamente um ciclo de envio-espera).

Quanto ao diagnóstico: instale wireshark e capture o tráfego openvpn e o tráfego lan e atente para retransmissões TCP excessivas. Estes são sinais de pacotes descartados. Veja também se há algum problema de roteamento com pacotes aparecendo na interface errada ou com o IP errado (conforme observado por JakeRobinson).

Tente também reduzir o tun-mtu para algo inocente como o 1300. Isso prejudicará a velocidade máxima, mas não na região em que você está tendo problemas.

Boa sorte e deixe-nos saber se você descobrir a causa!

    
por 23.01.2012 / 16:20
0

Se eu entendi bem sua configuração, acho que você tem uma linha ruim na configuração do servidor:

push "route 172.16.1.0 255.255.255.0"

Esta linha é diretiva para o servidor enviar para o cliente, essa rota para a sub-rede 172.16.1.0/24 é via servidor VPN, o que não está certo, não é?

E, em segundo lugar, acho que você precisa ter essa linha na configuração do servidor nesta linha:

push "route 192.168.163.0 255.255.255.0"

porque esta é a rede por trás de um servidor VPN ...

Você pode verificar isso, quando se conectar ao servidor VPN e listar suas rotas ...

    
por 25.01.2012 / 22:33