-
В облаке развернуто минимум две ВМ (backend01, backend02).
У вас есть сеть и подсеть в OpenStack, где будет размещён VIP.
-
На сетевых портах ВМ необходимо разрешить allowed address pairs.
Создайте порт с фиксированным IP в нужной подсети (VIP-адрес):
openstack port create --network <имя-сети> \ --fixed-ip subnet=<имя-подсети>,ip-address=<VIP-адрес> \ vrrp-port
Пример:
openstack port create --network net-public \ --fixed-ip subnet=subnet-public,ip-address=
10.0.0.252\ vrrp-port-100
Чтобы ВМ принимали трафик по VIP, нужно разрешить его на их сетевых портах.
-
Найдите ID порта ВМ:
openstack port list --server backend01
-
Добавьте allowed address pairs:
openstack port set --allowed-address ip-address=<VIP-адрес> <ID-порта>
Повторите для всех ВМ, участвующих в VRRP.
На каждой ВМ установите пакет:
Debian/Ubuntu:
sudo apt update && sudo apt install -y keepalived
RHEL/CentOS/AlmaLinux/Fedora:
sudo dnf install -y keepalived
Файл /etc/keepalived/keepalived.conf
:
global_defs { router_id BACKEND01 } vrrp_instance VI_1 { state MASTER interface
<имя-интерфейса> # например, eth0virtual_router_id
<VRID> # например, 252priority 120 advert_int 1 authentication { auth_type PASS auth_pass mysecret } virtual_ipaddress {
<VIP-адрес>/<маска> # например, 10.0.0.252/24} }
backend01 (BACKUP)
Файл /etc/keepalived/keepalived.conf
:
global_defs {
router_id BACKEND02 } vrrp_instance VI_1 { state BACKUP interface
<имя-интерфейса> # например, eth0
virtual_router_id
<VRID> # например, 252
priority 100 advert_int 1 authentication { auth_type PASS auth_pass mysecret } virtual_ipaddress {
<VIP-адрес>/<маска> # например, 10.0.0.252/24
} }
Запустите сервис:
sudo systemctl enable --now keepalived
Проверьте статус:
systemctl status keepalived
Убедитесь, что VIP привязан к MASTER:
ip a show dev eth0
-
С внешней машины выполните:
ping
10.0.0.252
-
Остановите keepalived на MASTER:
sudo systemctl stop keepalived
-
Убедитесь, что VIP перешёл на BACKUP.
-
Запустите сервис обратно:
sudo systemctl start keepalived
VIP снова вернётся на MASTER.