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 http://www.blueridgenetworks.com OpenPGP key ID: 296D1CD6F2B84CAB https://keys.openpgp.org/ On 21/04/2021 15:34, Silvio Knizek wrote:
Am Mittwoch, dem 21.04.2021 um 14:24 -0400 schrieb 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 there is a big fat warning stamped at the top of the file:# 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.Hi Bruce, IMHO "having a lease" is not a good metric to determine if you can access something. I would suggest something along this line: --- /etc/systemd/system/internal-network-accessable.target [Unit] Description=Internal System Accessable --- --- /etc/systemd/system/check-if-internal-system-is-accessable.service [Unit] Description=Check if internal system can be reached [Service] ExecStart=/usr/local/bin/check-if-internal-system-is-accessable.sh Restart=always [Install] WantedBy=multi-user.target --- --- /usr/local/bin/check-if-internal-system-is-accessable.sh #!/usr/bin/bash while :; do if wget -q --spider $INTERNAL_RESOURCE; then systemctl start internal-network-accessable.target else systemctl stop internal-network-accessable.target fi sleep 600 done --- 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= HTH Silvio _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/systemd-devel
OpenPGP_signature
Description: OpenPGP digital signature
_______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/systemd-devel