Применительно к данному сценарию, если требуется, чтобы VRRP работал только на внешнем интерфейсе, конфигурация /etc/keepalived/keepalived.conf будет выглядеть следующим образом:
vrrp_script chk_dead {
script "/usr/bin/pgrep -x vpnsvc"
interval 1
}
vrrp_instance eth1_1 {
interface eth1
virtual_routes {
src 10.1.1.10 10.1.2.0/24 via 10.1.1.1
}
track_script {
chk_dead
}
virtual_ipaddress {
10.1.1.10.24
}
notify_master /etc/keepalived/scripts/notify_master
notify_backup /etc/keepalived/scripts/notify_backup
notify_fault /etc/keepalived/scripts/notify_fault
priority 100
advert_int 3
garp_master_refresh 5
virtual_router_id 1
}
Ниже приведено описание блоков в отдельности.
1. Скрипт, который каждую секунду проверяет работоспособность демона vpnsvc:
vrrp_script chk_dead {
script "/usr/bin/pgrep -x vpnsvc"
interval 1
}
Если демон vpnsvc по каким-то причинам выгрузится, состояние шлюза изменится с BACKUP/MASTER на FAULT. После восстановления работы демона vpnsvc, состояние шлюза изменится с FAULT на BACKUP/MASTER.
2. Параметры VRRP процесса (vrrp_instance):
vrrp_instance eth1_1 {
interface eth1
virtual_routes {
src 10.1.1.10 10.1.2.0/24 via 10.1.1.1
}
track_script {
chk_dead
}
virtual_ipaddress {
10.1.1.10.24
}
notify_master /etc/keepalived/scripts/notify_master
notify_backup /etc/keepalived/scripts/notify_backup
notify_fault /etc/keepalived/scripts/notify_fault
priority 100
advert_int 3
garp_master_refresh 5
virtual_router_id 1
}
· interface ethN – интерфейс к которому происходит привязка VRRP-процесса.
· virtual_routes – блок, в котором можно указать какие маршруты нужно добавить при переходе в состояние MASTER и убрать при переходе в состояние BACKUP.
· track_script – блок, указывающий какие блоки vrrp_script будут выполняться в рамках данного VRRP процесса (см. пункт 1).
· virtual_ipaddress – задает виртуальный IP-адрес на интерфейсе (также является блоком).
· notify_master|backup|fault – настройки, отвечающие за выполнение скриптов при переходе в каждое из состояний. Требуется указать полный путь до каждого скрипта.
· priority n – приоритет маршрутизатора, шлюз с более высоким приоритетом переходит в состояние MASTER.
· advert_int n – интервал отправки advertisement-пакета n секунд.
· garp_master_refresh n – раз в n секунд посылать gratuitous ARP. Действует на шлюз в состоянии MASTER.
· virtual_router_id n – VRRP VRID (идентификатор виртуального маршрутизатора), данное поле присутствует в advertisement-пакетах. Значения virtual_router_id в одном бродкаст домене у разных кластеров должны различаться.
Также при необходимости в процесс можно добавить следующие параметры:
· auth_pass <пароль> – пароль для аутентификации advertisement-пакетов. Пароль должен быть не более 8 символов. Не используйте в пароле знак пробела ( ), кавычек (“”), или знак восклицательного знака (!) первым символом.
· preempt_delay n – после перезагрузки шлюза или демона keepalived будет пауза n секунд (от 0 до 1000) перед переходом в состояние MASTER. По умолчанию равен 0.