Стоит Ubuntu 9.04, поднят LAMP, squid, sams.
В сервере три сетевые карты: одна смотрит в локалку, две - на разных провайдеров (Дальсвязь и НТК). Адреса провайдеры выдали статические.
Клиенты ходят в интернет через прокси. Основной канал - НТК.
Задача: огранизовать автоматическое переключение на резервный канал Дальсвязи, если НТК вдруг "падает". И переключение на него, как только связь восстанавливается.
Есть у кого подобный опыт? Может подскажете?
Я пробовал вставить в крон скриптик
Код: Выделить всё
#!/bin/bash
GW_PRIM='93.88.xx.xxx' #наш главный шлюз
GW_RES='82.162.xxx.xx' #наш резервный шлюз
test_host='78.109.22.22' #появляется только при переходе на резервный канал
HOST1='ya.ru' #хосты для проверки
HOST2='primorye.ru'
HOST3='mail.ru'
R1='ok'
R2='false'
log='/tmp/gw_change.log'
OK="Всё ок"
BAD="Каналья нет!!! Пробуем что-то делать"
if [ -f /tmp/gw_change ]
then
{
if /bin/ping -c 3 $test_host &> /dev/null
then
{
route del default && echo удаляем резервный маршрут
route add default gw $GW_PRIM && echo добавляем основной маршрут
rm -f /tmp/gw_change && echo удаляем фаил индикатор
route del -host $test_host gw $GW_PRIM && echo удаляем статический маршрут
: > /tmp/gw_change.log
}
fi
}
elif /bin/ping -c 3 $HOST1 &> /dev/null && echo $HOST1 $R1
then echo $OK
elif
{
echo $HOST1 $R2
/bin/ping -c 3 $HOST2 &> /dev/null && echo $HOST2 $R1
}
then echo $OK
elif
{
echo $HOST2 $R2
/bin/ping -c 3 $HOST3 &> /dev/null && echo $HOST3 $R1
}
then
echo $OK
else
{
echo $HOST3 $R2
route del default && echo "удаляем основной маршрут" >> $log
route add default gw $GW_RES && echo "добавляем резервный маршрут" >> $log
route add -host $test_host gw $GW_PRIM && echo "добавляем статический маршрут" >> $log
echo > /tmp/gw_change
#mailx -s "ВНИМАНИЕ резервный канал на `hostname`" postmaster
echo $BAD $log
cat /tmp/gw_change.log | mailx -s "ВНИМАНИЕ резервный канал на `hostname`" postmaster
}
fi