Configuração de failover de links de internet
Publicado por Wagner Souza (última atualização em 06/02/2015)
[ Hits: 12.358 ]
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
Adicionar máquinas em lote no SAMBA
Administração do Samba + LDAP - ainda para terminar
Script - Realizando relatório do servidor
Migração de Aplicações para Ambiente Web - Uma Abordagem Prática
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Instalando Discord no Debian 13
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Software livre - será que eu estou tão errado assim? (9)
Boot do PosRog so funciona em notebook (1)