OSPFv3 does not add interface although it's specified

Sorry I’ve got yet another issue with my VyOS box. I have an interface eth0.44 to which I assigned a public IPv6 and added the interface to OSPFv3. Yet, the route only shows up as “static” and not OSPF (Note, routes from wireguard interfaces do show up). As a result, this device route is not redistributed and other machines cannot reach eth0.44 over my VyOS router.

Here I am defining my OSPFv3 and eth0.44 is passive (Note: I have also tried removing “passive”). The two wireguard interfaces connect other OSPFv3 instances.

# show protocols ospfv3 | strip-private 
 interface eth0.44 {
     passive
 }
 interface wg0 {
     area 0
     cost 100
     dead-interval 10
     hello-interval 5
     network broadcast
     priority 1
     retransmit-interval 5
     transmit-delay 1
 }
 interface wg1 {
     area 0
     cost 100
     dead-interval 10
     hello-interval 5
     network broadcast
     priority 1
     retransmit-interval 5
     transmit-delay 1
 }
 parameters {
     router-id xxx.xxx.56.209
 }

The interface list shows eth0.44 has IPv6 address assigned (Note, wg0 and wg1 have link-local IPv6 addresses that are not explicitely shown here):

# run show interfaces |strip-private 
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface    IP Address                 MAC                VRF          MTU  S/L    Description
-----------  -------------------------  -----------------  ---------  -----  -----  -------------
dum0         xxx.xxx.215.131/32          xx:xx:xx:xx:xx:e6  default     1500  u/u
eth0         xxx.xxx.1.3/24              xx:xx:xx:xx:xx:c0  default     1500  u/u
eth0.2       xxx.xxx.129.1/22           xx:xx:xx:xx:xx:c0  vrf_sonic   1500  u/u   
eth0.3       xxx.xxx.79.2/24             xx:xx:xx:xx:xx:c0  default     1500  u/u
eth0.4       xxx.xxx.4.2/24              xx:xx:xx:xx:xx:c0  default     1500  u/u
eth0.10      xxx.xxx.80.2/24             xx:xx:xx:xx:xx:c0  default     1500  u/u
eth0.11      xxx.xxx.222.2/24           xx:xx:xx:xx:xx:c0  default     1500  u/u
eth0.12      xxx.xxx.223.2/24           xx:xx:xx:xx:xx:c0  default     1500  u/u
eth0.44      xxx.xxx.56.209/28            xx:xx:xx:xx:xx:c0  default     1500  u/u
             xxxx:xxxx:9e4:8208::209/64
lo           xxx.xxx.0.1/8                xx:xx:xx:xx:xx:00  default    65536  u/u
             ::1/128
wg0          xxx.xxx.56.186/29            n/a                default     1420  u/u    
wg1          xxx.xxx.56.178/29            n/a                default     1420  u/u

Finally, the routing table shows wg0/wg1 as O[spf], as expected but eth0.4 just as C[onnected]:

# run show ipv6 route | strip-private 
Codes: K - kernel route, C - connected, S - static, R - RIPng,
       O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table,
       v - VNC, V - VNC-Direct, A - Babel, F - PBR,
       f - OpenFabric,
       > - selected route, * - FIB route, q - queued, r - rejected, b - backup
       t - trapped, o - offload failure

O>* xxxx:xxxx:9e4:8176::/64 [110/100] is directly connected, wg1, weight 1, 11:47:55
O>* xxxx:xxxx:9e4:8184::/64 [110/100] is directly connected, wg0, weight 1, 02:51:06
C>* xxxx:xxxx:9e4:8208::/64 is directly connected, eth0.44, 14:01:55
O>* xxxx:xxxx:9e4:8250::/64 [110/200] via fe80::1b55:b563:df09:446e, wg0, weight 1, 02:51:06
  *                                  via fe80::5cc6:7d48:3133:b869, wg1, weight 1, 02:51:06
C * fe80::/64 is directly connected, wg1, 14:26:29
C * fe80::/64 is directly connected, wg0, 14:26:33
C * fe80::/64 is directly connected, eth0.44, 15:10:31
C * fe80::/64 is directly connected, eth0.12, 15:10:31
C * fe80::/64 is directly connected, eth0.11, 15:10:32
C * fe80::/64 is directly connected, eth0.10, 15:10:34
C * fe80::/64 is directly connected, eth0.4, 15:10:35
C * fe80::/64 is directly connected, eth0.3, 15:10:35
C * fe80::/64 is directly connected, eth0, 15:10:38
C>* fe80::/64 is directly connected, lo, 15:10:40
C * fe80::/64 is directly connected, dum0, 15:10:41

As a result, it is not showing up in OSPFv3 either:

$ show ipv6 ospfv3 route 
*N IA 2001:67c:9e4:8176::/64         ::                           wg1 11:49:54
*N IA 2001:67c:9e4:8184::/64         ::                           wg0 02:53:05
*N IA 2001:67c:9e4:8250::/64         fe80::1b55:b563:df09:446e    wg0 02:53:05
                                     fe80::5cc6:7d48:3133:b869    wg1

It seems VyOS is just ignoring eth0.44 even though it’s explicitely not ignored. What could be wrong here?

You still need to define an area for the interface even if it’s passive. Just add area 0 under eth0.44.

Even when properly configured, eth0.44 will show up as directly connected.
O routes on wg interfaces are remote peers.

FRR is a little weird, it doesn’t filter out self-originated LSAs, so the route will show as both connected and OSPF. Example:

vyos@vyos# run show ip route | match 10.0.0.1
O   10.0.0.1/32 [110/1] via 0.0.0.0, dum0 onlink, weight 1, 00:26:49
C>* 10.0.0.1/32 is directly connected, dum0, 1d14h44m

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.