В настоящее время я использую 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 выйдет из строя, система выберет дополнительный маршрут. Не балансир, а он должен работать. Если вы тоже ищете балансировку, я бы посмотрел на что-нибудь аппаратное.