If static route of large prefix (10.0.0.0/8) overlaps with next hop morescpec prefix (nhop 10.230.230.1/30)
Then after down/up interface static route (10.0.0.0/8) don't present in network stack.
R1 - eth1 10.230.230.2/30 | static route 10.0.0.0/8 nh 10.230.230.1
R2 - eth1 10.230.230.1/30 | dum0 10.0.0.1/32
To reproduce this:
R1
set interfaces ethernet eth1 address '10.230.230.2/30' set protocols static route 10.0.0.0/8 next-hop 10.230.230.1
R2
set interfaces ethernet eth1 address '10.230.230.1/30' set interfaces dummy dum0 address '10.0.0.1/32'
From R1 ping R2 and show routing table before down/up interface eth1
vyos@r1# run show ip route 10.0.0.1 Routing entry for 10.0.0.0/8 Known via "static", distance 1, metric 0, best Last update 00:12:42 ago * 10.230.230.1, via eth1 [email protected]# run ping 10.0.0.1 count 1 PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. 64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.872 ms --- 10.0.0.1 ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 0.872/0.872/0.872/0.000 ms [edit] vyos@r1# sudo ip route | grep 10.0 10.0.0.0/8 via 10.230.230.1 dev eth1 proto static metric 20
Disable/Enable inteface eth1 (or plug/unplug cable)
vyos@r1# set interfaces ethernet eth1 disable [edit] vyos@r1# commit [edit] vyos@r1# delete interfaces ethernet eth1 disable [edit] vyos@r1# commit
Check routing table after down/up interface, ping loss 100%
vyos@r1# run show ip route 10.0.0.1 Routing entry for 10.0.0.0/8 Known via "static", distance 1, metric 0, best Last update 00:19:06 ago * 10.230.230.1, via eth1 vyos@r1# run ping 10.0.0.1 PING 10.0.0.1 (10.0.0.1) 56(84) bytes of data. ^C --- 10.0.0.1 ping statistics --- 4 packets transmitted, 0 received, 100% packet loss, time 3053ms vyos@r1# sudo ip route | grep 10.0 [edit] vyos@r1#
It looks like this bug with FRR versions.
Everything works correctly with version FRR 7.3