systemd-networkd: UseRoutes behavior change with introduction of UseGateway param

Bug #1867375 reported by Sunil Mukundan on 2020-03-13
26
This bug affects 3 people
Affects Status Importance Assigned to Milestone
netplan.io (Ubuntu)
Undecided
Unassigned
Bionic
Undecided
Unassigned
Eoan
Undecided
Unassigned
Focal
Undecided
Unassigned
Groovy
Undecided
Unassigned
systemd (Ubuntu)
High
Dan Streetman
Bionic
Medium
Dan Streetman
Eoan
Medium
Dan Streetman
Focal
High
Dan Streetman
Groovy
High
Dan Streetman

Bug Description

[impact]

the networkd UseRoutes parameter allowed ignoring all routes provided by a dhcp4 server, including the route via the dhcp4-provided gateway. This was the behavior of networkd until recently, and in Focal the UseRoutes parameter does *not* prevent networkd from adding the route via the dhcp4-provided gateway. This is now controlled with a new parameter, UseGateway.

The systemd in Focal unfortunately has part of the upstream code; it no longer ignores the gateway route when UseRoutes=false is specified, but also it does not include the UseGateway parameter.

Before Focal, networkd did not allow ignoring dhcpv4 routes and the gateway separately; the UseRoutes= parameter either used, or ignored, both. This is why upstream added the UseGateway= paramter, which should be backported to allow control of ignoring the dhcpv4 routes and gateway separately.

[test case]

In Focal, bug 1872589 has a good test case netplan config, but a very quick test can be done with the networkd config:

[Match]
Name=eth0

[Network]
DHCP=ipv4
LinkLocalAddressing=ipv6

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

this results in the system incorrectly setting a route via the default gateway:

root@lp1867375-f:~# ip r
default via 10.202.51.1 dev eth0 proto dhcp src 10.202.51.86 metric 100
10.202.51.0/24 dev eth0 proto kernel scope link src 10.202.51.86
10.202.51.1 dev eth0 proto dhcp scope link src 10.202.51.86 metric 100

Before Focal, the above test case shows "correct" behavior, but there is no way to ignore the dhcpv4 routes but use the dhcpv4 gateway. This pre-Focal, the test case would be to use the UseGateway= parameter, e.g.:

[Match]
Name=eth0

[Network]
DHCP=ipv4
LinkLocalAddressing=ipv6

[DHCP]
RouteMetric=100
UseMTU=true
UseRoutes=false
UseGateway=true

which *should* result in the default gateway being configured:

root@lp1867375-f:~# ip r
default via 10.202.51.1 dev eth0 proto dhcp src 10.202.51.86 metric 100
10.202.51.0/24 dev eth0 proto kernel scope link src 10.202.51.86
10.202.51.1 dev eth0 proto dhcp scope link src 10.202.51.86 metric 100

[regression potential]

Any regression would likely involve incorrect setting, or ignoring, of dhcpv4-provided routes, and/or incorrect setting, or ignoring, of the dhcpv4-provided gateway.

[scope]

This is fixed by these upstream PRs:
https://github.com/systemd/systemd/pull/15443
https://github.com/systemd/systemd/pull/15136
https://github.com/systemd/systemd/pull/14983

Parts of all those PRs are required in Focal, Eoan, and Bionic.

I am not fixing this for Xenial, at this time.

For Debian, I opened this MR:
https://salsa.debian.org/systemd-team/systemd/-/merge_requests/92

For Groovy, I opened this MR:
https://code.launchpad.net/~ddstreet/ubuntu/+source/systemd/+git/systemd/+merge/383661

[other info]

to properly support separation of 'routes' and 'gateways' received via dhcp4, SRU releases should also support the UseGateway parameter, which is what this bug was originally opened requesting.

[original description]

requesting backport of PR https://github.com/systemd/systemd/pull/14983 which fixes the issue described in
https://github.com/systemd/systemd/issues/14982 to 18.04 (bionic)

Related branches

