[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Чем можно переключать маршрут по-умолчанию на роутере



Доброго времени суток всем,

Ситуация такая - маршрутизатор с тремя интерфейсами в интернет:

  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: