Не виждам защо да не пингваш дори всяка секунда?
Работа би ти свършил shell-script от сорта:
Код:
#!/bin/bash
GATE_A="10.0.0.1" #ИП адрес на първия гейт
GATE_B="192.168.0.1" #ИП адрес на втория гейт
main() {
while :
do
sleep 1
ping -c1 ${GATE_A} || route_2
ping -c1 ${GATE_B} || route_1
done
}
route_2() {
#********
#
# Тук пишеш правила да пратиш целия трафик през $GATE_B
#
#********
while :
do
ping -c1 ${GATE_A} && route_0
sleep 1
done
}
route_1(){
#********
#
# Тук пишеш правила да пратиш целия трафик през ${GATE_A}
#
#********
while :
do
ping -c1 ${GATE_B} && route_0
sleep 1
done
}
route_0() {
#*****
# Тук пишеш правила за рутиране при нормално състояние:
# BG -> interface1, INTERNET -> interface2
#******
main
}
route_0
#EOF
Примерния код го написах, без да тествам, така че може да има и синтактични грешки. Давам го само да посочи евентуална логика и алгоритъм за решение. Примерът трябва да върши работа дори при едновременен отказ и на двете мрежи.