Thanks! that clarifies it - I think this is a bug upstream with systemd. > if I set "dhcp4: no" explicit when confiugring static addressing, it behaves as expected
are you sure? that isn't what I would expect, it seems the problem is networkd doesn't adjust the address lifetime when networkd is restarted and the address changes from dhcp->static; i would not expect the DHCP=no param it fix that. Although that's a netplan config, so possibly netplan does something additional under the covers, other than what systemd-networkd does. > It seems like upon a restart, systemd-networkd will allways add whatever IP config it had before the service stopped, and then apply changes not exactly, what's happening is when you stop networkd, it does not remove network configuration that it manages, so in this case it would leave the dhcp address on the interface. then when you (re)start networkd, it does not change existing addresses that it manages, so it sees that the interface already has the address that it's been configured to use as a static address, and does not change it. It looks like networkd needs to also check the address's lifetime to make sure static addrs have their lifetime set to 'forever' (I have not actually checked the code yet to verify this). If you reboot, or manually remove the address, or just bring the interface down and back up, networkd will re-add the address with 'forever' lft, so this should only be a problem when you have manually changed the config for an address from dhcp->static using the same ip address, and then restart networkd without rebooting, at least IIUC. -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to systemd in Ubuntu. https://bugs.launchpad.net/bugs/1833193 Title: systemd-networkd fails to apply static IPv4 when the static IP is the same as previously configured by DHCP Status in systemd package in Ubuntu: New Bug 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. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1833193/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp