Muitas vezes as empresas possuem redundância de link na matriz e uma conexão VPN com as filiais, mas geralmente os clientes da conexão apontam somente para o link
principal, e quando este cai... Sem VPN pra todo mundo!!!
Diante de um questionamento sobre o assunto e de uma emergência no trabalho, consegui com a ajuda de alguns Blogs e do tradicional "fuçômetro", criar uma solução
para este problema.
Cenário
Matriz:
- Router mikrotik;
- Link dedicado operadoraA;
- Link dedicado operadoraB;
- OpenVPN Server.
Filiais:
- Router mikrotik;
- Link de internet;
- OpenVPN client.
1 . Duplicando o client da VPN
Como já existe um client da VPN configurado, vamos copiar a configuração para criar a redundância.
No menu PPP em interface, dê dois cliques no client que já está ativo e na janela que abrir clique em 'copy'.
Na cópia criada, altere o nome da conexão, para nossa configuração utilizaremos os nome "vpn-operadoraA" para a conexão ao link principal da matriz e, "vpn-operadoraB" para a conexão ao link secundário.
Na configuração clonada (ativa-operadoraB), na aba 'Dial Out', insira o IP do link secundário da matriz.
Não se esqueça de alterar o nome da conexão que já existia, ele será utilizado nos scripts.
2 . Criando os scripts
No menu 'System', selecione Scripts e clique em 'Add' (+), altere os seguintes campos:
- Name: ativa-operadoraA
- Source:
-
interface ovpn-client disable vpn-operadoraB;
- interface ovpn-client enable vpn-operadoraA;
Clique em 'Add' novamente e crie o segundo script com os parâmetros:
- Name: ativa-operadoraB
- Source:
- interface ovpn-client disable vpn-operadoraA;
- interface ovpn-client enable vpn-operadoraB;
Pronto, os scripts para ativar e desativar os clients da VPN estão configurados. No primeiro, ele desativa a interface de conexão com o link secundário e ativa a conexão com o link principal. No segundo ocorre o contrário.
Para testar basta selecionar e clicar em "Run-script", observe no menu PPP se as interfaces responderam aos comandos.
3 . Programando os testes
Para testar a disponibilidade do link e alternar os clients da VPN, utilizaremos o Netwatch, que baseado no resultado de um ping disparado a um determinado host ele
executa as ações determinadas.
No menu Tools, selecione Netwatch e clique em Add(+), preencha os seguintes campos:
- Aba Host:
- Host: <ip do link principal da matriz>
- Interval: 00:00:10 (o ping será disparado a cada 10 segundos)
- Timeout: 500 ms (tempo de inatividade para que os scripts sejam executados)
- Aba Up:
- On Up: ativa-operadoraA (script que ativa a conexão com o link principal)
- Aba Down:
- On Down: ativa-operadoraB (script que ativa a conexão com o link secundário)
Estas configurações também podem ser adicionadas diretamente no console, para isso abra um terminal e digite o seguinte comando:
# /tool netwatch add host=<ip principal> interval=10s timeout=500ms up-script=ativa-operadoraA down-script=ativa-operadoraB
O Netwatch disparará um ping a cada 10 segundos para o IP da matrix, se o tempo de resposta for maior que 500ms ele desativará o client do link principal e ativará o client do link secundário.
Pronto, redundância configurada. Vale ressaltar que a solução acabou de ser implementada, o tempo de testes não foi muito grande, mas a princípio atendeu à solicitação e os resultados foram os esperados.
Referência:
Previamente publicado em: