qxada07
(usa Slackware)
Enviado em 23/11/2015 - 09:17h
@bruninhocielo
Bom dia...
O segredo para o funcionamento da internet quando você possui mais de 1 link de internet esta associado ao default gateway.
Ex: Você tem 02 links de internet sendo o principal a VIVO e o secundario Embratel.
Sempre o default gateway configurado tem que ser o da VIVO e quando o link da VIVO cair o default gateway deve alterado para o link da Embratel.
No script que você informou, você configurou corretamente a parte que fala sobre FailOver???? Ele que é o responsável em fazer as alterações entre links principal e secundario.
Segue abaixo a configuração que eu falei para você.
#############################################
###### Inicio Explicação Configração de FailOver #####
#############################################
Configurando o FailOver dos links
Este serviço vai permitir que caso haja uma falha no primeiro link, o secundário possa assumir até o retorno do primário.
Neste cenário, há dois gateways:
10.0.2.2 (Primário)
192.168.1.1 (Secundário)
E abaixo, está o script utilizado para fazer o FailOver dos dois links:
#!/bin/bash
#---------------------------#
# CONFIGURAÇÃO DOS GATEWAYS #
#---------------------------#
GW1=10.0.2.2
GW2=192.168.1.1
LOG=/root/rc.firewall.log
#------------------------------#
# INÍCIO DA FUNÇÃO DE FAILOVER #
#------------------------------#
# Aqui optei em por uma função para deixar a estrutura do
# script mais organizada e legível. É de suma importância
# que você esteja familiarizado com o shell script
failover ()
{
# Criação de um loop infinito para testar a disponibilidade
# dos links de internet
while [ 1 ]
do
# Altera sempre para o gateway padrão dentro da tabela
# main de roteamento, ou seja, quando o link primário voltar,
# automáticamente a navegação volta para este
/sbin/ip route replace default via $GW1
# Neste for, o comando dig retornará os dois IPs relacionados
# ao site do UOL. Você poderia por qualquer site aí, porém o UOL
# retorna dois IPs que serão utilizados pelo script para saber
# se o link de internet principal está fora
for i in `dig +short uol.com.br`
do
# Verificando a comunicação do link de internet
/bin/ping -c 1 $i
done
# Caso o resultado do comando anterior seja 0 (zero), o link
# de internet principal está ok. Se for 1 (um) houve falha no comando
# deduzindo assim ausência de conexão. Quem vai determinar isso é o
# comando echo $?. Mais abaixo, haverá um if para testar as condições
STATUS_CMD_LINK=`echo $?`
if [ $STATUS_CMD_LINK -eq 0 ]; then
# Caso haja sucesso no teste do comando do ping
# as regras para o compartilhamento de internet serão inseridas
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
else
# Se o link falhar, os comandos mais abaixo farão a limpeza
# das regras de iptables e irão configurar o segundo link de internet
# e será criado um arquivo de log informando quando houve a queda
echo "_________________________" >> $LOG
echo " " >> $LOG
echo "# LINK SECUNDARIO ATIVO.: `date +%d/%m/%y-%H:%M:%S`">> $LOG
echo " " >> $LOG
echo "_________________________" >> $LOG
/sbin/ip route replace default via $GW2
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
fi
# A cada 2 minutos (120 segundos) será feito um teste no link
# principal para constar se o mesmo encontra-se no ar.
sleep 120
done
}
####### CHAMA A FUNÇÃO ########
failover
Lembre-se de salvar o seu script e dar permissão de execução ao mesmo:
# chmod +x failover.sh
É interessante deixar o script sendo executado em segundo plano, para liberar o terminal para outras atividades.
# ./failover.sh
Não esqueça de pôr a execução do script na inicialização do sistema operacional. Edite o arquivo /etc/rc.local e insira o caminho do script:
# vi /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/root/failover.sh &
exit 0
Após salvar o arquivo, reinicie a máquina e veja se o script estará rodando com o comando:
# ps -auxf | grep failover
Pronto! Os links já estão configurados e liberando a Internet para a rede local. Vamos agora configurar o serviço de DHCP e, por último, acrescentar mais algumas regras às tabelas do IPtables.
###########################################
###### Fim Explicação Configração de FailOver #####
###########################################