Estabilizando e otimizando a conexão

Usando a configuração simplificada do exemplo anterior, você notará que a VPN não será muito estável, pois qualquer interrupção na comunicação entre as duas máquinas derrubará o link, até que você reinicie o serviço do OpenVPN (no cliente), forçando a reconexão, como em:

# /etc/init.d/openvpn restart

Vamos então a um conjunto de parâmetros de configuração que permitem estabilizar a VPN, fazendo com que o OpenVPN passe a monitorar a conexão e restabelecê-la automaticamente sempre que necessário.

O primeiro, e mais importante, é o parâmetro “keepalive“, que faz com que o servidor e o cliente monitorem a conexão, enviando pings periódicos um para o outro, e reiniciem a VPN automaticamente caso não recebam resposta dentro de um período determinado. Esta opção é especialmente importante em VPNs usadas através de links ADSL ou qualquer outro tipo de conexão que não seja completamente estável. Um exemplo de uso seria:

keepalive 10 120

O primeiro número especifica o intervalo dos pings e o segundo o timeout, depois do qual a VPN é reiniciada. Nesse caso, o ping é enviado a cada 10 segundos sem atividade e a VPN é reiniciada depois de 120 segundos sem respostas. Caso o link seja interrompido, o cliente tenta restabelecer a VPN periodicamente, até que tenha sucesso. Esta linha deve ser incluída tanto na configuração do servidor quanto na do cliente.

Opcionalmente, você pode incluir a linha “inactive“, para especificar um tempo máximo para as tentativas de reconexão. Se quiser que o cliente desista depois de uma hora, por exemplo, inclua a linha:

inactive 3600

O parâmetro “comp-lzo” faz com que o OpenVPN passe a compactar os dados transmitidos através do túnel (é necessário que o pacote “lzo” esteja instalado). O algoritmo usado pelo OpenVPN é bastante leve, por isso o uso adicional de processamento, tanto no servidor quando nos clientes é pequeno. A compressão dos dados não faz milagres, mas é uma boa forma de melhorar o desempenho da VPN ao utilizar links lentos ou congestionados. Esta é outra opção que deve ser incluída tanto no servidor quanto nos clientes para que seja usada:

comp-lzo

Outras duas opções, úteis para tornar a VPN mais confiável e mais resistente a problemas de conectividade, são a “persistkey” e a “persisttun“. Elas fazem com que o daemon mantenha a interface tun aberta e as chaves carregadas quando é reiniciado (quando a VPN é restabelecida depois de uma queda de conexão, por exemplo), o que torna mais rápida a restauração do link e evita problemas diversos:

persist­key
persist­tun

Outra opção útil ao utilizar conexões com IP dinâmico é a opção “float“, que permite que o túnel continue aberto mesmo que o endereço IP da outra máquina mude. Em situações normais, a mudança de IP faria com que a conexão fosse encerrada e o túnel fosse interrompido até que fosse reiniciado (seja manualmente ou seja pelo uso da opção keepalive). A opção “float” torna o processo mais transparente, já que o OpenVPN passa a monitorar as mudança de endereços, mantendo o túnel aberto enquanto houver conexão entre as duas partes. Essa opção também deve ser incluída tanto na configuração do servidor quanto na do cliente:

float

Temos aqui um exemplo mais incrementado de configuração do servidor, onde a porta é especificada manualmente e são usados os parâmetros que acabamos de ver:

dev tun
proto udp
port 22222
keepalive 10 120
comp-lzo
persist­key
persist­tun
float
ifconfig 10.0.0.1 10.0.0.2
secret static.key

A configuração no cliente é praticamente a mesma, com a adição da linha “remote”, que especifica o endereço do servidor e a mudança na linha “ifconfig”, onde a ordem dos endereços são trocados:

remote guiadohardware.no-ip.org
dev tun
proto udp
port 22222
keepalive 10 120
comp-lzo
persist­key
persist­tun
float
ifconfig 10.0.0.2 10.0.0.1
secret static.key

:. Leia mais sobre servidores Linux

Sobre o Autor

Redes Sociais:

Deixe seu comentário

X