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/
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.
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…