Recentemente publiquei um script (
VPN automática entre sites), nesse artigo mostrarei qual é o cenário de aplicação do script, porquê utilizá-lo, funcionamento básico e técnicas de troubleshooting.
O cenário mais simples que o script proverá a solução de contingência pela internet está demonstrado na imagem a baixo:
A empresa XPTO possui dois sites, site A localizado em São Paulo que conta com uma rede de desktops e um servidor de arquivo, ambos na rede 172.16.10.0/24, além de um firewall
Linux com iptables puro que possui acesso a internet pelo IP 200.2.2.2, o site B situado no Paraná tem apenas uma rede de desktops 172.16.20.0/24 e também um firewall Linux com iptables puro com acesso a internet pelo IP 189.9.9.9, as pessoas que estão no site B acessam diariamente o servidor de arquivos do site A sendo um recurso vital para o trabalho deles, a comunicação entre o sites é realizado um circuito P2P.
Porém um belo dia esse circuito para de funcionar e não existe previsão de retorno, seu chefe olha para você e fala: "Precisamos fazer uma contingência de alguma forma e o quanto antes!". Como os dois sites possuem conexão com a internet através de um firewall Linux e as redes de cada escritório precisam se comunicar isso torna o momento ideal para utilizar o script.
Utilização básica
Imaginando que todas as premissas para o funcionamento do script já foram atendidas (veremos nas próximas páginas), bastaria executar os passos abaixo.
1. Baixar o script para um servidor ou um dos firewalls (site A ou site B), nesse exemplo será copiado para o firewall do site A no diretório /etc/vpnautomatica.
2. Tornar o script executável.
# chmod 755 /etc/vpnautomatica/vpnautomatica.sh
3. Criar o arquivo com as configurações de rede do site A.
# vim 1.sitea.redes
Adicionar as linhas:
linux=1
left=200.2.2.2
leftnexthop=200.2.2.1
172.16.10.0/24#INTERNASITEA
4. Criar o arquivo com as configurações de rede do site B.
# vim 2.siteb.redes
Adicionar as linhas:
linux=1
left=189.9.9.9
leftnexthop=189.9.9.1
172.16.20.0/24#INTERNASITEB
5. Executar o script:
# ./vpnautomaitca.sh
Escolher a opção que deseja, nesse caso é ativar a contingência.
Escolher o site que caiu, como possui apenas duas localidades não faz muita diferença qual escolher.
Esperar a execução do script.
6. Validando se os túneis estão no ar, esse comando deve ser executado nos firewalls Linux:
# IPsec auto --status
A imagem acima exibi que os túneis foram fechado sem problemas na fase 1 e na fase 2.
Caso queira uma visão mais específica use o grep mais o comentário utilizado no arquivo redes.
# IPsec auto --status | grep -i internasitea --color
7. Validando se o site B está chegando no servidor do site A.
Quando a operadora restabelecer o circuito, basta executar o script para remover a VPN.
1. Executar o script:
# ./vpnautomaitca.sh
Informar qual site voltou a funcionar.
Esperar a execução do script.
8. Validando se os túneis foram desativados, esse comando deve ser executado nos firewall Linux.
# IPsec auto --status
9. Validando o acesso ao servidor.
Conforme a imagem acima, repare que quando o circuito está funcionando mostrará todos os saltos (apesar disso depender muito da configuração da operadora) todavia quando a contingência estiver ativada mostrará apenas o primeiro e o último salto, entrando e saindo da VPN.
A solução fornecida pelo script foi pensada nos mais diversos cenário de rede possível, na próxima página apresentarei um cenário um pouco mais complexo.