opcoes, uteis para tornar a VPN mais confiavel e mais resistente a problemas de conectividade, sao a "persistkey" e a "persisttun". Elas fazem com que o daemon mantenha a interface tun aberta e as chaves carregadas quando e reiniciado (quando a VPN e restabelecida depois de uma queda de conexao, por exemplo), o que torna mais rapida a restauracao do link e evita problemas diversos:persistkeypersisttunOutra opcao util ao utilizar conexoes com IP dinamico e a opcao "float", que permite que o tunel continue aberto mesmo que o endereco IP da outra maquina mude. Em situacoes normais, a mudanca de IP faria com que a conexao fosse encerrada e o tunel fosse interrompido ate que fosse reiniciado (seja manualmente ou seja pelo uso da opcao keepalive). A opcao "float" torna o processo mais transparente, ja que o OpenVPN passa a monitorar as mudanca de enderecos, mantendo o tunel aberto enquanto houver conexao entre as duas partes. Essa opcao tambem deve ser incluida tanto na configuracao do servidor quanto na do cliente:floatTemos aqui um exemplo mais incrementado de configuracao do servidor, onde a porta e especificada manualmente e sao usados os parametros que acabamos de ver:dev tunproto udpport 22222keepalive 10 120comp-lzopersistkeypersisttunfloatifconfig 10.0.0.1 10.0.0.2secret static.keyA configuracao no cliente e praticamente a mesma, com a adicao da linha "remote", que especifica o endereco do servidor e a mudanca na linha "ifconfig", onde a ordem dos enderecos sao trocados:remote hardway.no-ip.orgdev tunproto udpport 22222keepalive 10 120comp-lzopersistkeypersisttunfloatifconfig 10.0.0.2 10.0.0.1secret static.keyRoteando pacotes atraves da VPNOriginalmente, o cliente tera acesso apenas ao proprio servidor. Para que ele tenha acesso aos demais hosts da rede, e necessario realizar alguns passos adicionais.O primeiro e ativar o roteamento de pacotes no servidor, de forma que ele passe a encaminhar os pacotes recebidos do cliente para a interface de rede local. Mesmo que o servidor possua uma unica placa de rede, a VPN e vista pelo sistema como uma interface separada, de forma que, do ponto de vista do sistema operacional, a VPN e a rede local sao duas placas de rede separadas.O roteamento e feito usando dois comandos (executados no servidor):# echo 1 > /proc/sys/net/ipv4/ip_forward# iptables -t nat -s 10.0.0.2 -A POSTROUTING -o eth0 -j MASQUERADEO primeiro ativa o roteamento de pacotes no Kernel e o segundo orienta o sistema a encaminhar os pacotes recebidos a partir do endereco IP do cliente (10.0.0.2, no exemplo) para a interface de rede local (eth0, no exemplo). Estes dois comandos precisam ser adicionados em algum dos scripts de inicializacao do sistema (como o "/etc/rc.local) para que sejam executados a cada boot.O proximo passo e executar o comando abaixo no cliente, de forma que ele passe a consultar o servidor ao tentar acessar enderecos dentro da faixa usada pela rede local:# route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.0.0.1 dev tun0Note que o comando especifica a faixa de enderecos usada na rede local (192.168.1.0, no exemplo), a mascara, o endereco IP do servidor do outro lado da VPN e a interface virtual usada pela VPN (tun0).A partir dai, o cliente conseguira acessar outros micros da rede, montar compartilhamentos