Отказоустойчивый шлюз
С помощью протокола CARP можно не только создавать отказоустойчивые конфигурации брандмауэров, но и гарантировать непрерывность обслуживания сетевых сервисов.
Для Linux существует два варианта реализации CARP: в виде модуля ядра (ioremap.net/projects/carp) и пользовательской программы UCARP (pureftpd.org/project/ucarp). Причем оба проекта не полностью совместимы со спецификацией CARP. Первый работает только для ветки 2.4/2.6 и давно не развивается, поэтому его можно встретить только на роутерах, использующих старые ядра. Второй совместим с Linux 2.4+, OS X, OpenBSD, MirBSD и NetBSD (ставить его в последних трех нет смысла). И хотя последние изменения кода датированы 2010 годом, UCARP работает в современных дистрибутивах и доступен в репозиториях. Единственный минус проекта — функция pfsync в UCARP не реализована, поэтому все соединения при переходе на другой роутер будут сброшены. Но стоит пользователям переподключиться, и они сразу получат доступ к требуемому ресурсу.
Итак, ставим UCARP. В Ubuntu и Debian он уже есть в репозитории, поэтому собирать ничего не нужно:
$ sudo apt-get install ucarp
Реализация в виде userspace имеет свои особенности, UCARP, по сути, обычная программа, которую можно запустить любым способом, в том числе из стартовых скриптов. В официальном readme (download.pureftpd.org/pub/ucarp/README) показан только общий для всех дистрибутивов принцип, помогающий понять, как построен UCARP. Пользователям Ubuntu/Debian повезло больше, поскольку мантеинер положил в пакет все нужные скрипты и предоставил хорошее описание (/usr/share/doc/ucarр).
Прописываем на мастер-сервере:
$ sudo /etc/network/interfaces
iface eth0 inet static
address 192.168.10.2
netmask 255.255.255.0
ucarp-vid 1
ucarp-vip 192.168.10.1
ucarp-password password ucarp-advskew 0 ucarp-advbase 1 ucarp-master yes
iface eth0:ucarp inet static address 192.168.10.1
netmask 255.255.255.0
Перезапускаем сеть:
$ sudo /etc/init.d/networking restart
Второй интерфейс прописываем по аналогии, изменяем только IP-адрес и значение ucarp-vid.
Теперь резервный роутер:
$ sudo /etc/network/interfaces
iface eth0 inet static
address 192.168.10.3
netmask 255.255.255.0 ucarp-vid 1
ucarp-vip 192.168.10.1
ucarp-password password
ucarp-advskew 100
iface eth0:ucarp inet static address 192.168.10.1
netmask 255.255.255.0
Все, можно использовать.
В итоге у нас получилась несложная в реализации, но весьма эффективная система, позволяющая подстраховаться в том случае, когда шлюз или маршрут выходит из строя.
Автор: xvzL Просмотров: 5603
Дмитрий
Откуда взялся ucarp-vip , что это за виртуальный ip такой и откуда он берется ?