Hi,
This is my second go with VyOS after I couldn’t get my head around it a few years back. Now it’s different and I love it, no idea what changed.
I read through a few forum thread with related titles but did find them to either being older or not matching. If you guys disagree feel free to merge it.
On a Proxmox server I use a pure lab server I set up two VyOS 1.3.5 VM to use in a VRRP configuration. VRRP is a new topic for me but I thought I understood the idea but I’m not sure anmore.
Since it’s a new topic for my I based it on the High Availability Walkthrough but without OSPF and BGP.
The issue is as explained in another thread that the router with higher prio doesn’t stay in BACKUP mode after reboot even though ‘no-preempt’ is set, but it happens only for the WAN interface.
The difference is that in the other thread and the keepalived docu it was mentioned that it does affect bond interfaces. In my case I don’t use bond but linux bridges and don’t see why only one of them is affected.
Setting startup-delay didn’t help but only delay things :), setting to 10, 60 and 120. The log on router2 shows (as in the other thread) that router1 announces itself as MASTER after reboot. Right now I work around it by disabling vrrp group public and enabling it right away again.
On router1 I did switch to VyOS 1.4 and 1.5 with the same config but it didn’t make any difference.
The rough data:
router1 eth0/WAN: 10.101.102.9
router1 eth1/LAN: 192.168.1.2
router2 eth0/WAN: 10.101.102.10
router2 eth1/LAN: 192.168.1.3
vrrp WAN IP: 10.101.102.8
vrrp LAN IP: 192.168.1.1
WAN gateway: 10.101.102.1
eth0 -> vmbr0 (WAN) on Proxmox | vmbr0 ip set to 10.101.102.1, VLAN aware
eth1 -> vmbr1 (LAN) on Proxmox | vmbr1 no ip set, VLAN aware
The VRRP config
router1:
vyos@vyos-lts-2nd# show high-availability vrrp
global-parameters {
startup-delay 10
}
group int {
hello-source-address 192.168.1.2
interface eth1
no-preempt
peer-address 192.168.1.3
priority 200
virtual-address 192.168.1.1/24 {
}
vrid 1
}
group public {
hello-source-address 10.101.102.9
interface eth0
no-preempt
peer-address 10.101.102.10
preempt-delay 60
priority 200
virtual-address 10.101.102.8/24 {
}
vrid 102
}
sync-group sync {
member int
}
router2:
vyos@vyos-lts-2nd# show high-availability vrrp
global-parameters {
startup-delay 10
}
group int {
hello-source-address 192.168.1.3
interface eth1
no-preempt
peer-address 192.168.1.2
priority 100
virtual-address 192.168.1.1/24 {
}
vrid 1
}
group public {
hello-source-address 10.101.102.10
interface eth0
no-preempt
peer-address 10.101.102.9
priority 100
virtual-address 10.101.102.8/24 {
}
vrid 102
}
sync-group sync {
member int
}
After rebooting router1:
vyos@vyos-lts:~$ show vrrp
Name Interface VRID State Priority Last Transition
------ ----------- ------ ------- ---------- -----------------
int eth1 1 BACKUP 200 1m56s
public eth0 102 MASTER 200 1m44s
Adding: if I put the public
vrrp group into the sync-group sync
too then it does work, public stays in BACKUP
mode after a reboot. In my understanding that should not be necessary though.
2nd Addition: I changed the IPs for router1, router2 and vrrp IP since I wanted to see if I can add another router or two the the VRRP cluster.