Configuração de failover de links de internet
Publicado por Wagner Souza (última atualização em 06/02/2015)
[ Hits: 12.224 ]
Homepage: https://medium.com/@souzaw
Para quem utiliza dois links de internet e precisa fazer um failover, ou seja, quando um cair o outro assume, fazendo assim uma redundância de links, evitando ficar offline.
#!/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
Criar usuários com ponto (nome.usuario) no Slackware
script para travar usuario discado
Firewall para Compartilhamento de Conexão 3G
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Instalar o Microsoft Edge no Slackware 15
Instalando Brave Browser no Linux Mint 22
vídeo pra quem quer saber como funciona Proteção de Memória:
Primeira vez utilizando Linux Ubuntu 22.04 e já tenho problemas… (4)
warsaw parou de funcionar após atualização do sistema (solução) (1)
Separar trafego da VPN da VPS (0)
Formatando cartão de memoria que nao formata[AJUDA] (17)
Desde que seja DDR3, posso colocar qualquer memória? [RESOLVIDO] (6)