Назад | Перейти на главную страницу

Как обнаружить мертвого провайдера в многосетевом маршрутизаторе Linux и направить трафик через альтернативного провайдера?

В настоящее время я использую Linux (CentOS 5.9) в качестве маршрутизатора. Маршрутизатор является многосетевым и использует двух интернет-провайдеров для подключения к Интернету. Интернет-трафик из локальной сети распределяется по обеим линиям.

Когда конкретный интернет-провайдер обрывается, мне приходилось вручную маршрутизировать трафик через другого интернет-провайдера. Как лучше всего обнаружить неработающий шлюз интернет-провайдера и направить трафик через альтернативное подключение к интернет-провайдеру?

Я бы понял это с помощью простой работы cron

#!/bin/sh

PING=$(ping $ETH0ISPGW -I eth0 -c1 -W5 | awk -F '[ /]*' '/rtt/ {print $8}')

if [ -z "$PING" ]; then
        echo "Line is dead"
        echo "do something"
else
        echo "everything ok"
        echo "$PING"
fi

Если строка упала, удалите конкретное правило и позвольте ему отправить вам электронное письмо или что-то в этом роде.

Со специальной платформой маршрутизации, например pfSense, он сам позаботится о нескольких подключениях. независимо от конфигурации двух линий (балансировка нагрузки, резервное копирование и т. д.)

Вы можете использовать метрики маршрута.

 route add default gw $gw1 metric 1
 route add default gw $gw2 metric 2

таким образом, если линия 1 выйдет из строя, система выберет дополнительный маршрут. Не балансир, а он должен работать. Если вы тоже ищете балансировку, я бы посмотрел на что-нибудь аппаратное.