Hi All. Ситуация - как по условию выполнить принудительное переключение направления трафика на другой рутер. Есть локальная сеть 10.10.10.0/24. В ней стоит прокси сервер FreeBSD 5.1 с одной сетевой карточкой 10.10.10.100 Есть два выхода в инет от двух провайдеров – интерфейсы 10.10.10.1 и 10.10.10.2 соответственно. Обычно весь www трафик идет через 10.10.10.1, но в случае аварии у провайдера нужно переключиться на запасной канал. Вручную все понятно:
route delete default 10.10.10.1 && route add default 10.10.10.2
Все, трафик идет через второго провайдера.
Вопрос встал иначе – если канал ложится в течении нерабочего времени (с 18 до 09) – его желательно переключить автоматом, а утром уже спокойно во всем разобраться. Идея ясна – раз в пять минут пингуешь какой-то хост, в случае неактивности ставишь контрольную отметку, пингуешь раз в минуту другие хосты, если нет ответа – переключаешь. Со скриптами на shell пока сложно, а работу сдать нужно до 17-00. Help, please!
Маленькое уточнение: пинговать нужно не "какой-то" хост, а сервер (или шлюз) провайдера. Так оно понадежнее будет. Предположим, что адрес провайдера 1 - 10.10.10.101, тогда================================================
#!/usr/local/bin/bash
/bin/ping -c3 10.10.10.101
if [ "$?" != "0" ];
then
/sbin/route delete default 10.10.10.1 && /sbin/route add default 10.10.10.2
fi
================================================Вот, собственно, и все. Осталось только прописать этот скриптик в cron с нужным расписанием.
Спасибо, все заработало!
>Спасибо, все заработало!
Еще можно поставить Кваггу или Зебру и настроить ОСПФ на обоих маршрутизаторах. Именно для этого и сделано, чтобы когда один маршрут в инет падает, то начинал работать второй, а когда первый поднимается, то опять все идет через него.