Настройка отказоустойчивого IP-адреса на основе Ucarp на Debian/Ubuntu

UCARP — реализация протокола отказоустойчивой маршрутизации CARP в пространстве пользователя (user-space)

CARP (Common Address Redundancy Protocol) позволяет сделать так, чтобы у нескольких хостов в одной сети (широковещательном домене) был общий IP-адрес. Эта группа хостов называется группой избыточности (redundancy group). Группе назначается один IP-адрес, которые используется совместно (но не одновременно!) всеми членами этой группы. Внутри группы есть один основной хост (master) и остальные -запасные (backups). IP-адрес в один момент времени есть только у основного хоста (master host), он отвечает на все ARP-запросы по этому адресу. Каждый хост в одно и то же время может входить в несколько различных групп.

Протокол CARP был разработан и предложен командой OpenBSD как свободная замена протокола VRRP, имеющего некоторые сложности с патентами, поскольку он основывается на проприетарном и запатентованном протоколе HSRP.

Выбор ucarp-мастера среди нескольких кандидатов происходит следующим образом:
1.Проверяется директива ucarp-master, если установлена в yes — больший приоритет;
2.Рассчитывается формула advbase + advskew/255, меньшее значение — больший приоритет;
3.Сравниваются ip-адреса хостов, меньший ip-адрес — больший приоритет.

В одной сети может быть несколько кластеров, нужно только следить, чтобы ID виртуальных кластеров (ucarp-vid) различались.

Используем два сервера:
Debian8 -192.168.1.85 (master)
Ubuntu14-192.168.1.84 (backup)
Отказоустойчивый IP-адрес(VIP), который будет балансировать между двумя серверами — 192.168.1.125

1.Настройка Ucarp на первом сервере(Debian8)

Проверка текущих сетевых настроек

 

2.Установка Ucarp

 

3.Настройка Ucarp
В файл с настройками сети добавляем

Перезапускаем сетевые настройки и проверяем наличие отказоустойчивого IP-адреса

 

Описания параметров, доступных из ucarp —help

– интерфейс, на котором слушать запросы

– реальный IP-адрес хоста

– запускаться как служба/демон в фоновом режиме

– вызывать скрипт выключения при выходе

— номер группы – параметр ucarp-vid

– пароль — параметр ucarp-password

– VIP-адрес (отказоустойчивый адрес) – параметр ucarp-vip

– запускать скрипт при получении роли master

– запускать скрипт при получении роли backup

– вынуждает Backup-сервер с более высоким приоритетом пытаться перехватить на себя роль Master у текущего Master-сервера с более низким приоритетом.

— управление приоритетом выбора мастера из нескольких кандидатов группы – параметр ucarp-advskew

— интервал оповещения хостов в группе о своем статусе –параметр ucarp-advbase

В логах

C рабочей станции проверяем доступность отказоустойчивого IP-адреса и mac-адреса,который ему соответствует. Mac-адрес VIP-адреса должен соответствовать mac-адресу интерфейса eth0 на сервере 192.168.1.85

 

4.Настройка Ucarp на втором сервере (Ubuntu14)

Просмотр текущих сетевых настроек

 

5.Установка Ucarp

 

6.Настройка Ucarp
В файл с настройками сети добавляем

Как видно из файла,отличие только в одной строке
ucarp-master no
т.к роль этому серверу будет присвоена как backup

Перезапускаем сетевые настройки и проверяем ОТСУТСТВИЕ отказоустойчивого IP-адреса на интерфейсе, но ЗАПУЩЕННЫЙ ucapr-процесс

В логах

Тестируем балансировку отказоусточивого IP-адреса
Например, при наличии доступа к консоли сервера, отключим сеть на master-сервере

В логах backup-сервера указывается,что он взял нас себя роль master-сервера

Проверяем наличие VIP-адреса на втором сервере

С рабочей станции проверяем доступность VIP-адреса и mac-адрес,который за ним закреплен
Mac-адрес VIP-адреса должен соответствовать mac-адресу интерфейса eth0 на сервере 192.168.1.84

При просмотре пакетов c помощью tcpdump на обоих серверах увидим

Текущий на данный момент master-сервер(192.168.1.84) ежесекундно(intvl 1s) отправляет сообщения/объявления по протоколу VRRPv2(Virtual Router Redundancy Protocol) о своем состоянии и приоритете(prio1) с ассоциированным номером группы(vrid1) на зарезервированный групповой адрес 224.0.0.18, оповещая таким образом все backup-сервера о своем состоянии.

Источник:

https://ru.wikipedia.org/wiki/CARP
https://letsclearitup.com.ua/ubuntu/otkazoustoychivyiy-ip-adres-s-ispolzovaniem-ucarp.html
https://rbgeek.wordpress.com/2012/09/02/simple-failover-cluster-using-ucarp-on-ubuntu/
http://sysadm.pp.ua/linux/carp-ubuntu.html
http://www.oslogic.ru/knowledge/515/ucarp-prostejshij-otkazoustojchivyj-klaster/

Комментирование и размещение ссылок запрещено.

Комментарии закрыты.

Яндекс.Метрика