O MikroTik RouterOS versão 7 permite configurar sistemas de failover automático entre conexões WAN de forma simples e eficiente. Neste guia, você aprenderá a criar um script de failover baseado em ping , ajustando automaticamente as rotas com base na disponibilidade da internet.
Objetivo
Criar um sistema automatizado que:
- Teste periodicamente a conectividade com servidores públicos (como 8.8.8.8 ou 8.8.4.4);
- Alterne automaticamente entre duas rotas (uma primária e uma de backup);
- Use rotas identificadas por comentários para facilitar a manutenção;
- Funcione nativamente no MikroTik v7 , com uma interface PPPoE e outra DHCP.
Requisitos
- Um roteador MikroTik com RouterOS v7.x instalado
- Uma interface PPPoE (
pppoe-out1) - Uma interface DHCP (
dhcp-client0) como backup - Rotas padrão configuradas com distâncias diferentes (primária e backup)
- Conhecimento básico de terminal e scripting do MikroTik
Passo a Passo
1. Configurar as Interfaces WAN
Suponha que você tem uma conexão PPPoE configurada:
/interface pppoe-client
add name=pppoe-out1 user=user1 password=senha1 disabled=noE uma segunda interface configurada como cliente DHCP:
/interface dhcp-client
add interface=ether1-wan disabled=no comment="dhcpBackup"Certifique-se de que
ether1-wané a interface física correta usada para a conexão de backup.
2. Criar Rotas Padrão com Distância Diferenciada
Agora vamos criar as rotas padrão, cada uma apontando para um gateway diferente e com distâncias distintas:
/ip route
add dst-address=0.0.0.0/0 gateway=pppoe-out1 distance=10comment="gwPrimary"
add dst-address=0.0.0.0/0 gateway=dhcp-client0 distance=11comment="gwBackup"- A rota primária usa
pppoe-out1comdistance=10 - A rota de backup usa
dhcp-client0comdistance=11, então só será usada se a primária falhar
3. Criar o Script de Failover
Vamos criar um script chamado check-gateway:
/system script
add name="check-gateway"policy=\
ftp,reboot,read,write,policy,test,winbox,password,sniff,sensitive,api source={
:if ([/ping count=4interface=pppoe-out1 8.8.8.8] > 0) do={
# Se o ping para 8.8.8.8 funcionar, define as rotas
/ip route set [find comment="gwPrimary"] distance=10
/ip route set [find comment="gwBackup"] distance=11
} else={
# Teste de ping para 8.8.4.4 caso 8.8.8.8 não responda
:if ([/ping count=4interface=pppoe-out1 8.8.4.4] > 0) do={
# Se pingar 8.8.4.4, mantém primary ativa
/ip route set [find comment="gwPrimary"] distance=10
/ip route set [find comment="gwBackup"] distance=11
} else={
# Se ambos falharem, ativa backup
/ip route set [find comment="gwPrimary"] distance=11
/ip route set [find comment="gwBackup"] distance=10
}
}
}💡 Este script testa primeiro o
8.8.8.8. Se ele falhar, tenta o8.8.4.4. Se ambos falharem, considera o link principal fora e ativa o backup via DHCP.
4. Agendar o Script com o Scheduler
Para que o script rode automaticamente, configure um agendador:
/system scheduler
add name="FailoverCheck"interval=10s on-event="/system script run check-gateway"Esse agendador executa o script a cada 10 segundos , verificando o status dos links.
Entendendo o Funcionamento
- Se o link primário estiver OK: a rota primária (
distance=10) é mantida ativa. - Se o link primário falhar: o script muda a distância da rota primária para
11e a de backup para10, ativando-a automaticamente. - Testes duplos com 8.8.8.8 e 8.8.4.4: garantem maior precisão na detecção de falhas reais na internet, evitando falsos positivos.
Dicas Adicionais
- Use IPs confiáveis para ping: prefira servidores como Google (8.8.8.8), Cloudflare (1.1.1.1) ou OpenDNS (208.67.222.222).
- Adapte o tempo do scheduler: quanto menor o intervalo, mais rápido o failover, mas maior o uso de CPU.
- Monitore logs: use
/log printpara verificar quando ocorre a troca de rotas.