Gerenciamento de conexões
Este artigo tem por objetivo mostrar como pode ser feito uma redundância com duas conexões de modo que uma possa substituir a outra em caso de falta de uma das duas.
Parte 4: Terceiro script de roteamento
Passaremos para o terceiro script, veremos o exemplo depois explico:
#!/bin/sh
#
# By Márcio-MaRuJo®
#
# "GERENCIAMENTO DE LINKS 2"
#
# IRÁ GERAR UM ARQUIVO COM O RESULTADO DO COMANDO.
ping -c 20 192.168.109.1 >/tmp/link
# DEPOIS IRÁ CONSULTAR O ARQUIVO, SE A RESPOSTA ESTIVER DE ACORDO, EXECUTARÁ O PROPOSTO.
if [ `cat /tmp/link | grep -c "100% packet loss"` -eq 1 ];
then
ip rule del from 10.1.10.0/24 table tabela2
ip rule add from 10.1.10.0/24 table tabela1
ip rule >/tmp/rotas
else if [ `cat /tmp/link | grep -c "0% packet loss"` -eq 1 ];
then
/etc/umapastaqualquer/script2
ip rule list >/tmp/rotas
if [ `cat /tmp/rotas | grep -c "tabela2"` -eq 2 ];
then
ip rule del from 10.1.10.0/24 table tabela2
fi
fi
fi
#
# By Márcio-MaRuJo®
#
# "GERENCIAMENTO DE LINKS 2"
#
# IRÁ GERAR UM ARQUIVO COM O RESULTADO DO COMANDO.
ping -c 20 192.168.109.1 >/tmp/link
# DEPOIS IRÁ CONSULTAR O ARQUIVO, SE A RESPOSTA ESTIVER DE ACORDO, EXECUTARÁ O PROPOSTO.
if [ `cat /tmp/link | grep -c "100% packet loss"` -eq 1 ];
then
ip rule del from 10.1.10.0/24 table tabela2
ip rule add from 10.1.10.0/24 table tabela1
ip rule >/tmp/rotas
else if [ `cat /tmp/link | grep -c "0% packet loss"` -eq 1 ];
then
/etc/umapastaqualquer/script2
ip rule list >/tmp/rotas
if [ `cat /tmp/rotas | grep -c "tabela2"` -eq 2 ];
then
ip rule del from 10.1.10.0/24 table tabela2
fi
fi
fi
Neste caso aqui mudará somente uma coisa, se ele achar alguma ocorrência com a expressão "0% packet loss" ele chamará o script2, que fará o procedimento para efetuar a troca.
Esses 2 últimos comandos foram colocados por que o sistema sempre irá adicionar a regra para a rota dependendo da tabela, daí será gerado novamente um novo arquivo, se nesse arquivo estiver 2 ocorrências para "tabela1" ou "tabela2", nos 2 últimos scripts, então ele irá deletar para que fique somente uma regra (observe que são para os 2 scripts).
OBS: É bom prestar a atenção na hora em que você irá definir no primeiro script o caminho do script que será chamado.
Parabéns... Faz tempo que eu procuro uma solução assim. Todo mundo me mandava comprar um routeador com load balance, pq o linux não fazia isso.
Show de bola... Resolveu um problemão...
Parabens, comunidade VOL, cada dia melhor....