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.4092But 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
...