After FRR is restarted at runtime (in our case watchfrr detected staticd/zebra as
unresponsive for 90s during a host CPU stall and frr.service was restarted),
static routes using "dhcp-interface" are not restored, neither in the default
VRF nor in a named VRF. Connected routes come back, the dhcp-interface routes
never do. Subsequent DHCP renewals (same lease, same router) do not reinstall
them either, so the router stays without default route until a manual commit.
Configuration (relevant part):
set interfaces ethernet eth1 address 'dhcp'
set interfaces ethernet eth1 vrf 'mgmt'
set vrf name mgmt table '101'
set vrf name mgmt protocols static route 0.0.0.0/0 dhcp-interface 'eth1'
set interfaces ethernet eth0 address 'dhcp'
set protocols static route 0.0.0.0/0 dhcp-interface 'eth0'
Steps to reproduce:
- Verify: show ip route vrf mgmt -> 0.0.0.0/0 via <gw> present
- sudo systemctl restart frr (or: sudo pkill -ABRT staticd)
- show ip route vrf mgmt -> only connected route left
- Wait for DHCP renewal (or renew dhcp interface eth1)
- Default route still missing
Expected: FRR restart restores dhcp-interface routes from the current lease.
Workaround: re-commit the static route.
Version: 1.4.2 (sagitta). Possibly related: T9278, T7703, T9368.
I could not test on rolling.