I recently updated my keepalived cluster from version 1.2.10 to 1.2.13.
I noticed that my tracking script, which basicly just pings another system,doesn't work anymore. I use a simple bash script and return a 0 if everything is fine and the reciever is online, and 1 if the reciever isn't available.
If the Script returns a 1 the cluster changes and another router becomes active, otherwise everything is ok.
keepalived.conf:
global_defs {
router_id r_id
}
vrrp_script chk_myscript {
script "/etc/keepalived/chk_available.sh"
interval 4 # check every 4 seconds
fall 2 # require 2 failures for KO
}
vrrp_instance r_id {
state MASTER
interface enp0s3
virtual_router_id 10
priority 101
advert_int 1
authentication {
auth_type PASS
auth_pass password
}
virtual_ipaddress {
10.0.25.3/24 dev enp0s3
}
track_script {
chk_myscript
}
}
Script:
#!/bin/sh
ping_return()
{
ping -c2 8.8.8.8 > /dev/null #it's just an example ip
if [ $? -eq 0 ]
then
return 0
else
return 1
fi
}
ping_return
After the starting proccess of keepalived the log messages told me this:
VRRP sockpool: [ifindex(2), proto(112), unicast(0), fd(10,11)]
ROUTER keepalived_vrrp[2800]: Using LinkWatch kernel netlink reflector...
ROUTER keepalived_vrrp[2801]: VRRP_Instance(INSTANCE) NOW in FAULT state
I've already read the changelog because I thought I could get some helpful information. But there wasn't anything useful (at least for a total newbie like me).
My question now is:
Why doesn't keepalived work like in the former version and what do I have to do to let keepalive do it's work again?