faillover mikrotik sem netwatch!
por
em 21-09-2015 às 23:38 (11518 Visualizações)
[CODE]
# Só altere oque está entre aspas
:global interface "pppoe-out1";
:global comentario1 "OI1";
:global comentario2 "OI2";
:global ipteste "177.135.94.46";
:global timeout "00:00:00.250";
:global email "[email protected]";
####################################
:global stats;
:global data [/system clock get date];
:global hora [/system clock get time];
/interface pppoe-client monitor $interface once do={:set $stats $status};
:if ($stats != "connected") do={
:local testerota [ip route get [find comment ="$comentario1"] disabled];
:local testerota2 [ip route get [find comment ="$comentario2"] disabled];
:if (testerota = false || testerota2 = false) do={ /ip route set [find comment="$comentario1"] disabled=yes;
{/ip route set [find comment="$comentario2"] disabled=yes}; :log warning "$interface down"; /tool e-mail send to="$email" subject="$interface down! - $data as $hora" body="$interface down! as $hora de $data." start-tls=yes; }} else={:local pingr [ping $ipteste interface=$interface count=50 interval=$timeout];
:local testerota [ip route get [find comment ="$comentario1"] disabled];
:local testerota2 [ip route get [find comment ="$comentario2"] disabled];
:if ($pingr <= 25) do={:if (testerota = false || testerota2 = false) do={ /ip route set [find comment="$comentario1"] disabled=yes;
{/ip route set [find comment="$comentario2"] disabled=yes}; :log warning "$interface com perda de pacote"; /tool e-mail send to="$email" subject="$interface com perda de pacote! - $data as $hora" body="$interface com perda de pacote! as $hora de $data." start-tls=yes;
}} else={ :local testerota [ip route get [find comment ="$comentario1"] disabled];
:local testerota2 [ip route get [find comment ="$comentario2"] disabled];
:if (testerota = true || testerota2 = true) do={:log warning "$interface operante"; /ip route set [find comment ="$comentario1"] disabled=no; {/
ip route set [find comment ="$comentario2"] disabled=no;/tool e-mail send to="$email" subject="$interface operante! - $data as $hora" body="$interface operante as $hora de $data." start-tls=yes;}}}}
[/CODE]
Olá pessoal, venho contribuir um pouquinho, não sou nenhum expert em mikrotik e muito menos em programação, então oque fiz foi, pesquisando e testando, e montei um sisteminha de fail-over, espero que ajude.
O intuito de montar esse script é que o uso no netwatch as vezes encomoda, vamos supor que bem na hora que deu o tempo do netwatch testar, o link perde 1 (um) pacotinho, ai ele ja acusa uma queda, te manda e-mail e tudo mais, com isso a caixa de e-mail fica lotada rsrsr. esse script tem 3 niveis, primeiro ele verifica se a interface pppoe-cliente está com o status de "connected", se não, ele desativa o link, se sim, ele dispara 50 pacote para o IP pre determinado no script (possivel alterar para mais ou para menos esse valor), e depois faz uma comparação do resultado, se a perca foi maior que 50% ele desativa o link (possivel ajustar tambem), e se a perca foi inferior ele NÂO altera o link e por ultimo tem uma condição onde que, caso nenhuma das condições anteriores tenham sido satisfeitas (oque desativaria o link), ele ativa o link.
Bom esse script ajuda para quem utiliza balance(estático ou automatico) e autentica direto no mikrotik(pode ser adaptado para quem usa modem roteado), nesse script você informa a interface de saida que será testada, os comentários das rotas (pois é atraves dos comentários que elas são identificadas, o Ip de destino para ser testado e o tempo de espera maximo de cada pacote.
Altere apenas os valores que estão entre aspa, vou explicar cada campo,
:local interface "pppoe-out1"; # aqui você coloca a interface de saida a ser testada
:local comentario1 "OI1"; # aqui você coloca o mesmo comentario que está na sua rota
:local comentario2 "OI2";
:local ipteste "8.8.4.4"; # aqui informa o IP de destino que o teste vai se basear
:local timeout "00:00:00.250"; #aqui você informa o tempo de resposta maximo de cada pacote, no exemplo está para 250ms, lembrando que um valor muito alto indica link ruim, então não aumente muito, pois ai o script irá desativar a rota ruim.
Como podem ver á dois campos para inserir comentario (comentario1 e comentario2), pois geralmente quem utiliza balance, cria duas rotas para cada link, uma rota com as devidas marcações e a outra rota fica como default ou mesmo backup da default.
script testado na versão 6.30.1, depois de aplicar o script é só agendar para executar a cada 1 minuto por exemplo, script bem simples, pode ser configurado para enviar e-mail tambem, se alguem quiser melhorar e divulgar aqui ... a vontade.
Comentários
+ Enviar Comentário