Silvio, thanks for the suggestion. I'm not concerned with keeping the
lease forever; the system actually experiences a topology change as it's
switched from one network to another, and I can catch that from the DBus
events that occur. The problem we're trying to solve is to contact some
address that we're sure exists on the network, without knowing anything
about that network. The default gateway was an obvious choice, but
someone wants to cover the case of there being a private LAN with no
gateway. The only other choice I could see is the DHCP server that
issues the lease.
As my thinking has evolved, I really want to get at more DHCP lease
information when it comes in, like a private DHCP option code that
conveys something about the environment. I came across a comment
somewhere that said the only way is to set the systemd-networkd client
to use debug log level and read from the journal, but isn't there a more
direct way, like with the Dbus signals that tell subscribers about
network interface status?
Bruce A. Johnson | Firmware Engineer
Blue Ridge Networks, Inc.
14120 Parke Long Court Suite 103 | Chantilly, VA 20151
Main: 1.800.722.1168 | Direct: 703-633-7332
OpenPGP key ID: 296D1CD6F2B84CAB https://keys.openpgp.org/
Post by Silvio Knizek
Post by Bruce A. Johnson
Is there a correct way to obtain information about the DHCP lease
received by systemd-networkd's DHCP client functionality? It was easy
enough to find SERVER_ADDRESS in /var/run/systemd/netif/leases/4, but
# This is private data. Do not parse.
I'd like to be able to make a widget that can tell me which DHCP server
issued my lease, how much more time I have, etc., mainly because I want
to be able to ping something that is known to be on the network. I'm
dealing with a lazy sysadmin who doesn't want to put a gateway on this
private network, I haven't found a solution using the CLI tools.
Thanks in advance.
IMHO "having a lease" is not a good metric to determine if you can
Description=Internal System Accessable
Description=Check if internal system can be reached
while :; do
if wget -q --spider $INTERNAL_RESOURCE; then
systemctl start internal-network-accessable.target
systemctl stop internal-network-accessable.target
Than you can check just the status of the .target. You may need to
tweak the lifeness probe, YMMV.
Also in sd-networkd you can configure a .network to never loose its
lease, see man:systemd.network â KeepConfiguration=
systemd-devel mailing list