Page MenuHomeVyOS Platform

Static routes pointed to container networks fail to persist after reboot
Closed, ResolvedPublicBUG

Description

Related to T5398, any statically configured route to a container network (pod-<network name>) will fail to persist after reboot and present the user with a Configuration Error on System Boot.

Missing configuration after reboot:

jvoss@test-R1# load
jvoss@test-R1# compare
[vrf name TEST protocols]
+ static {
+     route 192.0.2.0/25 {
+         interface pod-TEST {
+             vrf "default"
+         }
+     }
+     route 192.0.2.128/25 {
+         interface eth1 {
+             vrf "default"
+         }
+     }
+ }

This is due to the configuration priority of containers as compared to protocol static:

# /opt/vyatta/sbin/priority.pl

[...]
480 protocols/static
[...]
1280 container

When the static route is validated on startup, the container network does not exist yet, fails validation, and the entire static route stanza is rejected.

Updating the priority of containers from 1280 to 450 corrects this issue. 450 is just after common system configuration and before protocol/static:

400 protocols/pim
400 system/config-management
400 system/domain-search
400 system/login
400 system/name-server
400 system/static-host-mapping
400 system/syslog
450 container                        <--- updated placement
460 interfaces/geneve
460 interfaces/openvpn
460 interfaces/sstpc
460 interfaces/vxlan
461 interfaces/macsec
480 protocols/static
481 vrf/name/node.tag/protocols/static

After reboot the configuration persists and the routes are installed correctly:

jvoss@test-R1:~$ show ip route vrf TEST static 
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, 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

VRF DN42:
S>* 192.0.2.0/25 [1/0] is directly connected, pod-TEST (vrf default), weight 1, 00:14:53
S   192.0.2.128/25 [1/0] is directly connected, eth1 (vrf default), weight 1, 00:15:04

Details

Difficulty level
Easy (less than an hour)
Version
1.4-rolling-202307260317
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)