Olá amigos, fazendo umas pesquisas, encontrei na wiki um sistema avançado de Failover pra quem tem modens roteados. Muitas vezes usamos o NetWatch para monitorar, outras vezes scripts que, periodicamente pingam em hosts remotos e, se páram, desativam as rotas, etc. Mas não são tão funcionais, pois vez ou outra a rota é desativada enquanto o link está em pleno funcionamento, ou então, o link cai e a rota continua ali recebendo o tráfego da rede interna.
Pois bem, com esse sistema de failover usaremos apenas as rotas (/ip route) para fazer essa verificação, sem scripts e sem NetWatch!
Vamos imaginar um balance com dois links roteados.
Usaremos, também uma redundância (distance 1 e 2) para que, se um link cair, o outro assuma o trafego da rede.
Se faz necessário usar mais de um ip publico, pra ser mais exato dois, ou dns por link:
Exemplo: Vamos monitorar dns_publico1A e dns-Publico1B via LINK1
dns_publico2A e dns-publico2B via LINK2.
blz??
Então vamos lá...
Basicamente os passos são os seguintes:
Primeiro escolhemos dois ips ou dns publicos para serem usados como teste nos dois links: Vou colocar aqui, mas vc pode escolher à seu critério:
Para o LINK1
DNS1: 189.38.95.95
DNS2: 208.67.222.222
Para o LINK2:
DNS1: 189.38.95.96
DNS2: 208.67.220.220
Usaremos também um ip falso para ser nosso "Gateway Virtual",
Tenha anotado os IPs verdadeiro dos Gateway de cada link e crie um IP virtual, que será o nosso "Gateway Virtual", de preferência um ip que não seja usado na rede.
Vamos anotar também:
LINK1:
Gateway original: 121.122.123.1
Gateway falso: 10.1.1.1
LINK2:
Gateway original: 192.168.222.1
Gateway falso: 10.2.2.2
Vamos as regras
//////////////////////////////////////////////////////////////////////////////////////
1 - Direcionamos os dois DNS publico escolhidos para o LINK1; e depois os dois escolhidos para o LINK2. Ficando assim:
Somente aqui usaremos os Gateways verdadeiro.
add distance=1 dst-address=189.38.95.95/32 gateway=121.122.123.1 scope=10
add distance=1 dst-address=208.67.222.222/32 gateway=121.122.123.1 scope=10add distance=1 dst-address=189.38.95.96/32 gateway=192.168.222.1 scope=10
add distance=1 dst-address=208.67.220.220/32 gateway=192.168.222.1 scope=10
Pronto essa parte...
//////////////////////////////////////////////////////////////////////////////////////
2 - Vamos Direcionar o IP Falso (Gateway Virtual) para os DNS Publicos (que são os nossos testes). Cuidado e muita atenção aqui nessa parte, pois você precisa direcionar cada um dos DNS que estarão testando os links para o "gateway virtual" correspondente (analise suas anotações para fazer certinho). Também ative o "check-gateway=ping" em todos.
As regras ficarão assim:
add check-gateway=ping distance=1 dst-address=10.1.1.1/32 gateway=189.38.95.95 scope=10add check-gateway=ping distance=1 dst-address=10.1.1.1/32 gateway=208.67.222.222 scope=10
add check-gateway=ping distance=1 dst-address=10.2.2.2/32 gateway=189.38.95.96 scope=10
add check-gateway=ping distance=1 dst-address=10.2.2.2/32 gateway=208.67.220.220 scope=10
//////////////////////////////////////////////////////////////////////////////////////
3 - Agora, vamos direcionar as todas as marcações de rotas para o "Gateway Virtual" referente ao link a que pertence, já fazendo junto a redundância dela, para caso um link caia, automaticamente o outro link assuma todo o trafego:
Regras:
add distance=2 gateway=10.1.1.1 routing-mark=PARA_LINK1
add distance=1 gateway=10.2.2.2 routing-mark=PARA_LINK1
add distance=1 gateway=10.1.1.1 routing-mark=PARA_LINK2
add distance=2 gateway=10.2.2.2 routing-mark=PARA_LINK2
//////////////////////////////////////////////////////////////////////////////////////
Por Fim,
4 - Criamos as rotas Default (padrão).
Com uma particularidade, em vez de ela apontar para o gateway verdadeiro de cada link, iremos apontá-la para o "Gateway virtual" de cada um:
add distance=1 dst-address=0.0.0.0/0 gateway=10.1.1.1
add distance=2 dst-address=0.0.0.0/0 gateway=10.2.2.2
//////////////////////////////////////////////////////////////////////////////////////
blz???
Espero ajudar a todos!!!
Créditos:
Concepção original: wiki.mikrotik
Respostas
Parabéns, boa solução. Me surgiu uma dúvida, essas regras serão acrescentadas nas regras que já existem no routes? A rota default que já existe vai permanecer?
Boa tarde amigos, Jean como eu crio esse IP virtual. gostei da sua solucao porem nao estou conseguindo implementar.
Olá Skynet. Sim, volta de forma automática pro link principal...
Skynet disse:
Primeiramente parabéns pela iniciativa, mas tenho uma duvida. Neste sistema, se o primeiro link falhar passa para o segundo, mas quando o primeiro voltar a responder ele volta a ser o principal automaticamente? Obrigado.
muito bom, valeu o tutorial...