Page MenuHomeVyOS Platform

static dhcp-interface routes not installed
Needs testing, NormalPublicBUG

Description

Upgrading from 1.3.4 to VyOS 1.4-rolling-202312031042 I ended up with two static routes not working. These worked perfectly before. Workaround for now is to point to the default-gw of eth0.

[email protected]:~$ show configuration commands | match dhcp-inter
set protocols static route 111.111.22.227/32 dhcp-interface 'eth0'
set protocols static route 111.111.22.228/32 dhcp-interface 'eth0'

[email protected]:~$ show ip route 111.111.22.227/32
% Network not in table

[email protected]:~$ show ip route 111.111.22.228/32
% Network not in table

Workaround:

set protocols static route 111.111.22.227/32 next-hop 111.111.128.1
set protocols static route 111.111.22.228/32 next-hop 111.111.128.1

[email protected]:~$ show ip route 111.111.22.227/32
Routing entry for 111.111.22.227/32
  Known via "static", distance 1, metric 0, best
  Last update 00:06:26 ago
  * 111.111.128.1, via eth0, weight 1

[email protected]:~$ show ip route 111.111.22.228/32
Routing entry for 111.111.22.228/32
  Known via "static", distance 1, metric 0, best
  Last update 00:06:29 ago
  * 111.111.128.1, via eth0, weight 1

[email protected]:~$

Details

Difficulty level
Unknown (require assessment)
Version
VyOS 1.4.0-rc3
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)
Issue type
Bug (incorrect behavior)

Event Timeline

Confirmed working properly in 1.4.0-rc1

danhusan changed Version from VyOS 1.4-rolling-202312031042 to VyOS 1.4.0-rc3.

Issue is back in 1.4.0-rc3

Viacheslav changed the task status from Open to Needs testing.Jan 24 2024, 1:02 PM
Viacheslav triaged this task as Normal priority.
[email protected]:~$ show configuration commands | match 111.111.22.227
set protocols static route 111.111.22.227/32 dhcp-interface 'eth0'

[email protected]:~$ sudo vtysh -c "show run" | match 111.111.22.227
[email protected]:~$

I have another result

vyos@r1# set protocols static route 203.0.113.22/32 dhcp-interface eth2
[edit]
vyos@r1# commit
[edit]
vyos@r1# 
[edit]
vyos@r1# vtysh -c "show run" | match 203.0.113
ip route 203.0.113.22/32 192.168.100.1 eth2
[edit]
vyos@r1# 

vyos@r1# run show ver
Version:          VyOS 1.4.0-rc3
Release train:    sagitta

Same results here. If I remove the routes and re-add them they work perfectly. The issue only comes up at reboot.

I have conducted additional testing. I can replicate the issue on a fresh VM. It seems the issue arises if the DHCP server is slow to respond upon bootup.

Scenario:

Boot up VM with eth0 set to DHCP and connected to an empty network.
After boot, switch eth0 to the correct VLAN, simulating a slow DHCP server/network convergence.
IP will be received by eth0 eventually, but the 'dhcp-interface' routes are not applied.