[Bug 1812760] Re: networkd: [Route] PreferredSource not working in *.network files
Dan Streetman
dan.streetman at canonical.com
Mon Mar 4 13:40:27 UTC 2019
bionic:
root at systemd-b:~# dpkg -l | grep libsystemd0
ii libsystemd0:amd64 237-3ubuntu10.13 amd64 systemd utility library
root at systemd-b:~# netplan apply
root at systemd-b:~# ip -6 r
fd8f:1d7d:b141::/64 dev ens3 proto kernel metric 256 pref medium
fe80::/64 dev ens3 proto kernel metric 256 pref medium
root at systemd-b:~# dpkg -l | grep libsystemd0
ii libsystemd0:amd64 237-3ubuntu10.14 amd64 systemd utility library
root at systemd-b:~# netplan apply
root at systemd-b:~# ip -6 r
a::/16 via fd8f:1d7d:b141::1 dev ens3 proto static src fd8f:1d7d:b141::2 metric 1024 pref medium
fd8f:1d7d:b141::/64 dev ens3 proto static src fd8f:1d7d:b141::2 metric 255 pref medium
fd8f:1d7d:b141::/64 dev ens3 proto kernel metric 256 pref medium
fe80::/64 dev ens3 proto kernel metric 256 pref medium
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to systemd in Ubuntu.
https://bugs.launchpad.net/bugs/1812760
Title:
networkd: [Route] PreferredSource not working in *.network files
Status in systemd:
Unknown
Status in systemd package in Ubuntu:
Fix Released
Status in systemd source package in Bionic:
Fix Committed
Status in systemd source package in Cosmic:
Fix Committed
Status in systemd source package in Disco:
Fix Released
Bug description:
[Impact]
Users cannot create IPv6 routes that specify PreferredSource. This
means that users cannot specify a number of valid IPv6 routes that are
useful in some circumstances. These routes can be created with the
'ip' tool, just not with systemd.
This was reported upstream in systemd issue #5882 is fixed by pulling
in the changes in systemd PR #11375 -
https://github.com/systemd/systemd/pull/11375
[Test Case]
Start a Bionic or Cosmic VM.
Add the following netplan yaml (adjust for ethernet card and MAC):
network:
version: 2
ethernets:
ens3:
dhcp4: true
match:
macaddress: 52:54:00:e2:c2:d7
set-name: ens3
addresses: ["fd8f:1d7d:b141::2/64", "fd8f:1d7d:b141::200/64"]
routes:
- to: "a::/16"
via: "fd8f:1d7d:b141::1"
from: "fd8f:1d7d:b141::2"
- to: "fd8f:1d7d:b141::/64"
scope: link
from: "fd8f:1d7d:b141::2"
metric: 255
Run netplan apply or reboot. Wait ~10s.
Currently, ip -6 route will not include a route to "a::/16", and will
not include the route to "fd8f:1d7d:b141::/64" that has
"fd8f:1d7d:b141::2" as the source address - both those addresses will
be missing.
Correct behaviour is for ip -6 route to report the following:
ubuntu at b-np:~$ ip -6 route
a::/16 via fd8f:1d7d:b141::1 dev ens3 proto static src fd8f:1d7d:b141::2 metric 1024 pref medium
fd8f:1d7d:b141::/64 dev ens3 proto static src fd8f:1d7d:b141::2 metric 255 pref medium
fd8f:1d7d:b141::/64 dev ens3 proto kernel metric 256 pref medium
fe80::/64 dev ens3 proto kernel metric 256 pref medium
Check before and after upgrade that 'systemctl status network-
online.target' shows that the target has been reached.
[Regression Potential]
This changes the state machine in systemd which configures the links.
It passes systemd's internal tests, and has been approved by systemd
maintainers, but it remains possible that the changes will break the
configuration of obscure network setups.
The backport requires pulling in two further commits that also change
behaviour: currently systemd deletes all addresses and routes that
were attached to an interface. With this change, it will only delete
those that are not specified in the configuration files. A side effect
of this is that restarting networkd will not cause remove/add netlink
events to be emitted for these addresses, so if anyone is relying on
this behavior this will break compatibility; but that is an unlikely
thing to be relying on, and it seems worth this risk to reduce
unnecessary network state changes.
To manage notifications about this bug go to:
https://bugs.launchpad.net/systemd/+bug/1812760/+subscriptions
More information about the foundations-bugs
mailing list