Two leases for the same Mac address.
dhcp1 at thehobsons.co.uk
Sat Feb 10 14:38:24 UTC 2007
Francis SOUYRI wrote:
> I am using thinstation which are booting on the network.
>When the hardware boots (ACCTON Ethernet card) it requires two times for
>an IP address, the DHCP server (dhcp 3.0.3-28 from Fedora core 5),
>offers the two times the same IP address.
>Then the thinstation retrieves the linux kernel, the software boot and
>ask for an IP address, now the DHCP server does not offer the same IP
>address but another one.
>For each thinstation that I start they takes two IP, and finally the
>DHCP server has not enough free addresses left for booting all the
>Sometimes when I checks the lease file, there is more then two leases
>for one mac address....
This is quite normal. Taking your queries in reverse order, you will
see as many entries in the lease file as there were transactions with
clients - eg if you reboot your client, you will see more lease
records written to the leases file. This is because the leases file
is an 'append only' file and any event that requires an update to the
persistent database results in a new record being added to the file.
Periodically, the server will write out a new file containing only
the latest lease for each IP address.
Now to the main part of your query. This has been covered many, many
times before on this list, usually when the client OS is Windows. If
you look at the leases for the two addresses, you will probably find
that one lease has no client-id (labelled UID in the lease file
IIRC), while the other has one (or they have different client-ids).
The server will use the client-id as the primary key to identify the
client and use the MAC address only of the client-id is not present.
Thus if a client sometimes uses no client-id, and sometimes does use
one, then to any standards compliant server they are different
The usual issue when this comes up is a system that dual-boots into
Linux (no client id by default) and Windows (uses MAC address as
client-id), or does a network boot and then boots into Windows.
The 'correct' answer is to persuade your client to use the same
client-id all the time, but this can be hard. Alternatively, if you
can identify the boot code and OS separately it is possible to create
two pools so that clients can be given a different (short) lease
while booting so as not to exhaust the 'working' addresses.
Alternatively, there are some patches (see
http://www.cs.tau.ac.il/~didi/dhcp/) that alter the way the server
handles client-id - but be aware that the server is no longer RFC
compliant when these are in use.
More information about the dhcp-users