dhcp fails with big dhcpd.leases

Simon Hobson dhcp1 at thehobsons.co.uk
Wed Sep 1 10:21:08 UTC 2010

dorian wrote:

>  > The full sequence is :
>>  Client - DHCP-Discover. Broadcasts a request for any DHCP servers to
>>  reply with offers of a lease.
>>  Server - DHCP-Offer. Broadcast an offer back to the client.
>>  <client then selects an offer, since there may be more than one DHCP
>>  server on the network>
>>  Client - DHCP-Request. Broadcast a request to use the address offered.
>>  <the server must now permanently record the lease in the database>
>>  Server - DHCP-Ack. Confirm to the client that the address is valid.
>>  <the client can now configure it's interface>
>Clear. And in logs I can find the "offers" with new, correct address.
>But for any reason it is not delivered, accepted or ignored by client.
>There is no final "DHCP-Ack" from server.

 From the logs you have posted so far, the client does not make a 
request for the address it's been offered - and so the server will 
not send an Ack. The server does not "push" a lease to the client, it 
makes an offer and it is for the client to request it.

>But if I restart the dhcp server with no dhcp.lease file the client gets
>IP immediately.
>So in my opinion the problem is on the server side.
>It cannot manage having a lot of active leases.

The server can manage large numbers of leases - it certainly does for 
other people.

>And let me not to experiment because I do not see what way the results
>could help me in the problem.
>The "knowledge" learned this way would be in my opinion very unreliable
>(even for me).

OK, that comes across as "I have a problem, I expect you to fix it, 
but I'm not prepared to try any of your suggestions to try and find 
where the problem is".

We do want to help you, but for us to be able to, then you have to 
help us to help you.

We haven't found anything wrong with your config, though looking 
again I'll make the following observation :

1) The man page for dhcpd.conf says :
        The  ad-hoc Dynamic DNS update scheme is now deprecated and
        does not work.  In future releases of the ISC DHCP
        server, this scheme will not likely be available.  The
        interim scheme works, allows for failover,  and  should
        now be used.  The following description is left here for
        informational purposes only.

I mentioned earlier that your DDNS updates aren't working. At the 
very least you should use the interim update scheme, or turn off DDNS 
altogether if you aren't using it.

Apart from the problem potentially being related to the size of the 
leases file/number of leases, the only other suggestion I have is 
that perhaps there is a corrupted lease in that large file - which is 
causing the problem.
The only solution I can see for that is to stop the server, delete 
the leases file, and start the server - ie start the server with no 
history at all of previous leases. This is fairly drastic, and as 
I've already said, breaks things.
Before doing that, I'd suggest setting the max lease time to some 
short value (perhaps an hour) and running with that setting for at 
least 9 hours. That way, there will only be leases active for clients 
that are currently on the network (or have been in the last hour) and 
will minimise problems caused by the server leasing out an address 
which is already in use.

A corrupted lease could explain why the server ran fine for weeks and 
then 'just broke'. It may be that a particular client managed to send 
bad data which found it's way into the lease.

Simon Hobson

Visit http://www.magpiesnestpublishing.co.uk/ for books by acclaimed
author Gladys Hobson. Novels - poetry - short stories - ideal as
Christmas stocking fillers. Some available as e-books.

More information about the dhcp-users mailing list