summary: - systemd-network: Setting UseRoutes to False results in DHCP default
+ systemd-networkd: Setting UseRoutes to False results in DHCP default
gateway not being installed
Dan Streetman (ddstreet) wrote :

Upstream this is implemented by two separate PRs:
https://github.com/systemd/systemd/pull/14983
https://github.com/systemd/systemd/pull/15136

Pulling only the first would unfortunately break backwards compatibility for Bionic users who currently expect UseRoutes=False to also ignore the DHCP gateway (just as it broke upstream users when added).

However, also adding the second without any changes would still break backwards compatibility; it only adds a new option (UseGateway) that defaults to true, but current behavior in Bionic ties these options together, i.e. in Bionic for backwards compatibility, we would need to:
1) update the behavior of UseRoutes to only use/ignore DHCP-provided routes, separate from the DHCP-provided gateway
2) add UseGateway option to use/ignore the DHCP-provided gateway
3) add logic so that UseGateway defaults (i.e. if not set) to the setting of UseRoutes

Since this could potentially leave a system without networking if done wrong, I'm not going to include it in my current round of system patches; I'll look at it again next cycle (unless someone else wants to handle it).

Changed in systemd (Ubuntu):
status: New → Fix Released
Dan Streetman (ddstreet) on 2020-04-14
tags: added: ddstreet
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in systemd (Ubuntu Bionic):
status: New → Confirmed
Changed in systemd (Ubuntu Eoan):
status: New → Confirmed
Dan Streetman (ddstreet) wrote :

@sunil-mukundan I hope you don't mind, I'm adjusting the bug subject slightly to indicate that things need to be worked on both for SRU releases as well as for Focal.

summary: - systemd-networkd: Setting UseRoutes to False results in DHCP default
- gateway not being installed
+ systemd-networkd: UseRoutes behavior change with introduction of
+ UseGateway param
Dan Streetman (ddstreet) on 2020-04-15
description: updated
Changed in netplan.io (Ubuntu Bionic):
status: New → Invalid
Changed in netplan.io (Ubuntu Eoan):
status: New → Invalid
Dan Streetman (ddstreet) wrote :

opened PR to restore UseRoutes= backwards compatibility
https://github.com/systemd/systemd/pull/15443

Dan Streetman (ddstreet) wrote :

Note for netplan.io: if the PR is accepted, then there shouldn't be any need for immediate change in netplan; however in the future, netplan likely will need a new option 'use-gateway', similar to the existing 'use-routes' parameter.

Dan Streetman (ddstreet) on 2020-04-16
description: updated
description: updated
Dan Streetman (ddstreet) on 2020-04-24
Changed in systemd (Ubuntu Bionic):
assignee: nobody → Dan Streetman (ddstreet)
Changed in systemd (Ubuntu Eoan):
assignee: nobody → Dan Streetman (ddstreet)
Changed in systemd (Ubuntu Focal):
assignee: nobody → Dan Streetman (ddstreet)
Changed in systemd (Ubuntu Bionic):
importance: Undecided → Medium
Changed in systemd (Ubuntu Eoan):
importance: Undecided → Medium
Changed in systemd (Ubuntu Focal):
importance: Undecided → High
status: Fix Released → In Progress
Changed in systemd (Ubuntu Eoan):
status: Confirmed → In Progress
Changed in systemd (Ubuntu Bionic):
status: Confirmed → In Progress
Dan Streetman (ddstreet) on 2020-04-24
description: updated
Dan Streetman (ddstreet) on 2020-05-08
description: updated
Todor Andreev (toshko3) wrote :

Hi,
this bug is affecting me as well on Focal (Ubuntu 20.04).
I used the option use-routes=false in netplan to ignore the default gateway and now it doesn't work.
As you have explained, now the right way is to use the UseGateway option of systemd.

But there is no option in the current version of netplan. Netplan says "unknown key 'use-gateway'"
Also, there is no option in the current version of systemd. Systemd says "Unknown key name 'UseGateway' in section 'DHCP', ignoring."

