RFC3442 specifies option 121 (Classless Static Routes) that allow a DHCP server to push arbitrary routes to a client. It has a Local Subnet Routes section expliciting the behavior of routes with a null (0.0.0.0) gateway.
Such routes are to be installed on the interface with a Link scope, to mark them as directly available on the link without any gateway.
Networkd currently drops those routes, which is against the RFC, as Linux has proper support for such routes.
This has been observed as broken on Ubuntu Jammy 22.04 LTS, but working in previous LTS (Focall 20.04 and Bionic 18.04 tested).
1. Ubuntu release: 22.04.1 LTS
2. Systemd release: 249.11-0ubuntu3.6
3. Expected behavior: routes from DHCP option 121 with a gateway set to 0.0.0.0 to be installed as "scope link"
4. Observed behavior: routes are silently dropped by systemd-networkd's dhcp client (actually logged with a debug level, effectively silently with the default configuration)
I wrote a fix that has been accepted in upstream systemd: https://github.com/systemd/systemd/pull/26234, which applies cleanly to the current package's sources obtained through apt-get source.
As this is a fix for something that is an actual regression, can it be backported to Ubuntu 22.04's systemd tree?
RFC3442 specifies option 121 (Classless Static Routes) that allow a DHCP server to push arbitrary routes to a client. It has a Local Subnet Routes section expliciting the behavior of routes with a null (0.0.0.0) gateway.
Such routes are to be installed on the interface with a Link scope, to mark them as directly available on the link without any gateway.
Networkd currently drops those routes, which is against the RFC, as Linux has proper support for such routes.
This has been observed as broken on Ubuntu Jammy 22.04 LTS, but working in previous LTS (Focall 20.04 and Bionic 18.04 tested).
1. Ubuntu release: 22.04.1 LTS
2. Systemd release: 249.11-0ubuntu3.6
3. Expected behavior: routes from DHCP option 121 with a gateway set to 0.0.0.0 to be installed as "scope link"
4. Observed behavior: routes are silently dropped by systemd-networkd's dhcp client (actually logged with a debug level, effectively silently with the default configuration)
I wrote a fix that has been accepted in upstream systemd: https:/ /github. com/systemd/ systemd/ pull/26234, which applies cleanly to the current package's sources obtained through apt-get source.
As this is a fix for something that is an actual regression, can it be backported to Ubuntu 22.04's systemd tree?
Thanks.