M HYPE SPLASH
// news

Renew DHCP lease in systemd-networkd

By Sarah Scott

I have my eth0 interface configured for DHCPv4 via netplan:

network: version: 2 renderer: networkd ethernets: eth0: dhcp4: true dhcp6: true optional: true

How do I tell systemd-networkd to renew my DHCP lease? I know with dhclient it's as simple as dhclient -r eth0 && dhclient eth0, as explained in many other answers on this site, but how do I do it for systemd-networkd?

I'm in Ubuntu 18.04 Server.

3 Answers

Starting from systemd version 244, you can renew DHCP lease in systemd-networkd with the following command:

networkctl renew DEVICES...

Ubuntu 20.04 shipped with systemd 245.4 and is the first version of Ubuntu where this command is available.

2

I found a freedesktop.org mailing list post from Tom Gundersen in August 2014 that answers my question, at least as of the time it was written:

> Is there a way to force a DHCPv4 release/renew with systemd-networkd?

We don't currently allow dynamic interaction with networkd, but you can force renew the release by either restarting networkd or unplugging/replugging the cable (or switching your wifi off/on if that's what you are using).

-t

So apparently if you do one of these two things, systemd-networkd will renew your DHCP lease.

2

I have found that if you do a restart on systemd-networkd, it ignores the previous lease and just starts over with a clean request.

If you're also using a dhcpd that does a ping check you end up with a second. That might be an interaction with how I've set up the network config. We use Critical because otherwise systemd-network sends a DHCPRELEASE on shutdown and, most critically, also forgets the lease it had before. So rebooting two systemd-networkd servers at the same time has a very high chance of both of them losing their IP addresses.

I'm unsure what the conditions that cause this to happen are, however, I've found that if you send a -HUP to systemd-networkd, and then start the service (not restart) it will use the leases that are in /var/run/systemd/netif as you would expect.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy