0

I have two VM's running keepalived. I have created a vrrp script to check if a container is running and if not decrease the priority of the vrrp node so that it causes a failover. However on the master node I get the below errors. I have also added my config files, anyone know why I get this error when there is only one vrrp? On the backup node the script runs and adjusts the weight as expected.

Starting Keepalived v2.2.8 (04/04,2023), git commit v2.2.7-154-g292b299e+
Keepalived[57489]: Running on Linux 5.14.0-503.31.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Mar 6 09:41:44 EST 2025 (built for Linux 5.14.0)

Keepalived[57489]: Command line: '/usr/sbin/keepalived' '--dont-fork' '-D'

Keepalived[57489]: Opening file '/etc/keepalived/keepalived.conf'.

Keepalived[57489]: Configuration file /etc/keepalived/keepalived.conf

Keepalived[57489]: NOTICE: setting config option max_auto_priority should result in better keepalived performance

Keepalived[57489]: Starting VRRP child process, pid=57491

Keepalived_vrrp[57491]: Registering Kernel netlink reflector

Keepalived_vrrp[57491]: Registering Kernel netlink command channel

Keepalived_vrrp[57491]: Assigned address 10.50.0.52 for interface ens192

Keepalived_vrrp[57491]: (VI_1) ignoring tracked script sc4s_health_check with weights due to address_owner

Keepalived_vrrp[57491]: Warning - script sc4s_health_check is not used

Keepalived_vrrp[57491]: Registering gratuitous ARP shared channel

Keepalived_vrrp[57491]: (VI_1) removing VIPs.

Keepalived[57489]: Startup complete

systemd[1]: Started LVS and VRRP High Availability Monitor.

Keepalived_vrrp[57491]: VRRP sockpool: [ifindex(  2), family(IPv4), proto(112), fd(12,13) multicast, address(224.0.0.18)]

Keepalived_vrrp[57491]: (VI_1) Receive advertisement timeout

Keepalived_vrrp[57491]: (VI_1) Entering MASTER STATE

Keepalived_vrrp[57491]: (VI_1) setting VIPs.

/etc/keepalived/keepalived.conf NODE1

! Configuration File for keepalived

global_defs {
   enable_script_security
   script_user root
   }

vrrp_script sc4s_health_check {
    script                      "/etc/keepalived/sc4s_health_check_script.sh"
    interval                    2
    weight                      20
    rise                        2
    fall                        2
}

vrrp_instance VI_1 {
    state                       MASTER
    interface                   ens192
    virtual_router_id           51
    priority                    255
    advert_int                  1
    authentication {
        auth_type               PASS
        auth_pass               #####
        }


    virtual_ipaddress {
        ####/26
    }
    track_script {
         sc4s_health_check
    }
}

/etc/keepalived/keepalived.conf NODE2


! Configuration File for keepalived

global_defs {
   enable_script_security
   script_user root
   }

vrrp_script sc4s_health_check {
    script                      "/etc/keepalived/sc4s_health_check_script.sh"
    interval                    2
    weight                      20
    rise                        2
    fall                        2
}

vrrp_instance VI_1 {
    state                       BACKUP
    interface                   ens192
    virtual_router_id           51
    priority                    254
    advert_int                  1
    authentication {
        auth_type               PASS
        auth_pass               ####
        }

    virtual_ipaddress {
        ####/26
    }

    track_script {
         sc4s_health_check
    }
}

/etc/keepalived/sc4s_health_check_script.sh

#!/bin/bash

if podman container exists SC4S; then
        exit 0
fi

if ss -ltn | grep ':514 '; then
        exit 0
fi

exit 1
1
  • Key Points: dont_track_primary is the most important fix - it disables the interface tracking that conflicts with script weights address_owner is automatically enabled in newer Keepalived versions and conflicts with script-based priority adjustments Use vrrp_strict for better compliance with VRRP standards Add preempt_delay to prevent rapid failover flapping Commented Nov 2 at 8:09

1 Answer 1

0

Forgot to update this. The issue was due to the priority being set at 255. As soon as this was lowered it worked as expected.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.