dhcpd.leases

The dhcpd.leases file is a critical component of the ISC DHCP server, dhcpd. This file stores the current leases that the DHCP server has granted to clients. It keeps track of which IP addresses have been assigned, to which devices, and for how long.

Structure and Contents

The dhcpd.leases file contains a series of lease declarations, each representing a single lease granted by the DHCP server. Each lease includes various pieces of information about the lease, such as the IP address, MAC address, lease duration, and other options provided to the client.

Example Contents

Here is an example of what the dhcpd.leases file might look like:

lease 192.168.1.10 {
  starts 3 2023/07/19 14:37:06;
  ends 3 2023/07/19 15:37:06;
  tstp 3 2023/07/19 15:37:06;
  cltt 3 2023/07/19 14:37:06;
  binding state active;
  next binding state free;
  hardware ethernet 00:11:22:33:44:55;
  uid "\001\000\021\"\033DU";
  client-hostname "client1";
}

Key Components Explained

  • lease : Indicates the start of a lease block for the specified IP address.

  • starts <YYYY/MM/DD> HH:MM:SS: The start time of the lease.

  • ends <YYYY/MM/DD> HH:MM:SS: The end time of the lease.

  • tstp <YYYY/MM/DD> HH:MM:SS: The time when the server will stop considering the lease valid.

  • cltt <YYYY/MM/DD> HH:MM:SS: The client last transaction time, indicating the last time the client and server communicated regarding this lease.

  • binding state : The current state of the lease, typically "active" or "free".

  • next binding state : The next state the lease will transition to after it expires or is released.

  • hardware ethernet : The MAC address of the client to which the IP address is leased.

  • uid : The unique identifier for the client.

  • client-hostname : The hostname of the client.

Lease States

  • active: The lease is currently in use by a client.

  • free: The lease is available to be reassigned.

  • backup: The lease is reserved for failover purposes.

  • expired: The lease has expired and is no longer valid.

Practical Use Cases

Viewing Active Leases

To see which IP addresses are currently leased, you can simply view the dhcpd.leases file:

cat /var/lib/dhcp/dhcpd.leases

Parsing the dhcpd.leases File

For scripting or automated monitoring purposes, you can parse the dhcpd.leases file to extract information about active leases. Here is an example using awk:

awk '/lease/ {ip=$2} /hardware ethernet/ {mac=$3} /client-hostname/ {print ip, mac, $2}' /var/lib/dhcp/dhcpd.leases

This script will print the IP address, MAC address, and hostname for each active lease.

Managing Stale Leases

Over time, the dhcpd.leases file can accumulate stale or expired leases. To manage this, you can manually clean up the file or configure the DHCP server to automatically remove old leases.

Security Considerations

  • File Permissions: Ensure that the dhcpd.leases file is readable only by the DHCP server process to prevent unauthorized access.

  • Regular Backups: Regularly back up the dhcpd.leases file to prevent data loss in case of server failure.

  • Monitoring: Continuously monitor the dhcpd.leases file for unusual patterns or unauthorized devices.

Conclusion

The dhcpd.leases file is essential for the operation of the ISC DHCP server, tracking all leases it has granted to clients. Understanding its structure and content allows administrators to effectively manage DHCP leases, troubleshoot network issues, and ensure efficient IP address allocation. Proper management and monitoring of this file are crucial for maintaining a healthy and secure DHCP infrastructure.

Last updated