isc-dhcp leases file never cleaned

6,060

As MadHatter mentioned in a comment, the leases file is periodically re-created to avoid this problem. While the period isn't mentioned in the documentation, discussions on the dhcp-users mailinglist indicates that it should be done once an hour, and I've checked the source code and found that this is correct.

Unfortunately this isn't a configurable option. In order to change it, you'd need to compile the dhcp server from source. In the file server/db.c you'd need to change the line

#define LEASE_REWRITE_PERIOD 3600

to the number of seconds you'd prefer.

Share:
6,060
Jon Skarpeteig
Author by

Jon Skarpeteig

Updated on September 18, 2022

Comments

  • Jon Skarpeteig
    Jon Skarpeteig almost 2 years

    When running isc-dhcp the leases file seems to grow indefinitely (several hundred MB). If I restart the isc-dhcp service, the file shrinks to 1.5MB.

    How can I have isc-dhcp flush expired records periodically without restarting the full service?

    • MadHatter
      MadHatter almost 10 years
      The documentation suggests dhcpd does this itself automatically, but at a frequency of its choosing. How long are your leases? Is there a good business reason not to just bounce the daemon?
    • Jon Skarpeteig
      Jon Skarpeteig almost 10 years
      I use fairly short leases. I don't want to crontab a service restart, since truncating a large leases file seems to take a min - leaving the DHCP service off for the duration
    • MadHatter
      MadHatter almost 10 years
      Is there a good reason not to use longer leases? That would prevent the file from growing so fast.
    • Jon Skarpeteig
      Jon Skarpeteig almost 10 years
      It's only a workaround for DHCP scope running full.
    • MadHatter
      MadHatter almost 10 years
      It's only a workaround if there's a business reason to use short leases; otherwise, you're running misconfigured, and upset that the daemon won't clean up after you.
    • Jon Skarpeteig
      Jon Skarpeteig almost 10 years
      "The documentation suggests dhcpd does this itself automatically, but at a frequency of its choosing" -- URL?
    • Jon Skarpeteig
      Jon Skarpeteig almost 10 years
    • MadHatter
      MadHatter almost 10 years
      For the avoidance of doubt, from man dhcpd.leases: "In order to prevent the lease database from growing without bound, the file is rewritten from time to time.". But Jenny D has provided an excellent answer (as usual!), and I think no further input is required of me.