When creating a VRRP group with rfc3768-compatibility compatibility enabled, a VRRP interface is created with the name format <parent interface>v<VRID>v<IP Version>. For example, creating an IPv4 group using the VRID 1 on the interface eth0 would create an interface named eth0v1v4
I've noticed that this generated interface appears to be limited to 15 characters. Once the generated interface name exceeds this length, the interface appears to be created using the format vrrp.<VRID>. In this scenario, the virtual IP appears to respond correctly, however, the interface and IP don't appear in show interfaces, impacting visibility of the current running config.
There are many scenarios that can result in an interface name exceeding the 15 character limit, such as QinQ interfaces, VLANs on bonds, etc.
Below is output showing both scenarios, where eth1 has a working VRRP group and eth2 has a non-fully-working group:
vyos@vyos:~$ sh vrrp Name Interface VRID State Priority Last Transition ------ --------------- ------ ------- ---------- ----------------- eth1 eth1.100.20v1v4 1 MASTER 100 32s eth2 vrrp.1 2 MASTER 100 36s vyos@vyos:~$ sh int Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down Interface IP Address MAC VRF MTU S/L Description --------------- --------------- ----------------- ------- ----- ----- ------------- eth0 172.31.150.3/20 00:15:5d:00:04:32 default 1500 u/u eth1 - 00:15:5d:00:04:33 default 1500 u/u eth1.100 - 00:15:5d:00:04:33 default 1500 u/u eth1.100.20 10.1.0.1/24 00:15:5d:00:04:33 default 1500 u/u eth1.100.20v1v4 10.1.0.254/24 00:00:5e:00:01:01 default 1500 u/u eth2 - 00:15:5d:00:04:34 default 1500 u/u eth2.100 - 00:15:5d:00:04:34 default 1500 u/u eth2.100.200 10.2.0.1/24 00:15:5d:00:04:34 default 1500 u/u
Relevant interfaces from ifconfig:
eth1.100.20v1v4: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.1.0.254 netmask 255.255.255.0 broadcast 0.0.0.0 ether 00:00:5e:00:01:01 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 87 bytes 4578 (4.4 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 vrrp.1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.2.0.254 netmask 255.255.255.0 broadcast 0.0.0.0 ether 00:00:5e:00:01:01 txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 1425 bytes 67462 (65.8 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Relevant interfaces from ip address:
37: eth1.100.20v1v4@eth1.100.20: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:00:5e:00:01:01 brd ff:ff:ff:ff:ff:ff inet 10.1.0.254/24 scope global eth1.100.20v1v4 valid_lft forever preferred_lft forever 33: vrrp.1@eth2.100.200: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000 link/ether 00:00:5e:00:01:01 brd ff:ff:ff:ff:ff:ff inet 10.2.0.254/24 scope global vrrp.1 valid_lft forever preferred_lft forever
Relevant config:
high-availability { vrrp { group eth1 { address 10.1.0.254/24 { } interface eth1.100.20 rfc3768-compatibility vrid 1 } group eth2 { address 10.2.0.254/24 { } interface eth2.100.200 rfc3768-compatibility vrid 1 } } } interfaces { .... ethernet eth1 { hw-id 00:15:5d:00:04:33 vif-s 100 { vif-c 20 { address 10.1.0.1/24 } } } ethernet eth2 { hw-id 00:15:5d:00:04:34 vif-s 100 { protocol 802.1q vif-c 200 { address 10.2.0.1/24 } } } .... }