frr icon indicating copy to clipboard operation
frr copied to clipboard

staticd does not install subtree/source specific ipv6 routes (regression since at least 7.5)

Open ardje opened this issue 2 years ago • 2 comments

  • FRR VERSION 8.4, 8.5, 9 from debian as well as
  • Linux (pve container in debian bullseye and bookworm)
  • KERNEL VERSION: 5.15

Hi guys,

Got a very easy testcase that just doesn't seem to work:

rtrC# show running-config
Building configuration...

Current configuration:
!
frr version 8.4.2
frr defaults traditional
hostname rtrC
log syslog informational
no ip forwarding
no ipv6 forwarding
service integrated-vtysh-config
!
ipv6 route 2000::/3 from 2001:db8::/48 fe80::200:5eff:fe00:110 eth0 onlink
ipv6 route 4000::/4 fe80::200:5eff:fe00:110 eth0 onlink
!
end
rtrC# show ipv6 route kernel
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

K>* ::/0 [0/1024] via fe80::200:5eff:fe00:110, eth0, 02w6d22h
K>* 2000::/3 from 2001:db9::/48 [0/1024] via fe80::200:5eff:fe00:110, eth0, 00:08:06
rtrC# show ipv6 route static
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

S>* 4000::/4 [1/0] via fe80::200:5eff:fe00:110, eth0 onlink, weight 1, 00:00:20

the kernel route was installed with:

root@rtrC:/etc/ssh# ip -6 ro add 2000::/3 from 2001:db9::/48 via fe80::200:5eff:fe00:110 dev eth0

So non-source-specific routes get installed by staticd, however source specific routes don't.

I tried to debug it on version 9, stracing the staticd daemon, but this is a bit over my head. I would expect it to perform netlink requests (which I can read), but then again I would assume zebra would do the netlink requests and not staticd.

ardje avatar Aug 21 '23 12:08 ardje

As a side note:

rtrC# show debugging
MGMT debugging status:

Zebra debugging status:
  Zebra kernel debugging is on
  Zebra kernel netlink message dumps (send) are on
  Zebra kernel netlink message dumps (recv) are on


Staticd debugging status

It's as if staticd's debug part is also broken: I miss the:

The working non source specific route ends up as nlmsg's in zebra debug.

ardje avatar Aug 21 '23 12:08 ardje

The same problem persists with version 9.1 on debian buster in an lxc on armhf. No problems with bird 2. Downgraded to 7.5, same problem Downgraded to 6.0.2, and it works. frr/static of at least 7.5 and higher is incapable of configuring static source specific routes. It puts them in the config file, but it essentially does nothing.

So it's a regression since at least 7.5

ardje avatar Jan 31 '24 16:01 ardje