Резервный провайдер на сервере

Задача:
В случае отключения основного канала, переключиться на резервный. Если основной канал восстанавливается, переключиться обратно.
Решение достаточно простое. Необходимо написать необльшой скрипт, контролирующий доступность соединения с провайдером и запустить его по Cron. Успешный ping роутера провайдера будем считать достаточным для принятия решения о том работает канал или нет.

Советую подправить маленько исходники ... что бы скрипт пинговал не роутер провайдера, а сайт в интернете (например бесплатные DNS фирмы Google - это  8.8.8.8), то после SECOND добавляем переменную 
HOST=8.8.8.8 и в графе

if ping -c4 $MAIN > /dev/null 2>&1; then

$MAIN меняем на $HOST 

Исходный текст 
Так же можно скачать


MAIN - шлюз основного провайдера
SECOND - шлюз дополнительного провайдера

Сохраняем скрипт к примеру в /root/scripts/inet.sh

sudo nano /etc/crontab  и добавляем строку в конце файла

* * * * * root /root/scripts/inet.sh
и сохраняем. Это даст запуск скрипта от имени root каждую минуту !

Далее приступим к настройке интерфейсов в файле /etc/network/interfaces 

auto eth0
iface eth0 inet static
     address xxx.xxx.xxx.xxx
     netmask 255.255.255.xxx
     gateway xxx.xxx.xxx.xxx

auto eth1
iface eth1 inet static
     address yyy.yyy.yyy.yyy
     netmask 255.255.255.yyy 

После того как интерфейсы настроены нужно включить форвардинг пакетов!
ВАЖНО! В файерволе NAT должен быть на обеих выходных интерфейсах. Например, если выходные интерфейсы eth0 и eth1:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE


Всё это можно внести в фал /etc/rc.local до графы exit 0

ПЕРЕЗАГРУЖАЕМСЯ И ПРОВЕРЯЕМ ))))

Комментарии

Популярные сообщения из этого блога

FreeBSD: gpart — пример работы с дисками