Как настроить VRRP на Debian

Установку и настройку будем проводить на примере серверов SRV1 и SRV2 с выданным диапазоном адресов 91.142.82.216/29

  • ipv4 и ipv6 выдаются только подсетями

  • Минимальный размер подсети ipv4: /29, ipv6: /64.

Пример: выдана подсеть ipv4 адресов 91.142.82.216/29

  • 91.142.82.217 - виртуальный ip (который является шлюзом по умолчанию)
  • 91.142.82.218 - служебный ip
  • 91.142.82.219 - служебный ip
  • 91.142.82.220 - клиентский ip
  • 91.142.82.221 - клиентский ip
  • 91.142.82.222 - плавающий ip

У каждого Linux сервера есть два физических сетевых интерфейса: eth1 с белым IP адресом и доступом в Интернет, eth0 свободен

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

  • 91.142.82.220 — для SRV1
  • 91.142.82.221 — для SRV2

В качестве виртуального IP адреса, который будет автоматически переключаться между серверами в случае сбоев используется: 91.142.82.222

Важно. При настройке VRRP, в качестве адреса для виртуального IP не используется реальный адрес сервера, так как, в случае сбоя, его адрес переместится на соседний, и при восстановлении, он окажется изолированным от сети. Дело в том, чтобы вернуть свой адрес, нужно отправить в сеть VRRP пакет, но не будет IP адреса, с которого это возможно сделать.

Установка и настройка

Установить пакет keepalived нужно на обоих серверах, командой:

apt-get install keepalived

После завершения установки на обоих серверах правим конфигурационный файл

nano /etc/keepalived/keepalived.conf

Разберем опции более подробно:

  • vrrp_instance <название> — секция, определяющая экземпляр VRRP;
  • state <MASTER|BACKUP> — начальное состояние при запуске;
  • interface <название интефейса> — интерфейс, на котором будет работать VRRP;
  • virtual_router_id <число от 0 до 255> — уникальный идентификатор VRRP экземпляра, должен совпадать на всех серверах;
  • priority <число от 0 до 255> — задает приоритет при выборе MASTER, сервер с большим приоритетом становится MASTER;
  • virtual_ipaddress — блок виртуальных IP адресов, которые будут активны на сервере в состоянии MASTER. Должны совпадать на всех серверах внутри VRRP экземпляра.

Таким образом, при штатной работе, сервер SRV1 будет MASTER для виртуального IP 91.142.82.222

Если на сервере активирован файрвол, то нужно добавить разрешающие правила для multicast трафика и vrrp протокола с помощью iptables:

Для SRV1:

iptables -I INPUT -p vrrp -j ACCEPT
iptables -I OUTPUT -p vrrp -j ACCEPT

Для SRV2:

iptables -I INPUT -p vrrp -j ACCEPT
iptables -I OUTPUT -p vrrp -j ACCEPT

Активируем автозагрузки и запустим службу keepalived на обоих серверах:

sudo  /etc/init.d/keepalived start

После запуска службы keepalived, виртуальные IP будут присвоены интерфейсам из конфигурационного файла. Посмотрим текущие IP адреса на интерфейсе eth1 серверов:

SRV1:

SRV2:

Проверим работоспособность настроенной службы keepalived командой:

traceroute 8.8.8.8 –source=91.142.82.222