Download the ucarp package first:
apt install ucarp
Configure the interface in /etc/network/interfaces on your PRIMARY server:
iface eth0 inet static address 10.1.1.4/24 gateway 10.1.1.1 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 1.1.1.1 9.9.9.9 dns-search domain iface eth0:ucarp inet static address 10.1.1.30 netmask 255.255.255.0
now do the same thing on your SECONDARY server:
iface eth0 inet static address 10.1.1.5/24 gateway 10.1.1.1 # dns-* options are implemented by the resolvconf package, if installed dns-nameservers 1.1.1.1 9.9.9.9 dns-search domain iface eth0:ucarp inet static address 10.1.1.30 netmask 255.255.255.0
you can check on your primary if carp is working with
$ ifup eth0:ucarp
if this is fine we have to create a config file and the systemd startup unit as the package comes without such a unit file.
First create /etc/ucarp/vip-common.conf on both servers and paste the following. This is for the primary so you have to adapt it to fit the secondary, notably SOURCE_ADDRESS and ADVSKEW. Set the ADVSKEW higher on the secondary, e.g. ADVSKEW=”100″:
BIND_INTERFACE="eth0" PASSWORD="mysimplepass" VIP_ADDRESS="10.1.1.30" SOURCE_ADDRESS="10.1.1.4" VHID="1" ADVBASE="1" ADVSKEW="10" OPTIONS="-P -z" UPSCRIPT="/usr/share/ucarp/vip-up" DOWNSCRIPT="/usr/share/ucarp/vip-down"
Then create the systemd unit file /etc/systemd/system/ucarp.service
[Unit] Description=UCARP virtual interface %I After=network.target [Service] EnvironmentFile=-/etc/ucarp/vip-common.conf ExecStart=/usr/sbin/ucarp $OPTIONS -i $BIND_INTERFACE -p $PASSWORD -v $VHID -a $VIP_ADDRESS -s $SOURCE_ADDRESS -b $ADVBASE -k $ADVSKEW -u $UPSCRIPT -d $DOWNSCRIPT KillMode=control-group [Install] WantedBy=multi-user.target
Last but not least start it
$ systemctl enable --now ucarp