Como Configurar Failover no MikroTik v7 com Rota Específica para Ping

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=no

E 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-out1 com distance=10
  • A rota de backup usa dhcp-client0 com distance=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 o 8.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 11 e a de backup para 10, 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 print para verificar quando ocorre a troca de rotas.