Miran — База знанийMiran — База знаний

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

Установку и настройку будем проводить на примере серверов 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 свободен

BlockNote image

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

91.142.82.220 — для SRV1

91.142.82.221 — для SRV2

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

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

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

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

yum install keepalived

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

/etc/keepalived/keepalived.conf

BlockNote image

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

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 на обоих серверах:

systemctl enable keepalived
systemctl start keepalived

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

SRV1

BlockNote image

SRV2

BlockNote image

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

traceroute 8.8.8.8 –source=91.142.82.222

BlockNote image

Похожие статьи

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