Tested in VyOS 1.3-beta-202112120443 & VyOS 1.4-rolling-202112160318
VRRP health-check script stops working when setting up a sync group
To reproduce:
set interfaces ethernet eth0 address '1.1.1.37/24' set interfaces ethernet eth0 description 'outside' set high-availability vrrp group TST virtual-address '1.1.1.36/24' set high-availability vrrp group TST health-check failure-count '3' set high-availability vrrp group TST health-check interval '2' set high-availability vrrp group TST health-check script '/config/scripts/vrrp-health.sh' set high-availability vrrp group TST interface 'eth0' set high-availability vrrp group TST priority '100' set high-availability vrrp group TST vrid '1'
Health-check script works. Next:
set interfaces ethernet eth1 address '10.1.1.2/24' set interfaces ethernet eth1 description 'inside' set high-availability vrrp group TST_LAN virtual-address '10.45.1.1/24' set high-availability vrrp group TST_LAN interface 'eth1' set high-availability vrrp group TST_LAN priority '100' set high-availability vrrp group TST_LAN vrid '2'
Health-check script works. Next:
set high-availability vrrp sync-group SYNCgrp member 'TST' set high-availability vrrp sync-group SYNCgrp member TST_LAN set high-availability vrrp sync-group SYNCgrp transition-script master '/config/scripts/vrrp-master.sh'
Health-check STOP working
Corresponding keepalived config:
vyos@vyos:~$ cat /run/keepalived/keepalived.conf
# Autogenerated by VyOS
# Do not edit this file, all your changes will be lost
# on next commit or reboot
global_defs {
dynamic_interfaces
script_user root
notify_fifo /run/keepalived/keepalived_notify_fifo
notify_fifo_script /usr/libexec/vyos/system/keepalived-fifo.py
}
vrrp_script healthcheck_TST {
script "/config/scripts/vrrp-health.sh"
interval 2
fall 3
rise 1
}
vrrp_instance TST {
state BACKUP
interface eth0
virtual_router_id 1
priority 100
advert_int 1
preempt_delay 0
virtual_ipaddress {
1.1.1.36/24
}
track_script {
healthcheck_TST
}
}
vrrp_instance TST_LAN {
state BACKUP
interface eth1
virtual_router_id 2
priority 100
advert_int 1
preempt_delay 0
virtual_ipaddress {
10.45.1.1/24
}
}
vrrp_sync_group SYNCgrp {
group {
TST
TST_LAN
}
}