Script de Failover / Redundância para Mikrotik
A algum tempo quando troquei de emprego comecei a lidar com Mikrotik praticamente todos os dias; e com o uso constante, surgem as necessidades.
Diferente de outras soluções (ex. EdgeOS), o RouterOS não possui nenhuma solução “pronta” para redundância e failover.
No Wiki da Mikrotik existem diversos scripts para implementar FailOver automático, mas ainda assim optei por desenvolver um próprio que atendesse todas minhas necessidades.
Explicando de forma bem geral o script, ele trabalha com N gateways de internet, N tabelas de rota e N hosts de monitoramento.
As definições básicas do script são:
-
Array de hosts que deverão ser testados via ping;
-
Array com os nomes das tabelas de roteamento;
-
Array com os gateways;
-
Tolerância de perda de pacotes para um link ser considerado down. São disparados 5 pings para cada host definido no primeiro array. Se utilizar dois hosts e quiser considerar um link down com 30% de perda, basta especificar o valor “3”
Definidos estes valores, durante a execução o script irá criar rotas para os hosts de monitoramento saindo pelo gateway 1, vai excluir as rotas, recriá-las com saída para o gateway 2, excluí-las e assim sucessivamente.
Se a perda de pacotes equivaler com o valor definido na tolerância de perda, o script irá desabilitar aquele gateway em todas tabelas de rota, com exceção da principal.
Enfim… quem tiver dúvidas leia o script (tem recurso de enviar email quando um gateway estiver offline ;). Ou então mandem suas dúvidas e/ou sugestões.