2009/11/17

Redundância Link + DNS

#!/bin/bash
# Script para mudança automática de rotas
# Compuserv Informática
# Marcio José Atanásio - marcioatanasio@gmail.com
# Date: 13/11/2009

# Variável de ambiente
FLAG=0

# Arquivo de log de sistema
ARQ_LOG=/var/log/routelister.log

# IP na Internet de verificação de rota
IPFLAG=200.169.74.122

# Tempo de Verificação (Segundos)
TEMPO=10

# Rota Padrão - Interface e Gateway
IFRTPADRAO=eth1
IPRTPADRAO=192.168.1.1

# IP Rota Alternativa - Gateway
IPRTALTERNATIVA=10.1.1.1

# Script para executar ao mudar - Conforme Rota Padrão
SPT_UP=/root/rt_up.sh
SPT_DOWN=/root/rt_down.sh

# Ajuste de rotas
ping -c 1 -w 5 -W 5 $IPFLAG -I $IFRTPADRAO > /dev/null
if [ $? = "0" ]; then
echo "`date +%d"/"%m"/"%Y" - "%H:%M:%S` - Rota Padrão" >> $ARQ_LOG
route del default > /dev/null
route del default > /dev/null
route add default gw $IPRTALTERNATIVA metric 100 > /dev/null
route add default gw $IPRTPADRAO metric 0 > /dev/null
echo `bash $SPT_UP`
fi

# Inicio do Lister
while true; do
ping -c 1 -w 5 -W 5 $IPFLAG -I $IFRTPADRAO > /dev/null
if [ $? = "0" ]; then
if [ $FLAG = "1" ]; then
echo "`date +%d"/"%m"/"%Y" - "%H:%M:%S` - Rota Padrão" >> $ARQ_LOG
route del default > /dev/null
route del default > /dev/null
route add default gw $IPRTALTERNATIVA metric 100 > /dev/null
route add default gw $IPRTPADRAO metric 0 > /dev/null
if [ -f $SPT_UP ]; then
echo `bash $SPT_UP`
fi
FLAG=0
fi
else
if [ $FLAG = "0" ]; then
echo "`date +%d"/"%m"/"%Y" - "%H:%M:%S` - Rota Alternativa" >> $ARQ_LOG
route del default > /dev/null
route del default > /dev/null
route add default gw $IPRTALTERNATIVA metric 0 > /dev/null
route add default gw $IPRTPADRAO metric 100 > /dev/null
if [ -f $SPT_DOWN ]; then
echo `bash $SPT_UP`
fi
FLAG=1
fi
fi

sleep $TEMPO
done

Nenhum comentário: