Activity log for bug #1833193

Date Who What changed Old value New value Message
2019-06-18 09:07:38 Lars Erik Pedersen bug added bug
2019-06-18 09:07:38 Lars Erik Pedersen attachment added systemd-networkd debug log https://bugs.launchpad.net/bugs/1833193/+attachment/5271319/+files/systemd-networkd-debug.txt
2019-06-18 10:17:41 Lars Erik Pedersen summary systemd-network fails to apply static IPv4 when the static IP is the same as previously configured by DHCP systemd-networkd fails to apply static IPv4 when the static IP is the same as previously configured by DHCP
2019-06-18 11:55:06 Dan Streetman bug added subscriber Dan Streetman
2019-09-30 16:48:15 Dan Streetman bug watch added https://github.com/systemd/systemd/issues/11458
2019-09-30 16:48:36 Dan Streetman bug task added systemd
2019-09-30 23:30:51 Bug Watch Updater systemd: status Unknown Fix Released
2019-10-10 21:15:02 Dan Streetman systemd (Ubuntu): assignee Dan Streetman (ddstreet)
2019-10-10 21:15:04 Dan Streetman systemd (Ubuntu): importance Undecided Medium
2019-10-10 21:15:06 Dan Streetman systemd (Ubuntu): status New In Progress
2019-12-12 07:10:47 Dominique Poulain bug added subscriber Dominique Poulain
2019-12-12 19:35:03 Dan Streetman tags bionic ddstreet disco eoan focal sts systemd
2019-12-12 20:51:49 Dan Streetman nominated for series Ubuntu Disco
2019-12-12 20:51:49 Dan Streetman bug task added systemd (Ubuntu Disco)
2019-12-12 20:51:49 Dan Streetman nominated for series Ubuntu Bionic
2019-12-12 20:51:49 Dan Streetman bug task added systemd (Ubuntu Bionic)
2019-12-12 21:16:10 Dan Streetman systemd (Ubuntu Bionic): status New In Progress
2019-12-12 21:16:13 Dan Streetman systemd (Ubuntu Disco): status New In Progress
2019-12-12 21:16:16 Dan Streetman systemd (Ubuntu Disco): assignee Dan Streetman (ddstreet)
2019-12-12 21:16:18 Dan Streetman systemd (Ubuntu Bionic): assignee Dan Streetman (ddstreet)
2019-12-12 21:16:20 Dan Streetman systemd (Ubuntu Disco): importance Undecided Medium
2019-12-12 21:16:21 Dan Streetman systemd (Ubuntu Bionic): importance Undecided Medium
2019-12-12 21:16:23 Dan Streetman systemd (Ubuntu): status In Progress Fix Released
2019-12-12 22:34:58 Dan Streetman description In bionic, running systemd 237-3ubuntu10.22 and netplan.io 0.97-0ubuntu1~18.04.1, systemd-networkd fails to configure an interface with a static IPv4 address if the statically confiugred address is the same as the interface already has gotten from DHCP. This will cause the interface to loose its IP address when the DHCP lease exires, even though you've told netplan to configure it as static. I expect systemd-networkd to actually configure an IP address as static, regardless of what address the interface has before from DHCP. # lsb_release -rd Description: Ubuntu 18.04.2 LTS Release: 18.04 # apt-cache policy systemd systemd: Installed: 237-3ubuntu10.22 # apt-cache policy netplan.io netplan.io: Installed: 0.97-0ubuntu1~18.04.1 A paste of systemd-networkd's debug log when I run "netplan apply" and the interface already has the static IP configured from DHCP. It seems like upon a restart, systemd-networkd will allways add whatever IP config it had before the service stopped, and then apply changes (if any). Since my new config has the same IP as it already had, it does nothing even though the new config has static configuration. [impact] if networkd is configured with a static address, and the address has already been assigned by dhcp (so that it has finite valid_lft), networkd will not change the valid_lft to 'forever' during startup, which leaves networkd thinking the address is static (meaning, networkd will not attempt to renew the dhcp lease) but the address valid_lft counting down. Once the valid_lft expires, the kernel will remove the address from the interface, breaking the system's networking. [test case] configure a system with networkd similar to: [Match] Name=ens3 [Network] DHCP=ipv4 restart systemd-networkd, and ens3 should get a DHCP address, e.g.: $ ip -4 a show ens3 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.122.147/24 brd 192.168.122.255 scope global dynamic ens3 valid_lft 2295sec preferred_lft 2295sec then, edit the networkd config to use a static address, e.g.: [Match] Name=ens3 [Network] Address=192.168.122.147/24 Gateway=192.168.122.1 DNS=192.168.122.1 Domains=vm make sure to use the exact same address that was provided by dhcp. Then, without rebooting, just restart networkd and check the address lft: $ sudo systemctl restart systemd-networkd $ ip -4 a show ens3 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.122.147/24 brd 192.168.122.255 scope global dynamic ens3 valid_lft 2992sec preferred_lft 2992sec the address should have 'forever' valid_lft, but it doesn't. [regression potential] this changes the details of how networkd updates static addresses during startup, so any regression would occur at networkd startup when using static addresses. [scope] this is needed only in Bionic and Disco. this is fixed by upstream: https://github.com/systemd/systemd/pull/11460/commits specifically commit a47a6daebe0af26c07d8d423225eb4add110793c which is included in Eoan and later. In Xenial using networkd, testing shows this problem does not occur. [other info] original description: --- In bionic, running systemd 237-3ubuntu10.22 and netplan.io 0.97-0ubuntu1~18.04.1, systemd-networkd fails to configure an interface with a static IPv4 address if the statically confiugred address is the same as the interface already has gotten from DHCP. This will cause the interface to loose its IP address when the DHCP lease exires, even though you've told netplan to configure it as static. I expect systemd-networkd to actually configure an IP address as static, regardless of what address the interface has before from DHCP. # lsb_release -rd Description: Ubuntu 18.04.2 LTS Release: 18.04 # apt-cache policy systemd systemd:   Installed: 237-3ubuntu10.22 # apt-cache policy netplan.io netplan.io:   Installed: 0.97-0ubuntu1~18.04.1 A paste of systemd-networkd's debug log when I run "netplan apply" and the interface already has the static IP configured from DHCP. It seems like upon a restart, systemd-networkd will allways add whatever IP config it had before the service stopped, and then apply changes (if any). Since my new config has the same IP as it already had, it does nothing even though the new config has static configuration.
2019-12-12 22:37:53 Dan Streetman description [impact] if networkd is configured with a static address, and the address has already been assigned by dhcp (so that it has finite valid_lft), networkd will not change the valid_lft to 'forever' during startup, which leaves networkd thinking the address is static (meaning, networkd will not attempt to renew the dhcp lease) but the address valid_lft counting down. Once the valid_lft expires, the kernel will remove the address from the interface, breaking the system's networking. [test case] configure a system with networkd similar to: [Match] Name=ens3 [Network] DHCP=ipv4 restart systemd-networkd, and ens3 should get a DHCP address, e.g.: $ ip -4 a show ens3 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.122.147/24 brd 192.168.122.255 scope global dynamic ens3 valid_lft 2295sec preferred_lft 2295sec then, edit the networkd config to use a static address, e.g.: [Match] Name=ens3 [Network] Address=192.168.122.147/24 Gateway=192.168.122.1 DNS=192.168.122.1 Domains=vm make sure to use the exact same address that was provided by dhcp. Then, without rebooting, just restart networkd and check the address lft: $ sudo systemctl restart systemd-networkd $ ip -4 a show ens3 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 inet 192.168.122.147/24 brd 192.168.122.255 scope global dynamic ens3 valid_lft 2992sec preferred_lft 2992sec the address should have 'forever' valid_lft, but it doesn't. [regression potential] this changes the details of how networkd updates static addresses during startup, so any regression would occur at networkd startup when using static addresses. [scope] this is needed only in Bionic and Disco. this is fixed by upstream: https://github.com/systemd/systemd/pull/11460/commits specifically commit a47a6daebe0af26c07d8d423225eb4add110793c which is included in Eoan and later. In Xenial using networkd, testing shows this problem does not occur. [other info] original description: --- In bionic, running systemd 237-3ubuntu10.22 and netplan.io 0.97-0ubuntu1~18.04.1, systemd-networkd fails to configure an interface with a static IPv4 address if the statically confiugred address is the same as the interface already has gotten from DHCP. This will cause the interface to loose its IP address when the DHCP lease exires, even though you've told netplan to configure it as static. I expect systemd-networkd to actually configure an IP address as static, regardless of what address the interface has before from DHCP. # lsb_release -rd Description: Ubuntu 18.04.2 LTS Release: 18.04 # apt-cache policy systemd systemd:   Installed: 237-3ubuntu10.22 # apt-cache policy netplan.io netplan.io:   Installed: 0.97-0ubuntu1~18.04.1 A paste of systemd-networkd's debug log when I run "netplan apply" and the interface already has the static IP configured from DHCP. It seems like upon a restart, systemd-networkd will allways add whatever IP config it had before the service stopped, and then apply changes (if any). Since my new config has the same IP as it already had, it does nothing even though the new config has static configuration. [impact] if networkd is configured with a static address, and the address has already been assigned by dhcp (so that it has finite valid_lft), networkd will not change the valid_lft to 'forever' during startup, which leaves networkd thinking the address is static (meaning, networkd will not attempt to renew the dhcp lease) but the address valid_lft counting down. Once the valid_lft expires, the kernel will remove the address from the interface, breaking the system's networking. [test case] configure a system with networkd similar to: [Match] Name=ens3 [Network] DHCP=ipv4 restart systemd-networkd, and ens3 should get a DHCP address, e.g.: $ ip -4 a show ens3 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000     inet 192.168.122.147/24 brd 192.168.122.255 scope global dynamic ens3        valid_lft 2295sec preferred_lft 2295sec then, edit the networkd config to use a static address, e.g.: [Match] Name=ens3 [Network] Address=192.168.122.147/24 Gateway=192.168.122.1 DNS=192.168.122.1 Domains=vm make sure to use the exact same address that was provided by dhcp. Then, without rebooting, just restart networkd and check the address lft: $ sudo systemctl restart systemd-networkd $ ip -4 a show ens3 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000     inet 192.168.122.147/24 brd 192.168.122.255 scope global dynamic ens3        valid_lft 2992sec preferred_lft 2992sec the address should have 'forever' valid_lft, but it doesn't. [regression potential] this changes the details of how networkd updates static addresses during startup, so any regression would occur at networkd startup when using static addresses. [scope] this is needed only in Bionic and Disco. this is fixed by upstream: https://github.com/systemd/systemd/pull/11460/commits specifically commit a47a6daebe0af26c07d8d423225eb4add110793c which is included in Eoan and later. In Xenial using networkd, testing shows this problem does not occur, because this older version of networkd removes the 'foreign' dhcp address before re-assigning it as a static address. [other info] original description: --- In bionic, running systemd 237-3ubuntu10.22 and netplan.io 0.97-0ubuntu1~18.04.1, systemd-networkd fails to configure an interface with a static IPv4 address if the statically confiugred address is the same as the interface already has gotten from DHCP. This will cause the interface to loose its IP address when the DHCP lease exires, even though you've told netplan to configure it as static. I expect systemd-networkd to actually configure an IP address as static, regardless of what address the interface has before from DHCP. # lsb_release -rd Description: Ubuntu 18.04.2 LTS Release: 18.04 # apt-cache policy systemd systemd:   Installed: 237-3ubuntu10.22 # apt-cache policy netplan.io netplan.io:   Installed: 0.97-0ubuntu1~18.04.1 A paste of systemd-networkd's debug log when I run "netplan apply" and the interface already has the static IP configured from DHCP. It seems like upon a restart, systemd-networkd will allways add whatever IP config it had before the service stopped, and then apply changes (if any). Since my new config has the same IP as it already had, it does nothing even though the new config has static configuration.
2019-12-12 22:53:24 Dan Streetman tags bionic ddstreet disco eoan focal sts systemd bionic ddstreet disco sts systemd
2020-01-14 13:03:14 Dan Streetman systemd (Ubuntu Disco): status In Progress Won't Fix
2020-02-03 21:53:39 Steve Langasek systemd (Ubuntu Bionic): status In Progress Fix Committed
2020-02-03 21:53:44 Steve Langasek bug added subscriber Ubuntu Stable Release Updates Team
2020-02-03 21:53:47 Steve Langasek bug added subscriber SRU Verification
2020-02-03 21:53:51 Steve Langasek tags bionic ddstreet disco sts systemd bionic ddstreet disco sts systemd verification-needed verification-needed-bionic
2020-02-06 08:16:37 Lars Erik Pedersen tags bionic ddstreet disco sts systemd verification-needed verification-needed-bionic bionic ddstreet disco sts systemd verification-done-bionic verification-needed
2020-02-06 15:21:56 Dimitri John Ledkov systemd (Ubuntu Bionic): status Fix Committed In Progress
2020-02-06 15:22:23 Dimitri John Ledkov tags bionic ddstreet disco sts systemd verification-done-bionic verification-needed bionic ddstreet disco sts systemd verification-failed verification-failed-bionic
2020-02-06 21:46:54 Steve Langasek systemd (Ubuntu Bionic): status In Progress Fix Committed
2020-02-06 21:47:04 Steve Langasek tags bionic ddstreet disco sts systemd verification-failed verification-failed-bionic bionic ddstreet disco sts systemd verification-needed verification-needed-bionic
2020-02-10 14:40:44 Lars Erik Pedersen tags bionic ddstreet disco sts systemd verification-needed verification-needed-bionic bionic ddstreet disco sts systemd verification-done-bionic verification-needed
2020-02-17 09:57:55 Łukasz Zemczak removed subscriber Ubuntu Stable Release Updates Team
2020-02-17 10:07:54 Launchpad Janitor systemd (Ubuntu Bionic): status Fix Committed Fix Released