Is there any workaround, because now I'm stuck and don't know how to accomplish this?

Also is it planned to be included with simple updates or only in a future "Ubuntu 20.10" release?

Dan Streetman (ddstreet) wrote :

> Also is it planned to be included with simple updates or only in a future "Ubuntu 20.10" release?

this is fixed in the systemd version currently in the upload queue for Focal, so once that is accepted and assuming there are no regressions while it is tested in the -proposed pocket, this bug should be fixed for Focal when it is released to focal-updates. That will probably be in around 2 weeks, maybe earlier, but it also could take longer.

Once the fixed package is released, there will be a UseGateway option for networkd (in the [DHCPv4] section only - not in the deprecated/legacy [DHCP] section), but it also will default to the value of UseRoutes so you can just continue to set use-routes=false in netplan and it will work to disable both classless/static dhcp routes as well as the dhcp gateway route, just as it did in previous releases.

Setting UseRoutes=false and UseGateway=true, which seems uncommon but sometimes needed, is not currently possible with netplan, and would need an update to the netplan schema to add a 'use-gateway' option, which is why this bug is marked as affecting netplan as well as systemd.

If you want to test, you can try the build from this ppa:
https://launchpad.net/~ddstreet/+archive/ubuntu/systemd
please use that only for testing.

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in netplan.io (Ubuntu Focal):
status: New → Confirmed
Changed in netplan.io (Ubuntu):
status: New → Confirmed
Dan Streetman (ddstreet) wrote :

> (in the [DHCPv4] section only - not in the deprecated/legacy [DHCP] section)

to clarify, upstream commit 4f7331a85eee2134cc2383a9eeb0445593a6be15 (included starting in Focal) deprecated most of the [DHCP] section parameters by moving them into the [DHCPv4] section. Users of networkd (looking at you, netplan...) [DHCP] section parameters should convert, starting in Focal, over to [DHCPv4].

Todor Andreev (toshko3) wrote :

Thank you very much for the rapid info!

Todor Andreev (toshko3) wrote :

I can confirm, with your build from "https://launchpad.net/~ddstreet/+archive/ubuntu/systemd", networkd is behaving like before in Ubuntu 18.04. With this patch "use-routes=false" in netplan ignores the default gateway given by DHCP.

Please, forgive my ignorance, but how do I return to normal official packages, after I remove your PPA? Because "apt update" doesn't detect any changes. after "add-apt-repository --remove ppa:ddstreet/systemd".

Dan Streetman (ddstreet) wrote :

> Please, forgive my ignorance, but how do I return to normal official packages, after I remove your PPA? Because "apt update" doesn't detect any changes. after "add-apt-repository --remove ppa:ddstreet/systemd".

once the next (fixed) systemd version is released, it will have a higher version number than the build from my ppa, and you can upgrade to the official version simply by 'sudo apt update ; sudo apt upgrade'. Make sure not to continue using my PPA, of course, but running the --remove command you did should be all that's needed to remove it.

If you want to revert to the official package version before the next version is released, you can manually specify the older package version to apt, like 'sudo apt install systemd=245.4-4ubuntu3'. You will also need to specify all related packages (e.g. udev, libsystemd0, libudev1, etc...) with the older version number.

Hello Sunil, or anyone else affected,

Accepted systemd into focal-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/systemd/245.4-4ubuntu3.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-focal to verification-done-focal. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-focal. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in systemd (Ubuntu Focal):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-focal

Hi Brian

We will help in testing this for sure once it is available in 18.04. according to my understanding this is being pushed to bionic too right?

All autopkgtests for the newly accepted systemd (245.4-4ubuntu3.1) for focal have finished running.
The following regressions have been reported in tests triggered by the package:

hddemux/unknown (armhf)
pyudev/unknown (armhf)
python-uinput/unknown (armhf)
prometheus/2.15.2+ds-2 (armhf, amd64, arm64, ppc64el, s390x)
gvfs/unknown (armhf)
indicator-session/unknown (armhf)
gpsd/unknown (armhf)
samba/unknown (armhf)
python-systemd/unknown (armhf)
golang-github-coreos-go-systemd/unknown (armhf)
pystemd/unknown (armhf)
umockdev/0.14.1-1 (armhf)
remctl/unknown (armhf)
icinga2/unknown (armhf)
gnome-desktop3/unknown (armhf)
munin/2.0.56-1ubuntu1 (arm64)
haproxy/unknown (armhf)
python-dbusmock/unknown (armhf)
gvfs/1.44.1-1ubuntu1 (arm64)

Please visit the excuses page listed below and investigate the failures, proceeding afterwards as per the StableReleaseUpdates policy regarding autopkgtest regressions [1].

https://people.canonical.com/~ubuntu-archive/proposed-migration/focal/update_excuses.html#systemd

[1] https://wiki.ubuntu.com/StableReleaseUpdates#Autopkgtest_Regressions

Thank you!

Todor Andreev (toshko3) wrote :

I can confirm, with "systemd 245.4-4ubuntu3.1 amd64" this bug is fixed for me.
To clarify: "use-routes=false" in netplan ignores the default gateway given by DHCP.
I'm using Ubuntu Server 20.04 with wired network interfaces.
I don't know how to perform more tests, but don't see any problems so far.

Dan Streetman (ddstreet) wrote :

thanks for verifying @toshko3!

i marked as verification-done for focal. (I also gave it a quick test to verify).

tags: added: verification-done verification-done-focal
removed: verification-needed verification-needed-focal
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package systemd - 245.5-2ubuntu2

---------------
systemd (245.5-2ubuntu2) groovy; urgency=medium

  [ Dan Streetman ]
  * network: Change IgnoreCarrierLoss default to value of ConfigureWithoutCarrier.
    This fixes bridges with static IP configuration. (LP: #1860926)
    File: debian/patches/lp1860926-network-Change-IgnoreCarrierLoss-default-to-value-of.patch
    https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=59d655136ca05d830d46e5cd90e6b549406cd670
  * Cherry-pick fix from upstream master to adjust UseGateway= default
    - network: change UseGateway= default to UseRoutes= setting
    - network: honor SetDNSRoutes= even if UseGateway=False (LP: #1867375)
    Files:
    - debian/patches/network-change-UseGateway-default-to-UseRoutes-setting.patch
    - debian/patches/network-honor-SetDNSRoutes-even-if-UseGateway-False.patch
    - debian/patches/test-modify-add-tests-for-UseRoutes-and-UseGateway-config.patch
    - debian/patches/test-verify-RoutesToDNS-is-independent-of-UseGateway.patch
    https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=4ddb639d6bb0ca07368348bc588c21c41f08a5e7
  * refresh quilt patches

  [ Balint Reczey ]
  * Rename a few patches which are expected to stay longer in Ubuntu
    Files:
    - debian/patches/Revert-cgroup-Continue-unit-reset-if-cgroup-is-busy.patch
    - debian/patches/Revert-namespace-be-more-careful-when-handling-namespacin.patch
    - debian/patches/resolved-Mitigate-DVE-2018-0001-by-retrying-NXDOMAIN-with.patch
    - debian/patches/debian/UBUNTU-Revert-cgroup-Continue-unit-reset-if-cgroup-is-busy.patch
    - debian/patches/debian/UBUNTU-Revert-namespace-be-more-careful-when-handling-namespacin.patch
    - debian/patches/debian/UBUNTU-resolved-Mitigate-DVE-2018-0001-by-retrying-NXDOMAIN-with.patch
    https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=41e97add3900c761fafc58c7a2b024f7b618d313
  * test: Skip test-boot-timestamps on permission denied.
    This fixes root-unittests in unprivileged LXD containers
    File: debian/patches/test-Skip-test-boot-timestamps-on-permission-denied.patch
    https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=b98a63c04e9e82b0f57617e21233aa103b069785
  * tests: Skip test-execute in containers
    File: debian/tests/root-unittests
    https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=2d6f282bf20866f711c6ae509228b0c513218ca9
  * Run some tests in LXD, too
    Files:
    - debian/tests/control
    - debian/tests/tests-in-lxd
    https://git.launchpad.net/~ubuntu-core-dev/ubuntu/+source/systemd/commit/?id=bf0bb5176284d9ec1b348b84e70f961ee12e3cac

 -- Balint Reczey <email address hidden> Tue, 12 May 2020 16:59:54 +0200

Changed in systemd (Ubuntu Groovy):
status: In Progress → Fix Released

Hello Sunil, or anyone else affected,

Accepted systemd into eoan-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/systemd/242-7ubuntu3.9 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-eoan to verification-done-eoan. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-eoan. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in systemd (Ubuntu Eoan):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-eoan
removed: verification-done
Brian Murray (brian-murray) wrote :

Hello Sunil, or anyone else affected,

Accepted systemd into bionic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/systemd/237-3ubuntu10.41 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-bionic to verification-done-bionic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-bionic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in systemd (Ubuntu Bionic):
status: In Progress → Fix Committed
tags: added: verification-needed-bionic
Todor Andreev (toshko3) wrote :

I can confirm, with "systemd 237-3ubuntu10.41 amd64" this bug is fixed for me.
To clarify: "use-routes=false" in netplan ignores the default gateway given by DHCP.
I'm using Ubuntu Server 18.04.4 with wired network interfaces.

All autopkgtests for the newly accepted systemd (242-7ubuntu3.9) for eoan have finished running.
The following regressions have been reported in tests triggered by the package:

nghttp2/unknown (armhf)
pulseaudio/unknown (armhf)
docker.io/unknown (armhf)
csync2/unknown (armhf)
network-manager/unknown (armhf)
dovecot/unknown (armhf)
open-iscsi/unknown (armhf)
netplan.io/unknown (armhf)
asterisk/1:16.2.1~dfsg-2build2 (arm64)
tinyssh/unknown (armhf)
puppet/unknown (armhf)
corosync/unknown (armhf)
python-uinput/unknown (armhf)
nextepc/unknown (armhf)
debci/unknown (armhf)
pyudev/unknown (armhf)
cups/unknown (armhf)
umockdev/0.13.2-1 (armhf)
cockpit/unknown (ppc64el)
network-manager/1.20.4-2ubuntu2.2 (arm64)
nftables/unknown (armhf)
prometheus/unknown (armhf)
corosync-qdevice/unknown (armhf)
prometheus-bind-exporter/unknown (armhf)
python-systemd/unknown (armhf)
prometheus-alertmanager/unknown (armhf)
ndctl/unknown (armhf)
prometheus-apache-exporter/unknown (armhf)
dpdk/unknown (armhf)
nextepc/0.3.10+nods-3ubuntu1 (ppc64el)
dbus/unknown (armhf)
openssh/1:8.0p1-6build1 (armhf, amd64, i386, ppc64el, arm64, s390x)
openrazer/unknown (armhf)
gvfs/1.42.1-1ubuntu1 (arm64)
snapd/2.42.1+19.10 (i386)
prometheus-node-exporter/unknown (armhf)
prometheus-postgres-exporter/unknown (armhf)
python-dbusmock/unknown (armhf)
systemd/242-7ubuntu3.9 (ppc64el)

Please visit the excuses page listed below and investigate the failures, proceeding afterwards as per the StableReleaseUpdates policy regarding autopkgtest regressions [1].

https://people.canonical.com/~ubuntu-archive/proposed-migration/eoan/update_excuses.html#systemd

[1] https://wiki.ubuntu.com/StableReleaseUpdates#Autopkgtest_Regressions

Thank you!

All autopkgtests for the newly accepted systemd (237-3ubuntu10.41) for bionic have finished running.
The following regressions have been reported in tests triggered by the package:

python-dbusmock/unknown (armhf)
policykit-1/unknown (armhf)
multipath-tools/unknown (armhf)
debci/unknown (ppc64el)
netplan.io/0.99-0ubuntu3~18.04.1 (i386)
pdns-recursor/unknown (armhf)
umockdev/0.11.1-1 (armhf)
sssd/unknown (armhf)
linux-raspi2-5.3/unknown (armhf)
suricata/unknown (armhf)
lxc/unknown (armhf)
casync/2+61.20180112-1 (s390x)
openssh/1:7.6p1-4ubuntu0.3 (arm64, s390x, amd64, i386, ppc64el, armhf)
python-systemd/unknown (armhf)
puppet/unknown (armhf)
prometheus-postgres-exporter/unknown (armhf)
lxc/3.0.3-0ubuntu1~18.04.1 (arm64)
postgresql-10/unknown (armhf)
polkit-qt-1/unknown (armhf)
munin/unknown (armhf)
systemd/237-3ubuntu10.41 (armhf)
pulseaudio/unknown (armhf)
php7.2/unknown (armhf)

Please visit the excuses page listed below and investigate the failures, proceeding afterwards as per the StableReleaseUpdates policy regarding autopkgtest regressions [1].

https://people.canonical.com/~ubuntu-archive/proposed-migration/bionic/update_excuses.html#systemd

[1] https://wiki.ubuntu.com/StableReleaseUpdates#Autopkgtest_Regressions

Thank you!

Dan Streetman (ddstreet) wrote :

eoan:

root@lp1867375-e:/etc/systemd/network# cat 10.network
[Match]
Name=eth0

[Network]
DHCP=ipv4
LinkLocalAddressing=ipv6

[DHCP]
RouteMetric=100
UseMTU=true
UseRoutes=false
UseGateway=true

root@lp1867375-e:/etc/systemd/network# dpkg -l systemd|grep systemd
ii systemd 242-7ubuntu3.8 amd64 system and service manager
root@lp1867375-e:/etc/systemd/network# systemctl restart systemd-networkd
root@lp1867375-e:/etc/systemd/network# ip a show eth0
41: eth0@if42: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:16:3e:d7:53:48 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.202.51.129/24 brd 10.202.51.255 scope global dynamic eth0
       valid_lft 3598sec preferred_lft 3598sec
    inet6 fe80::216:3eff:fed7:5348/64 scope link
       valid_lft forever preferred_lft forever
root@lp1867375-e:/etc/systemd/network# ip r
10.202.51.0/24 dev eth0 proto kernel scope link src 10.202.51.129

root@lp1867375-e:/etc/systemd/network# dpkg -l systemd|grep systemd
ii systemd 242-7ubuntu3.9 amd64 system and service manager
root@lp1867375-e:/etc/systemd/network# systemctl restart systemd-networkd
root@lp1867375-e:/etc/systemd/network# ip a show eth0
41: eth0@if42: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:16:3e:d7:53:48 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.202.51.129/24 brd 10.202.51.255 scope global dynamic eth0
       valid_lft 3598sec preferred_lft 3598sec
    inet6 fe80::216:3eff:fed7:5348/64 scope link
       valid_lft forever preferred_lft forever
root@lp1867375-e:/etc/systemd/network# ip r
default via 10.202.51.1 dev eth0 proto dhcp src 10.202.51.129 metric 100
10.202.51.0/24 dev eth0 proto kernel scope link src 10.202.51.129
10.202.51.1 dev eth0 proto dhcp scope link src 10.202.51.129 metric 100

and to verify UseRoutes still works:

root@lp1867375-e:/etc/systemd/network# cat 10.network
[Match]
Name=eth0

[Network]
DHCP=ipv4
LinkLocalAddressing=ipv6

[DHCP]
RouteMetric=100
UseMTU=true
UseRoutes=false
#UseGateway=true

root@lp1867375-e:/etc/systemd/network# systemctl restart systemd-networkd
root@lp1867375-e:/etc/systemd/network# ip r
10.202.51.0/24 dev eth0 proto kernel scope link src 10.202.51.129

tags: added: verification-done-eoan
removed: verification-needed-eoan
Dan Streetman (ddstreet) wrote :

bionic:

root@lp1867375-b:~# cat /etc/systemd/network/10.network
[Match]
Name=eth0

[Network]
DHCP=ipv4
LinkLocalAddressing=ipv6

[DHCP]
RouteMetric=100
UseMTU=true
UseRoutes=false
UseGateway=true

root@lp1867375-b:~# dpkg -l systemd|grep systemd
ii systemd 237-3ubuntu10.40 amd64 system and service manager
root@lp1867375-b:~# systemctl restart systemd-networkd
root@lp1867375-b:~# ip a show eth0
102: eth0@if103: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:16:3e:f8:cb:57 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.202.51.83/24 brd 10.202.51.255 scope global dynamic eth0
       valid_lft 3598sec preferred_lft 3598sec
    inet6 fe80::216:3eff:fef8:cb57/64 scope link
       valid_lft forever preferred_lft forever
root@lp1867375-b:~# ip r
10.202.51.0/24 dev eth0 proto kernel scope link src 10.202.51.83

root@lp1867375-b:~# dpkg -l systemd|grep systemd
ii systemd 237-3ubuntu10.41 amd64 system and service manager
root@lp1867375-b:~# systemctl restart systemd-networkd
root@lp1867375-b:~# ip a show eth0
102: eth0@if103: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 00:16:3e:f8:cb:57 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 10.202.51.83/24 brd 10.202.51.255 scope global dynamic eth0
       valid_lft 3598sec preferred_lft 3598sec
    inet6 fe80::216:3eff:fef8:cb57/64 scope link
       valid_lft forever preferred_lft forever
root@lp1867375-b:~# ip r
default via 10.202.51.1 dev eth0 proto dhcp src 10.202.51.83 metric 100
10.202.51.0/24 dev eth0 proto kernel scope link src 10.202.51.83
10.202.51.1 dev eth0 proto dhcp scope link src 10.202.51.83 metric 100

and to verify UseRoutes still works:

root@lp1867375-b:~# cat /etc/systemd/network/10.network
[Match]
Name=eth0

[Network]
DHCP=ipv4
LinkLocalAddressing=ipv6

[DHCP]
RouteMetric=100
UseMTU=true
UseRoutes=false
#UseGateway=true

root@lp1867375-b:~# systemctl restart systemd-networkd
root@lp1867375-b:~# ip r
10.202.51.0/24 dev eth0 proto kernel scope link src 10.202.51.83

tags: added: verification-done verification-done-bionic
removed: verification-needed verification-needed-bionic

The verification of the Stable Release Update for systemd has completed successfully and the package is now being released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package systemd - 245.4-4ubuntu3.1

---------------
systemd (245.4-4ubuntu3.1) focal; urgency=medium

  * d/p/lp1867375/0001-network-add-a-flag-to-ignore-gateway-provided-by-DHC.patch,
    d/p/lp1867375/0002-test-network-add-a-test-case-for-DHCPv4.UseGateway-n.patch,
    d/p/lp1867375/0003-network-change-UseGateway-default-to-UseRoutes-setti.patch,
    d/p/lp1867375/0004-test-modify-add-tests-for-UseRoutes-and-UseGateway-c.patch,
    d/p/lp1867375/0005-network-honor-SetDNSRoutes-even-if-UseGateway-False.patch,
    d/p/lp1867375/0006-test-verify-RoutesToDNS-is-independent-of-UseGateway.patch:
    - Add UseGateway= parameter and default to value of UseRoutes, to restore
      backwards compatibility with old UseRoutes= behavior (LP: #1867375)
  * d/p/lp1860926-network-Change-IgnoreCarrierLoss-default-to-value-of.patch:
    - default ignore_carrier_loss to value of configure_without_carrier,
      so carrier drop during configuration doesn't break networking
      (LP: #1860926)
   * d/e/initramfs-tools/hooks/udev:
     - Follow symlinks when finding link files to copy into initramfs
       (LP: #1868892)
   * d/p/lp1873607/0001-core-some-minor-clean-ups-modernizations.patch,
     d/p/lp1873607/0002-core-make-sure-to-restore-the-control-command-id-too.patch:
     - Avoid segfault during serialization (LP: #1873607)

 -- Dan Streetman <email address hidden> Thu, 07 May 2020 09:21:22 -0400

Changed in systemd (Ubuntu Focal):
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package systemd - 242-7ubuntu3.9

---------------
systemd (242-7ubuntu3.9) eoan; urgency=medium

  * d/p/lp1867375/0001-network-Allow-to-configure-GW-even-UseRoutes-false.patch,
    d/p/lp1867375/0002-network-add-a-flag-to-ignore-gateway-provided-by-DHC.patch,
    d/p/lp1867375/0003-network-change-UseGateway-default-to-UseRoutes-setti.patch,
    d/p/lp1867375/0004-network-honor-SetDNSRoutes-even-if-UseGateway-False.patch:
    - Move gateway ignoring from UseRoutes= to UseGateway= (LP: #1867375)
   * d/p/lp1873607/0001-core-some-minor-clean-ups-modernizations.patch,
     d/p/lp1873607/0002-core-make-sure-to-restore-the-control-command-id-too.patch:
     - Avoid segfault during serialization (LP: #1873607)
   * d/p/lp1877271-network-drop-all-checks-of-ipv6_disabled-sysctl.patch:
     - enable ipv6 for interface when needed (LP: #1877271)
   * d/p/lp1860926-network-Change-IgnoreCarrierLoss-default-to-value-of.patch:
     - IgnoreCarrierLoss default to ConfigureWithoutCarrier (LP: #1860926)

 -- Dan Streetman <email address hidden> Fri, 08 May 2020 12:28:53 -0400

Changed in systemd (Ubuntu Eoan):
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package systemd - 237-3ubuntu10.41

---------------
systemd (237-3ubuntu10.41) bionic; urgency=medium

  [ Dan Streetman ]
  * d/p/lp1867375/0001-network-Allow-to-configure-GW-even-UseRoutes-false.patch,
    d/p/lp1867375/0002-network-add-a-flag-to-ignore-gateway-provided-by-DHC.patch,
    d/p/lp1867375/0003-network-change-UseGateway-default-to-UseRoutes-setti.patch:
    - Move gateway ignoring from UseRoutes= to UseGateway= (LP: #1867375)
   * d/p/lp1873607/0002-core-make-sure-to-restore-the-control-command-id-too.patch:
     - Avoid segfault during serialization (LP: #1873607)
   * d/p/lp1529152/0001-bash-completion-systemctl-use-systemctl-no-pager.patch,
     d/p/lp1529152/0002-bash-completion-systemctl-pass-current-partial-unit-.patch,
     d/p/lp1529152/0003-shell-completion-systemctl-pass-current-word-to-all-.patch,
     d/p/lp1529152/0004-bash-completion-systemctl-re-implement-__filter_unit.patch,
     d/p/lp1529152/0005-strip-value-from-property-names.patch:
     - fix slow systemctl tab completion (LP: #1529152)
   * d/p/lp1877159-networkd-fix-attribute-length-for-wireguard-10380.patch:
     - avoid kernel err msg setting wireguard param (LP: #1877159)

  [ Heitor Alves de Siqueira ]
  * d/p/lp1876600-sd-bus-deal-with-cookie-overruns.patch:
    - deal with dbus cookie overruns (LP: #1876600)

 -- Heitor Alves de Siqueira <email address hidden> Sun, 03 May 2020 11:30:25 +0000

Changed in systemd (Ubuntu Bionic):
status: Fix Committed → Fix Released
Todor Andreev (toshko3) wrote :

Thank you Dan Streetman and all for your work!

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

Duplicates of this bug

Other bug subscribers