DHCP server lease database
The Internet Software Consortium DHCP Server keeps a persistent database of
leases that it has assigned. This database is a free-form ASCII file
containing a series of lease declarations. Every time a lease is acquired,
renewed or released, its new value is recorded at the end of the lease file.
So if more than one declaration appears for a given lease, the last one in the
file is the current one.
Lease descriptions are stored in a format that is parsed by the same recursive
descent parser used to read the
files. Currently, the only declaration that is used in the
file is the
Each lease declaration includes the single IP address that has been leased to
the client. The statements within the braces define the duration of the lease
and to whom it is assigned.
The start and end time of a lease are recorded using the ``starts'' and ``ends''
Dates are specified as follows:
The weekday is present to make it easy for a human to tell when a lease expires
- it's specified as a number from zero to six, with zero being Sunday. The day
of week is ignored on input. The year is specified with the century, so it
should generally be four digits except for really long leases. The month is
specified as a number starting with 1 for January. The day of the month is
likewise specified starting with 1. The hour is a number from 0 to 23, the
minute a number from 0 to 59, and the second also a number from 0 to 59.
Lease times are specified in Coordinated Universal Time (UTC), not in the local
The MAC address of the network interface that was used to acquire the lease is
recorded with the hardware
The MAC address is specified as a series of hexadecimal octets, separated by
If the client uses a client identifier to acquire its address, the client
identifier is recorded using the uid
The client identifier is recorded as a series of hexadecimal octets, regardless
of whether the client specifies an ASCII string or uses the newer hardware
type/MAC address format.
If the client sends a hostname using the Client
option, as specified in some versions of the DHCP-DNS Interaction
draft, that hostname is recorded using the
If the client sends its hostname using the Hostname
option, it is recorded using the hostname
The DHCP server may determine that a lease has been misused in some way, either
because a client that has been assigned a lease NAKs it, or because the
server's own attempt to see if an address is in use prior to reusing it
reveals that the address is in fact already in use. In that case, the
statement will be used to indicate that
the lease should not be reassigned.
Abandoned leases are reclaimed automatically. When a client asks for a new
address, and the server finds that there are no new addresses, it checks to
see if there are any abandoned leases, and allocates the least recently
abandoned lease. The standard mechanisms for checking for lease address
conflicts are still followed, so if the abandoned lease's IP address is still
in use, it will be reabandoned.
If a client requests
an abandoned address, the
server assumes that the reason the address was abandoned was that the lease
file was corrupted, and that the client is the machine that responded when the
lease was probed, causing it to be abandoned. In that case, the address is
immediately assigned to the client.
Dynamic Host Configuration Protocol,
RFC 2131, March 1997.
S. Alexander and
R. Droms, DHCP Options and BOOTP
Vendor Extensions, RFC 2132,
was written by
under a contract with Vixie Labs.
The current implementation was reworked by Henning