systemd-networkd is not honoring UseRoutes=false

Bug #1872589 reported by Rafael David Tinoco on 2020-04-14
10
This bug affects 1 person
Affects Status Importance Assigned to Milestone
systemd (Ubuntu)
Undecided
Unassigned

Bug Description

When netplan configures dhcp4-overrides and set "use-routes" to false, systemd-networkd should be configured with UseRoutes=false. It is. Unfortunately looks like systemd-networkd is not honoring it and configuring the default gateways for the interfaces no matter what.

Ubuntu Focal: systemd: 245.4-2ubuntu1

----

$ sudo cat /etc/netplan/50-cloud-init.yaml
network:
    ethernets:
        enp5s0:
            match:
                macaddress: 00:16:3e:af:c4:d6
            set-name: eth0
            dhcp4: true
            dhcp-identifier: mac
        enp6s0:
            match:
                macaddress: 00:16:3e:50:11:9c
            set-name: iscsi01
            dhcp4: true
            dhcp-identifier: mac
            dhcp4-overrides:
              use-routes: false
        enp7s0:
            match:
                macaddress: 00:16:3e:b3:cc:50
            set-name: iscsi02
            dhcp4: true
            dhcp-identifier: mac
            dhcp4-overrides:
              use-routes: false
    version: 2
    renderer: networkd

----

$ cat /var/run/systemd/network/10-netplan-enp6s0.network

[Match]
MACAddress=00:16:3e:50:11:9c
Name=iscsi01

[Network]
DHCP=ipv4
LinkLocalAddressing=ipv6

[DHCP]
ClientIdentifier=mac
RouteMetric=100
UseMTU=true
UseRoutes=false

--

$ ip route show | grep default
default via 10.250.93.1 dev iscsi02 proto dhcp src 10.250.93.101 metric 100
default via 10.250.94.1 dev iscsi01 proto dhcp src 10.250.94.167 metric 100
default via 10.250.97.1 dev eth0 proto dhcp src 10.250.97.123 metric 100

Changed in systemd (Ubuntu):
status: New → Confirmed
status: Confirmed → Triaged
description: updated
Dan Streetman (ddstreet) wrote :

upstream systemd has actually changed the behavior of UseRoutes; now, it only disables actual defined routes provided by dhcp, and does not control the gateway route. There is a new option, UseGateway, that controls if the dhcp-provided gateway route should be used or not.

More details in bug 1867375 as well as references to the upstream changes. As noted in my comment there, if UseGateway is backported to Bionic, its default needs adjustment to default to the provided value of UseRoutes; maybe that should be done for Focal as well.

Ahhh good to know, documentation in netplan.io doesn't reflect that also, that is why I opened the bug. Funny because because of the attribute name "UseRoutes" I was in doubt if it would get the default gateway or just the published routes.. then the documentation said it would get the default GW.

Thanks for letting me know Dan!

-> https://netplan.io/reference

Documenting it if anyone is confused by this as well:

"""
use-routes (bool)
Default: true. When true, the routes received from the DHCP server will be installed in the routing table normally. When set to false, routes from the DHCP server will be ignored: in this case, the user is responsible for adding static routes if necessary for correct network operation. This allows users to avoid installing a default gateway for interfaces configured via DHCP. Available for both the networkd and NetworkManager backends.
"""

I'm marking this as a duplicate of your bug then...

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers