LINUX.ORG.RU

В принципе очень просто. Имея 2 канала, выбираеш 1 основной выбираеш на нем айпишник который он постоянно видит на своем пути, скажем гейт. И пингуеш его по крону раз в 2 минуты, если пинг есть все нормально, если нету, тогда кидаеш новые ДНС сервера в resolve.conf меняеш роутинг соответственно и рестартуеш бинда на всякий случай. НУ и соответственно теперь ты пинговать должен какую то контрольную точку уже на втором канале.... но при этом ты все равно проверяеш тот кторый упал через его интерфейс... в общем там с роутингом потанцуеш, и добьешься того чего нужно.могу даже пример привести

#!/bin/bash MY_DNS="192.168.10.66" CHECKPOINT="195.5.46.19" DS_GATE="10.224.192.1" DS_DNS1="10.0.0.1" DS_DNS2="70.120.130.20"

ADSL="192.168.1.100" ADSL_DNS1="195.5.46.12" ADSL_DNS2="195.5.46.11"

DNS=""

ping -c 3 $CHECKPOINT >/dev/null RETVAL=$?

if [ $RETVAL -ne 0 ]; then DNS=`cat /etc/resolv.conf | grep $DS_DNS1` if [ "$DNS" = "" ]; then echo "Ukrtelekom down :-/" echo "Switching to Datasvit" echo "...done" /sbin/route del -net 0.0.0.0 netmask 0.0.0.0 gw $ADSL /sbin/route add -net 195.0.0.0 netmask 255.0.0.0 gw $ADSL /sbin/route add -net 0.0.0.0 netmask 0.0.0.0 gw $DS_GATE echo "nameserver "$DS_DNS1 >/etc/resolv.conf echo "nameserver "$DS_DNS2 >>/etc/resolv.conf echo "nameserver "$MY_DNS >>/etc/resolv.conf fi else DNS=`cat /etc/resolv.conf | grep $ADSL_DNS1` if [ "$DNS" = "" ]; then echo "Ukrtelekom up :-)" echo "Switching to Ukrtelekom ..." /sbin/route del -net 0.0.0.0 netmask 0.0.0.0 gw $DS_GATE /sbin/route del -net 195.0.0.0 netmask 255.0.0.0 gw $ADSL /sbin/route add -net 0.0.0.0 netmask 0.0.0.0 gw $ADSL echo "nameserver "$MY_DNS >/etc/resolv.conf echo "nameserver "$ADSL_DNS1 >>/etc/resolv.conf echo "nameserver "$ADSL_DNS2 >>/etc/resolv.conf echo "... done" fi fi

2 канала основной укртелекомовский, этот скрипт проверяет его раз в 2 минуты

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.