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 3: Segundo script de roteamento
Passaremos então para o segundo script, veremos o exemplo e depois explico:
#!/bin/sh
#
# By Márcio-MaRuJo®
#
# "GERENCIAMENTO DE LINKS 1"
#
# IRÁ GERAR UM ARQUIVO COM O RESULTADO DO COMANDO.
ping -c 20 200.144.22.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 tabela1
ip rule add from 10.1.10.0/24 table tabela2
else if [ `cat /tmp/link | grep -c "0% 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 list >/tmp/rotas
if [ `cat /tmp/rotas | grep -c "tabela1"` -eq 2 ];
then
ip rule del from 10.1.10.0/24 table tabela1
fi
fi
fi
#
# By Márcio-MaRuJo®
#
# "GERENCIAMENTO DE LINKS 1"
#
# IRÁ GERAR UM ARQUIVO COM O RESULTADO DO COMANDO.
ping -c 20 200.144.22.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 tabela1
ip rule add from 10.1.10.0/24 table tabela2
else if [ `cat /tmp/link | grep -c "0% 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 list >/tmp/rotas
if [ `cat /tmp/rotas | grep -c "tabela1"` -eq 2 ];
then
ip rule del from 10.1.10.0/24 table tabela1
fi
fi
fi
Aqui o raciocínio é o mesmo, porém executará outros procedimentos, vejamos quais. Primeiro executará um comando de rede que todos já conhecem, o "PING". Este irá gerar um arquivo com o nome "link" com o resultado dentro do diretório /tmp, em seguida fará um procura, dentre o resultado somente pela expressão "100% packet loss" (isso é um exemplo de um comando ping de retorno negativo). Encontrado, beleza? Então fará uma nova pesquisa, se achar a expressão "0% packet loss" ele irá gerar um novo arquivo e fazer uma nova busca, se achar uma ocorrência com "0% packet loss", irá deletar a regra da "tabela1".
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....