Duplicate DHCP leases

We’ve been getting the following types of error messages on our DHCP server (running on FreeBSD):

Jan 12 07:01:52 *someserver* dhcpd: uid lease 192.168.100.200 for client 00:12:34:56:78:9a is duplicate on 192.168.100/24

Google turned up a [helpful post][] which told me what the problem was, but I didn’t care for the suggested fix. Initially I concentrated on the MAC addresses listed in the error log, seeing if they were also defined in our dhcpd.conf file:

grep “is duplicate” /var/log/messages \
| cut -f 11 -d’ ‘ \
| sort -u \
| grep -C –file=- /usr/local/etc/dhcpd.conf

But this doesn’t seem like the correct approach. What we really ought to be doing is comparing our dhcpd.leases file to dhcpd.conf, looking for MAC addresses that are listed in both. Anything that’s listed with a *fixed-address* in dhcpd.conf probably shouldn’t be the leases file, IMHO. That’s probably a bit too complicated for a bunch of shell commands piped together, since we’d need to parse a multi-line DHCP entry from each file. I think a perl script might do the job.

[helpful post]: http://www.culmination.org/2008/10/28/isc-dhcpd-duplicate-uid-lease/

About Jim Vanderveen

I'm a bit of a Renaissance man, with far too many hobbies for my free time! But more important than any hobby is my family. My proudest accomplishment has been raising some great kids! And somehow convincing my wife to put up with me since 1988. ;)
This entry was posted in FreeBSD, Uncategorized and tagged , . Bookmark the permalink.

2 Responses to Duplicate DHCP leases

  1. Brad says:

    I saw this same issue on a server without any static listings, so it may be affect static IP’s, but also note that the problem exists with dynamic users as well.

  2. John Douglass says:

    We are seeing this same issue without any static listings. Our DHCP server services about 12,000 IPs and after google’ing all over I still haven’t found the best solution.

    Possibilities I am looking at are the following settings:

    one-lease-per-client false;
    ignore declines;
    deny duplicates.

    What I am seeing in the leases file is that one ore more leasefile entries have:

    lease 128.61.31.192 {
    starts 2 2010/02/23 16:03:34;
    ends 2 2010/02/23 16:03:42;
    tstp 2 2010/02/23 16:03:42;
    binding state free;
    hardware ethernet 00:24:36:41:a7:28;
    uid “00 “;
    }

    and

    lease 128.61.118.37 {
    starts 2 2010/02/23 16:00:33;
    ends 2 2010/02/23 16:00:33;
    tstp 2 2010/02/23 16:00:33;
    binding state free;
    hardware ethernet 00:26:08:35:98:0e;
    uid “00 “;
    }

    Something is up in regards to the “uid” being the same on both devices I think. I have about exhausted my google’ing abilities to find a solution however…

Leave a Reply to Brad Cancel reply

Your email address will not be published. Required fields are marked *