Чем можно переключать маршрут по-умолчанию на роутере
Доброго времени суток всем,
Ситуация такая - маршрутизатор с тремя интерфейсами в интернет:
eth0 - provider1
ppp0 - provider2
ppp1 - provider3
На всех интерфейсах настроен policy routing через iproute2.
- через provider1 (eth0) маршрутизируется большинство хостов в сети;
- через provider2 (ppp0) маршрутизируются несколько определенных хостов
и весь траффик к определенной внешней сети x.x.x.x/28;
- provider3 используется как совсем запасной вариант, на случай отказа
двух предыдущих.
Сейчас все интерфейсы настроены как default, но с разными метриками.
eth0 - metric 0, ppp0 - metric 10, ppp1 - metric 20 - соответственно
пока жив интерфейс eth0, то весь трафик по-умолчанию идет через него,
если его опустить, то пойдет через ppp0 и т.д.
Теперь сама суть вопроса - eth0 никогда сам не "умрет" (в отличии от
ppp). На нем может потеряться связность со шлюзом провайдера или с
интернетом (при этом до шлюза провайдера трафик ходит).
Соответственно ищу инструмент, который сможет отслеживать наличие связи
с интернетом и переключать default route в соответствии с определенной
политикой.
Например:
Если нет выхода в интернет через provider1 в течении 5 минут, то убрать
default route с eth0 и продолжать следить за состоянием линка (при этом
траффик пойдет через ppp0). Если выход в интернет появился через
provider1 и стабилен в течении 5 минут, то вернуть default route с
нужной метрикой на eth0.
Аналогично для остальных линков.
--
WBR, Andrey Tataranovich
Reply to: