Skip to main content

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.

Link para o script no GitHub.