isc-dhcpd does not play niceley with diskless boot

Bug #1269113 reported by Jason Morgan
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
isc-dhcp (Ubuntu)
New
Undecided
Unassigned

Bug Description

In Ubuntu 12.04.3 the isc-dhcp-server (v4.1) does not work properly with diskless boot and ddns.

During diskless boot the server issues an IP.

The machine boots and the OS loads, during loading and to keep ddns happy the isc-dhcp-client (dhclient) needs to be loaded even though the machine already has an address.

Because the machine has just booted it has no /var/lib/dhcp/dhclient.leases file
so dhclient does a DISCOVER with the current ip for that interface.

The server has already issued an address (it issued it during boot) so it does a ping which succeeds as the address is correct.

However dhcpd does not check the MAC so it assumes the address is already allocated (which it is, correctly) so it issues another new address and does a DDNS update. It has now created a DDNS entry to the wrong address.

This cycle continues until all the addresses for a range are exhausted.

Correct operation:
It should check the MAC resolution after the ping-check and if the MAC matches the UID and/or MAC of a previous lease it should change it's usual behaviour. It should re-issue the address that was requested and previously allocated and behave as though the client did a REQUEST instead of a DISCOVER.

Work round, add
ping-check false;
to the /etc/dhcpd.conf

Though this is not ideal as a ping-check is a good sanity check.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.