Този скрипт се пуска при стартиране на машината и на 15 секунди проверява свързаността
GeSHi (Bash):
#!/bin/bash
#status 1 -> ISP1
#status 2 -> ISP2
#GW_VIA_ISP1 = 195.138.149.25
#GW_VIA_ISP1 = 212.50.27.229
status=1
while [ 1 ]
do
if [ "$status" = "1" ]
then
#echo "route ISP1"
ping -c 4 195.138.149.25>/dev/null
if [ "$?" -ne "0" ]
then
route del default gw 195.138.149.25
route add default gw
status=2
(date ;echo "route via spnet")>>/var/log/dgd.log
fi
else
#echo "route ISP2"
ping -c 4 195.138.149.25>/dev/null
if [ "$?" = "0" ]
then
route del default gw 212.50.27.229
route add default gw 195.138.149.25
status=1
(date;echo "route back to tpn") >>/var/log/dgd.log
fi
fi
sleep 15
done
В случай че отпадне връзката до ISP1 превключва през ISP2 и започва да дебне дали не се е оправила връзката до ISP1 (понеже ип-то което пингва за да провери е реално и връзка до него може да им и през другият доставчик се прави тази схема)
GeSHi (Bash):
#!/bin/bash
P1_NET=195.138.149.24/29
P2_NET=212.50.27.228/30
IF1=eth1.234
IF2=eth1.423
P1=195.138.149.25
P2=212.50.27.229
IP1=195.138.149.26
IP2=212.50.27.230
P0_NET=192.168.1.0/24
P10_NET=192.168.10.0/24
IF0=eth2
IF10=eth0
ip route add $P1_NET dev $IF1 src $IP1 table T1
ip route add default via $P1 table T1
ip route add $P2_NET dev $IF2 src $IP2 table T2
ip route add default via $P2 table T2
ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2
ip rule add from $IP1 table T1
ip rule add from $IP2 table T2
ip route add $P10_NET dev $IF10 table T1
ip route add $P0_NET dev $IF0 table T1
ip route add $P2_NET dev $IF2 table T1
ip route add 127.0.0.0/8 dev lo table T1
ip route add $P10_NET dev $IF10 table T2
ip route add $P0_NET dev $IF0 table T1
ip route add $P1_NET dev $IF1 table T2
ip route add 127.0.0.0/8 dev lo table T2