There's an issue with VyOS where loading the configuration from a file won't bring up a VRRP interface properly. It creates the interface in Linux, but doesn't populate keepalived or start listening on the virtual address. The configuration has to be loaded a second time (after removing the interface manually via sudo ip link del). I'd guess its a race condition of some kind.
This was once working, but the difference is that we've since switched to using a bonded interface. Previously VyOS was a VM where the hypervisor had a bond in the bridge - but now it is a physical machine and looks like a bug in VyOS with bonds/vrrp and configuration loading.
user@vyos-sw1# run show interfaces Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down Interface IP Address S/L Description --------- ---------- --- ----------- bond0 - u/u Access switch/mgmt interface bond1 - u/u Aggregation 10G uplink ... bond1.285 x.x.x.x/29 u/u x.x.x.x/29 bond1.298 x.x.x.x/29 u/u bond1.412 x.x.x.x/29 u/u x.x.x.x/29 bond1.414 x.x.x.x/29 u/u x.x.x.x/29 bond1.432 x.x.x.x/29 u/u x.x.x.x/29 ...
/etc/keepalived/keepalived.conf appears to be missing vlan 298 completely.
Configuration appears to be empty though,
user@vyos-sw1# show interfaces bonding bond1 vif 298 Configuration under specified path is empty
Loading the same configuration a second time shows the changes,
user@vyos-sw1# compare 0 [edit high-availability vrrp] +group bond1-298-105 { + advertise-interval 5 + interface bond1.298 + priority 250 + virtual-address x.x.x.x/29 + vrid 105 +} [edit interfaces bonding bond1] +vif 298 { + address x.x.x.x/29 + firewall { + local { + name protect-re-local + } + } +} [edit service dhcp-relay] +interface bond1.298 >interface bond1.212 >interface bond1.215 >interface bond1.219 >interface bond1.222 >interface bond1.225 >interface bond1.227 >interface bond1.229 >interface bond1.230 >interface bond1.232 >interface bond1.241 >interface bond1.243 >interface bond1.246 >interface bond1.270 >interface bond1.285 >interface bond1.412 >interface bond1.414 >interface bond1.432 >interface bond1.487 >interface bond1.501 >interface bond1.4092
But trying to commit it shows an issue as the interface/address already exists,
user@vyos-sw1# commit [ interfaces bonding bond1 vif 298 ] RTNETLINK answers: File exists [[interfaces bonding bond1 vif 298]] failed
Deleting the interface manually and committing again works,
user@vyos-sw1# sudo ip link del bond1.298 [edit] user@vyos-sw1# commit [edit]
user@vyos-sw1# run show interfaces ... bond1.298 x.x.x.x/29 u/u x.x.x.x/29 ...