FailOver sem Scripts e sem Netwatch para Links Roteados

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

add 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

Para adicionar comentários, você deve ser membro de MK-AUTH.

Join MK-AUTH

Enviar-me um email quando as pessoas responderem –

Respostas

  • muito bom, valeu o tutorial...

  • 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.

  • 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.

  • Boa tarde amigos, Jean como eu crio esse IP virtual. gostei da sua solucao porem nao estou conseguindo implementar.

  • 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?

This reply was deleted.