---
title: "ISC DHCP 4.4.3 Manual Pages - dhclient.conf"
slug: "isc-dhcp-443-manual-pages-dhclientconf"
description: "Manual page for dhclient.conf - DHCP client configuration file"
updated: 2022-01-26T19:30:56Z
published: 2022-01-26T19:30:56Z
---

> ## Documentation Index
> Fetch the complete documentation index at: https://kb.isc.org/llms.txt
> Use this file to discover all available pages before exploring further.

# ISC DHCP 4.4.3 Manual Pages - dhclient.conf

<title>dhclient.conf</title>

<body>

<h1 align=center>dhclient.conf</h1>
<a name="NAME"></a>
<h2>NAME</h2>

<p style="margin-left:11%; margin-top: 1em">dhclient.conf -
DHCP client configuration file</p>

<a name="DESCRIPTION"></a>
<h2>DESCRIPTION</h2>

<p style="margin-left:11%; margin-top: 1em">The
dhclient.conf file contains configuration information for
<i>dhclient,</i> the Internet Systems Consortium DHCP
Client.</p>

<p style="margin-left:11%; margin-top: 1em">The
dhclient.conf file is a free-form ASCII text file. It is
parsed by the recursive-descent parser built into dhclient.
The file may contain extra tabs and newlines for formatting
purposes. Keywords in the file are case-insensitive.
Comments may be placed anywhere within the file (except
within quotes). Comments begin with the # character and end
at the end of the line.</p>

<p style="margin-left:11%; margin-top: 1em">The
dhclient.conf file can be used to configure the behaviour of
the client in a wide variety of ways: protocol timing,
information requested from the server, information required
of the server, defaults to use if the server does not
provide certain information, values with which to override
information provided by the server, or values to prepend or
append to information provided by the server. The
configuration file can also be preinitialized with addresses
to use on networks that don&rsquo;t have DHCP servers.</p>

<a name="PROTOCOL TIMING"></a>
<h2>PROTOCOL TIMING</h2>

<p style="margin-left:11%; margin-top: 1em">The timing
behaviour of the client need not be configured by the user.
If no timing configuration is provided by the user, a fairly
reasonable timing behaviour will be used by default - one
which results in fairly timely updates without placing an
inordinate load on the server.</p>

<p style="margin-left:11%; margin-top: 1em">If required the
following statements can be used to adjust the timing
behaviour of the DHCPv4 client. The DHCPv6 protocol provides
values to use and they are not currently configurable.</p>

<p style="margin-left:11%; margin-top: 1em"><h3>The <i><b>timeout</b> </i>statement</h3></p>

<p style="margin-left:11%; margin-top: 1em"><pre><b>timeout</b> time;</pre></p>

<p style="margin-left:11%; margin-top: 1em">The
<i>timeout</i> statement determines the amount of time that
must pass between the time that the client begins to try to
determine its address and the time that it decides that
it&rsquo;s not going to be able to contact a server. By
default, this timeout is sixty seconds. After the timeout
has passed, if there are any static leases defined in the
configuration file, or any leases remaining in the lease
database that have not yet expired, the client will loop
through these leases attempting to validate them, and if it
finds one that appears to be valid, it will use that
lease&rsquo;s address. If there are no valid static leases
or unexpired leases in the lease database, the client will
restart the protocol after the defined retry interval.</p>

<p style="margin-left:11%; margin-top: 1em"><h3>The<i>
<b>retry</b></i> statement</h3></p>

<p style="margin-left:11%; margin-top: 1em"><pre><b>retry</b> time;</pre></p>

<p style="margin-left:11%; margin-top: 1em">The
<i>retry</i> statement determines the time that must pass
after the client has determined that there is no DHCP server
present before it tries again to contact a DHCP server. By
default, this is five minutes.</p>

<p style="margin-left:11%; margin-top: 1em"><h3>The
<b><i>select-timeout</i></b> statement</i></h3>

<p style="margin-left:11%; margin-top: 1em"><pre><b>select-timeout</b> time;</pre></p>

<p style="margin-left:11%; margin-top: 1em">It is possible
(some might say desirable) for there to be more than one
DHCP server serving any given network. In this case, it is
possible that a client may be sent more than one offer in
response to its initial lease discovery message. It may be
that one of these offers is preferable to the other (e.g.,
one offer may have the address the client previously used,
and the other may not).</p>

<p style="margin-left:11%; margin-top: 1em">The
<i>select-timeout</i> is the time after the client sends its
first lease discovery request at which it stops waiting for
offers from servers, assuming that it has received at least
one such offer. If no offers have been received by the time
the <i>select-timeout</i> has expired, the client will
accept the first offer that arrives.</p>

<p style="margin-left:11%; margin-top: 1em">By default, the
select-timeout is zero seconds - that is, the client will
take the first offer it sees.</p>

<p style="margin-left:11%; margin-top: 1em"><h3>The <i><b>reboot</b></i> statement</h3></p>

<p style="margin-left:11%; margin-top: 1em"><pre><b>reboot</b> time;</pre></p>

<p style="margin-left:11%; margin-top: 1em">When the client
is restarted, it first tries to reacquire the last address
it had. This is called the INIT-REBOOT state. If it is still
attached to the same network it was attached to when it last
ran, this is the quickest way to get started. The
<i>reboot</i> statement sets the time that must elapse after
the client first tries to reacquire its old address before
it gives up and tries to discover a new address. By default,
the reboot timeout is ten seconds.</p>

<p style="margin-left:11%; margin-top: 1em"><h3>The <i><b>backoff-cutoff</b></i> statement</h3></p>

<p style="margin-left:11%; margin-top: 1em"><pre><b>backoff-cutoff</b> time;</pre></p>

<p style="margin-left:11%; margin-top: 1em">The client uses
an exponential backoff algorithm with some randomness, so
that if many clients try to configure themselves at the same
time, they will not make their requests in lockstep. The
<i>backoff-cutoff</i> statement determines the maximum
amount of time that the client is allowed to back off, the
actual value will be evaluated randomly between 1/2 to 1 1/2
times the <i>time</i> specified. It defaults to fifteen
seconds.</p>

<p style="margin-left:11%; margin-top: 1em"><h3>The <i><b>initial-interval</b></i> statement</h3></p>

<p style="margin-left:11%; margin-top: 1em"><pre><b>initial-interval</b> time;</pre></p>

<p style="margin-left:11%; margin-top: 1em">The
<i>initial-interval</i> statement sets the amount of time
between the first attempt to reach a server and the second
attempt to reach a server. Each time a message is sent, the
interval between messages is incremented by twice the
current interval multiplied by a random number between zero
and one. If it is greater than the backoff-cutoff amount, it
is set to that amount. It defaults to ten seconds.</p>

<p style="margin-left:11%; margin-top: 1em"><h3>The
<i>initial-delay</i> statement</h3></p>

<p style="margin-left:11%; margin-top: 1em"><pre><b>initial-delay</b> time;</pre></p>

<p style="margin-left:11%; margin-top: 1em">The <i>initial-delay</i>
parameter sets the maximum time client can wait after start
before commencing first transmission. According to RFC2131
Section 4.4.1, client should wait a random time between
startup and the actual first transmission. Previous versions
of ISC DHCP client used to wait random time up to 5 seconds,
but that was unwanted due to impact on startup time. As
such, new versions have the default initial delay set to 0.
To restore old behavior, please set initial-delay to 5.</p>

<a name="DHCPv6 LEASE SELECTION"></a>
<h2>DHCPv6 LEASE SELECTION</h2>

<p style="margin-left:11%; margin-top: 1em">In the DHCPv6
protocol the client will wait a small amount of time to
allow ADVERTISE messages from multiple servers to arrive. It
will then need to choose from all of the messages that may
have arrived before proceeding to making a request of the
selected server.</p>

<p style="margin-left:11%; margin-top: 1em">The first
selection criteria is the set of options and addresses in
the message. Messages that don&rsquo;t include an option
specified as required will be given a score of 0 and not
used. If the <i>-R</i> option is given on the command line
then messages that don&rsquo;t include the correct number of
bindings (IA-NA, IA-TA or IA-PD) will be discarded.</p>

<p style="margin-left:11%; margin-top: 1em">The next
criteria is the preference value from the message. With the
highest preference value being used even if leases with
better addresses or options are available.</p>

<p style="margin-left:11%; margin-top: 1em">Finally the
lease is scored and the lease with the highest score is
selected. A lease&rsquo;s score is based on the number of
bindings, number of addresses and number of options it
contains:</p>

<pre>bindings * X + addresses * Y + options</pre></p>

<p style="margin-left:11%;">By default X = 10000 and Y =
100, this will cause the client to select a lease with more
bindings over a lease with less bindings but more addresses.
The weightings were changed as part of implementing RFC
7550. Previously they were X = 50 and Y = 100 meaning more
addresses were preferred over more bindings. If you wish to
continue using the old style you may do so by editing the
file includes/site.h and uncommenting the define for
USE_ORIGINAL_CLIENT_LEASE_WEIGHTS.</p>

<a name="LEASE REQUIREMENTS AND REQUESTS"></a>
<h2>LEASE REQUIREMENTS AND REQUESTS</h2>

<p style="margin-left:11%; margin-top: 1em">The DHCP
protocol allows the client to request that the server send
it specific information, and not send it other information
that it is not prepared to accept. The protocol also allows
the client to reject offers from servers if they don&rsquo;t
contain information the client needs, or if the information
provided is not satisfactory.</p>

<p style="margin-left:11%; margin-top: 1em">There is a
variety of data contained in offers that DHCP servers send
to DHCP clients. The data that can be specifically requested
is what are called <i>DHCP Options</i>. DHCP Options are
defined in <b><br>
dhcp-options(5)</b>.</p>

<p style="margin-left:11%; margin-top: 1em"><h3>The <i><b>request</b></i> statement</h3></p>

<p style="margin-left:11%; margin-top: 1em"><pre><b>[ also ] request [ [</b> option-space . ] option ] [<b>,</b> ... ]<b>;</b></pre></p>

<p style="margin-left:11%; margin-top: 1em">The request
statement causes the client to request that any server
responding to the client send the client its values for the
specified options. Only the option names should be specified
in the request statement - not option parameters. By
default, the DHCPv4 client requests the subnet-mask,
broadcast-address, time-offset, routers, domain-name,
domain-name-servers and host-name options while the DHCPv6
client requests the dhcp6 name-servers and domain-search
options. Note that if you enter a &acute;request&acute;
statement, you over-ride these defaults and these options
will not be requested.</p>

<p style="margin-left:11%; margin-top: 1em">In some cases,
it may be desirable to send no parameter request list at
all. To do this, simply write the request statement but
specify no parameters:</p>

<pre>request;</pre>

<p style="margin-left:11%; margin-top: 1em">In most cases,
it is desirable to simply add one option to the request list
which is of interest to the client in question. In this
case, it is best to &acute;also request&acute; the
additional options:</p>

<pre>also request domain-search, dhcp6.sip-servers-addresses;</pre></p>

<p style="margin-left:11%; margin-top: 1em"><h3>The <i><b>require</b></i> statement</h3>

<p style="margin-left:11%; margin-top: 1em"><pre><b>[ also ] require [ [</b> option-space . ] option ] [<b>,</b> ... ]<b>;</b></pre></p>

<p style="margin-left:11%; margin-top: 1em">The require
statement lists options that must be sent in order for an
offer to be accepted. Offers that do not contain all the
listed options will be ignored. There is no default require
list.</p>

<pre>require name-servers;
interface eth0 {
     also require domain-search;
}</pre>

<p style="margin-left:11%; margin-top: 1em"><h3>The <i><b>send</b></i> statement</h3></p>

<p style="margin-left:11%; margin-top: 1em"><pre><b>send [</b> option declaration ] ;</pre></p>

<p style="margin-left:11%; margin-top: 1em">The send
statement causes the client to send the specified option to
the server with the specified value. This is a full option
declaration as described in <b>dhcp-options(5)</b>. Options
that are always sent in the DHCP protocol should not be
specified here, except that the client can specify a
requested <b>dhcp-lease-time</b> option other than the
default requested lease time, which is two hours. The other
obvious use for this statement is to send information to the
server that will allow it to differentiate between this
client and other clients or kinds of clients.</p>

<a name="DYNAMIC DNS"></a>
<h2>DYNAMIC DNS</h2>

<p style="margin-left:11%; margin-top: 1em">The client now
has some very limited support for doing DNS updates when a
lease is acquired. This is prototypical, and probably
doesn&rsquo;t do what you want. It also only works if you
happen to have control over your DNS server, which
isn&rsquo;t very likely.</p>

<p style="margin-left:11%; margin-top: 1em">Note that
everything in this section is true whether you are using
DHCPv4 or DHCPv6. The exact same syntax is used for
both.</p>

<p style="margin-left:11%; margin-top: 1em">To make it
work, you have to declare a key and zone as in the DHCP
server (see <b>dhcpd.conf</b>(5) for details). You also need
to configure the <i>fqdn</i> option on the client, as
follows:</p>

<p style="margin-left:11%; margin-top: 1em">send fqdn.fqdn
&quot;grosse.example.com.&quot;; <br>
send fqdn.encoded on; <br>
send fqdn.server-update off; <br>
also request fqdn, dhcp6.fqdn;</p>

<p style="margin-left:11%; margin-top: 1em">The
<i>fqdn.fqdn</i> option <b>MUST</b> be a fully-qualified
domain name. You <b>MUST</b> define a zone statement for the
zone to be updated. The <i>fqdn.encoded</i> option may need
to be set to <i>on</i> or <i>off</i>, depending on the DHCP
server you are using.</p>

<p style="margin-left:11%; margin-top: 1em"><h3>The <i><b>do-forward-updates</b></i> statement</h3></p>

<p style="margin-left:11%; margin-top: 1em"><pre><b>do-forward-updates [</b> flag ] ;</pre></p>

<p style="margin-left:11%; margin-top: 1em">If you want to
do DNS updates in the DHCP client script (see
<b>dhclient-script(8)</b>) rather than having the DHCP
client do the update directly (for example, if you want to
use SIG(0) authentication, which is not supported directly
by the DHCP client, you can instruct the client not to do
the update using the <b>do-forward-updates</b> statement.
<i>Flag</i> should be <b>true</b> if you want the DHCP
client to do the update, and <b>false</b> if you don&rsquo;t
want the DHCP client to do the update. By default, the DHCP
client will do the DNS update.</p>

<a name="OPTION MODIFIERS"></a>
<h2>OPTION MODIFIERS</h2>

<p style="margin-left:11%; margin-top: 1em">In some cases,
a client may receive option data from the server which is
not really appropriate for that client, or may not receive
information that it needs, and for which a useful default
value exists. It may also receive information which is
useful, but which needs to be supplemented with local
information. To handle these needs, several option modifiers
are available.</p>

<p style="margin-left:11%; margin-top: 1em"><h3>The <i><b>default</b></i> statement</h3></p>

<p style="margin-left:11%; margin-top: 1em"><pre><b>default [</b> option declaration ] ;</pre></p>

<p style="margin-left:11%; margin-top: 1em">If for some
option the client should use the value supplied by the
server, but needs to use some default value if no value was
supplied by the server, these values can be defined in the
<b>default</b> statement.</p>

<p style="margin-left:11%; margin-top: 1em"><h3>The <i><b>supersede</b></i> statement</h3></p>

<p style="margin-left:11%; margin-top: 1em"><pre><b>supersede [</b> option declaration ] ;</pre></p>

<p style="margin-left:11%; margin-top: 1em">If for some
option the client should always use a locally-configured
value or values rather than whatever is supplied by the
server, these values can be defined in the <b>supersede</b>
statement.</p>

<p style="margin-left:11%; margin-top: 1em"><h3>The <i><b>prepend</b></i> statement</h3></p>

<p style="margin-left:11%; margin-top: 1em"><pre><b>prepend [</b> option declaration ] ;</pre></p>

<p style="margin-left:11%; margin-top: 1em">If for some set
of options the client should use a value you supply, and
then use the values supplied by the server, if any, these
values can be defined in the <b>prepend</b> statement. The
<b>prepend</b> statement can only be used for options which
allow more than one value to be given. This restriction is
not enforced - if you ignore it, the behaviour will be
unpredictable.</p>

<p style="margin-left:11%; margin-top: 1em"><h3>The <i><b>append</b></i> statement</h3></p>

<p style="margin-left:11%; margin-top: 1em"><pre><b>append [</b> option declaration ] ;</pre></p>

<p style="margin-left:11%; margin-top: 1em">If for some set
of options the client should first use the values supplied
by the server, if any, and then use values you supply, these
values can be defined in the <b>append</b> statement. The
<b>append</b> statement can only be used for options which
allow more than one value to be given. This restriction is
not enforced - if you ignore it, the behaviour will be
unpredictable.</p>

<a name="LEASE DECLARATIONS"></a>
<h2>LEASE DECLARATIONS</h2>

<p style="margin-left:11%; margin-top: 1em"><h3>The <i><b>lease</b></i> declaration</h3></p>

<p style="margin-left:11%; margin-top: 1em"><pre><b>lease {</b> lease-declaration [ ... lease-declaration ] }</pre></p>

<p style="margin-left:11%; margin-top: 1em">The DHCP client
may decide after some period of time (see <b>PROTOCOL
TIMING</b>) that it is not going to succeed in contacting a
server. At that time, it consults its own database of old
leases and tests each one that has not yet timed out by
pinging the listed router for that lease to see if that
lease could work. It is possible to define one or more
<i>fixed</i> leases in the client configuration file for
networks where there is no DHCP or BOOTP service, so that
the client can still automatically configure its address.
This is done with the <b>lease</b> statement.</p>

<p style="margin-left:11%; margin-top: 1em">NOTE: the lease
statement is also used in the dhclient.leases file in order
to record leases that have been received from DHCP servers.
Some of the syntax for leases as described below is only
needed in the dhclient.leases file. Such syntax is
documented here for completeness.</p>

<p style="margin-left:11%; margin-top: 1em">A lease
statement consists of the lease keyword, followed by a left
curly brace, followed by one or more lease declaration
statements, followed by a right curly brace. The following
lease declarations are possible:</p>

<p style="margin-left:11%; margin-top: 1em"><b>bootp;</b></p>

<p style="margin-left:11%; margin-top: 1em">The
<b>bootp</b> statement is used to indicate that the lease
was acquired using the BOOTP protocol rather than the DHCP
protocol. It is never necessary to specify this in the
client configuration file. The client uses this syntax in
its lease database file.</p>

<p style="margin-left:11%; margin-top: 1em"><b>interface
&quot;</b><i>string</i><b>&quot;;</b></p>

<p style="margin-left:11%; margin-top: 1em">The
<b>interface</b> lease statement is used to indicate the
interface on which the lease is valid. If set, this lease
will only be tried on a particular interface. When the
client receives a lease from a server, it always records the
interface number on which it received that lease. If
predefined leases are specified in the dhclient.conf file,
the interface should also be specified, although this is not
required.</p>

<p style="margin-left:11%; margin-top: 1em"><b>fixed-address</b>
<i>ip-address</i><b>;</b></p>

<p style="margin-left:11%; margin-top: 1em">The
<b>fixed-address</b> statement is used to set the ip address
of a particular lease. This is required for all lease
statements. The IP address must be specified as a dotted
quad (e.g., 12.34.56.78).</p>

<p style="margin-left:11%; margin-top: 1em"><b>filename
&quot;</b><i>string</i><b>&quot;;</b></p>

<p style="margin-left:11%; margin-top: 1em">The
<b>filename</b> statement specifies the name of the boot
filename to use. This is not used by the standard client
configuration script, but is included for completeness.</p>

<p style="margin-left:11%; margin-top: 1em"><b>server-name
&quot;</b><i>string</i><b>&quot;;</b></p>

<p style="margin-left:11%; margin-top: 1em">The
<b>server-name</b> statement specifies the name of the boot
server name to use. This is also not used by the standard
client configuration script.</p>

<p style="margin-left:11%; margin-top: 1em"><b>option</b>
<i>option-declaration</i><b>;</b></p>

<p style="margin-left:11%; margin-top: 1em">The
<b>option</b> statement is used to specify the value of an
option supplied by the server, or, in the case of predefined
leases declared in dhclient.conf, the value that the user
wishes the client configuration script to use if the
predefined lease is used.</p>

<p style="margin-left:11%; margin-top: 1em"><b>script
&quot;</b><i>script-name</i><b>&quot;;</b></p>

<p style="margin-left:11%; margin-top: 1em">The
<b>script</b> statement is used to specify the pathname of
the dhcp client configuration script. This script is used by
the dhcp client to set each interface&rsquo;s initial
configuration prior to requesting an address, to test the
address once it has been offered, and to set the
interface&rsquo;s final configuration once a lease has been
acquired. If no lease is acquired, the script is used to
test predefined leases, if any, and also called once if no
valid lease can be identified. For more information, see
<b>dhclient-script(8).</b></p>

<p style="margin-left:11%; margin-top: 1em"><b>vendor
option space &quot;</b><i>name</i><b>&quot;;</b></p>

<p style="margin-left:11%; margin-top: 1em">The <b>vendor
option space</b> statement is used to specify which option
space should be used for decoding the
vendor-encapsulate-options option if one is received. The
<i>dhcp-vendor-identifier</i> can be used to request a
specific class of vendor options from the server. See
<b>dhcp-options(5)</b> for details.</p>

<p style="margin-left:11%; margin-top: 1em"><b>medium
&quot;</b><i>media setup</i><b>&quot;;</b></p>

<p style="margin-left:11%; margin-top: 1em">The
<b>medium</b> statement can be used on systems where network
interfaces cannot automatically determine the type of
network to which they are connected. The media setup string
is a system-dependent parameter which is passed to the dhcp
client configuration script when initializing the interface.
On Unix and Unix-like systems, the argument is passed on the
ifconfig command line when configuring the interface.</p>

<p style="margin-left:11%; margin-top: 1em">The dhcp client
automatically declares this parameter if it uses a media
type (see the <b>media</b> statement) when configuring the
interface in order to obtain a lease. This statement should
be used in predefined leases only if the network interface
requires media type configuration.</p>

<p style="margin-left:11%; margin-top: 1em"><b>renew</b>
<i>date</i><b>;</b></p>

<p style="margin-left:11%; margin-top: 1em"><b>rebind</b>
<i>date</i><b>;</b></p>

<p style="margin-left:11%; margin-top: 1em"><b>expire</b>
<i>date</i><b>;</b></p>

<p style="margin-left:11%; margin-top: 1em">The
<b>renew</b> statement defines the time at which the dhcp
client should begin trying to contact its server to renew a
lease that it is using. The <b>rebind</b> statement defines
the time at which the dhcp client should begin to try to
contact <i>any</i> dhcp server in order to renew its lease.
The <b>expire</b> statement defines the time at which the
dhcp client must stop using a lease if it has not been able
to contact a server in order to renew it.</p>

<p style="margin-left:11%; margin-top: 1em">These
declarations are automatically set in leases acquired by the
DHCP client, but must also be configured in predefined
leases - a predefined lease whose expiry time has passed
will not be used by the DHCP client.</p>

<p style="margin-left:11%; margin-top: 1em">Dates are
specified in one of two ways. The software will output times
in these two formats depending on if the
<b>db-time-format</b> configuration parameter has been set
to <i>default</i> or <i>local</i>.</p>

<p style="margin-left:11%; margin-top: 1em">If it is set to
<i>default</i>, then <i>date</i> values appear as
follows:</p>

<p style="margin-left:11%; margin-top: 1em"><i>&lt;weekday&gt;
&lt;year&gt;</i><b>/</b><i>&lt;month&gt;</i><b>/</b><i>&lt;day&gt;
&lt;hour&gt;</i><b>:</b><i>&lt;minute&gt;</i><b>:</b><i>&lt;second&gt;</i></p>

<p style="margin-left:11%; margin-top: 1em">The weekday is
present to make it easy for a human to tell when a lease
expires - it&rsquo;s specified as a number from zero to six,
with zero being Sunday. When declaring a predefined lease,
it can always be specified as zero. 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
between 0 and 23, the minute a number between 0 and 59, and
the second also a number between 0 and 59.</p>

<p style="margin-left:11%; margin-top: 1em">If the
<b>db-time-format</b> configuration was set to <i>local</i>,
then the <i>date</i> values appear as follows:</p>

<p style="margin-left:11%; margin-top: 1em"><b>epoch</b>
<i>&lt;seconds-since-epoch&gt;</i><b>; #</b>
<i>&lt;day-name&gt; &lt;month-name&gt; &lt;day-number&gt;
&lt;hours&gt;</i><b>:</b><i>&lt;minutes&gt;</i><b>:</b><i>&lt;seconds&gt;
&lt;year&gt;</i></p>

<p style="margin-left:11%; margin-top: 1em">The
<i>seconds-since-epoch</i> is as according to the
system&rsquo;s local clock (often referred to as &quot;unix
time&quot;). The <b>#</b> symbol supplies a comment that
describes what actual time this is as according to the
system&rsquo;s configured timezone, at the time the value
was written. It is provided only for human inspection, the
epoch time is the only recommended value for machine
inspection.</p>

<p style="margin-left:11%; margin-top: 1em">Note that when
defining a static lease, one may use either time format one
wishes, and need not include the comment or values after
it.</p>

<p style="margin-left:11%; margin-top: 1em">If the time is
infinite in duration, then the <i>date</i> is <b>never</b>
instead of an actual date.</p>

<a name="ALIAS DECLARATIONS"></a>
<h2>ALIAS DECLARATIONS</h2>

<p style="margin-left:11%; margin-top: 1em"><pre><b>alias {</b> declarations ... <b>}</b></pre></p>

<p style="margin-left:11%; margin-top: 1em">Some DHCP
clients running TCP/IP roaming protocols may require that in
addition to the lease they may acquire via DHCP, their
interface also be configured with a predefined IP alias so
that they can have a permanent IP address even while
roaming. The Internet Systems Consortium DHCP client
doesn&rsquo;t support roaming with fixed addresses directly,
but in order to facilitate such experimentation, the dhcp
client can be set up to configure an IP alias using the
<b>alias</b> declaration.</p>

<p style="margin-left:11%; margin-top: 1em">The alias
declaration resembles a lease declaration, except that
options other than the subnet-mask option are ignored by the
standard client configuration script, and expiry times are
ignored. A typical alias declaration includes an interface
declaration, a fixed-address declaration for the IP alias
address, and a subnet-mask option declaration. A medium
statement should never be included in an alias
declaration.</p>

<a name="OTHER DECLARATIONS"></a>
<h2>OTHER DECLARATIONS</h2>

<p style="margin-left:11%; margin-top: 1em"><pre><b>db-time-format</b> [ default | local ] ;</pre></p>

<p style="margin-left:11%; margin-top: 1em">The
<b>db-time-format</b> option determines which of two output
methods are used for printing times in leases files. The
<i>default</i> format provides day-and-time in UTC, whereas
<i>local</i> uses a seconds-since-epoch to store the time
value, and helpfully places a local timezone time in a
comment on the same line. The formats are described in
detail in this manpage, within the LEASE DECLARATIONS
section.</p>

<p style="margin-left:11%; margin-top: 1em"><h3>The <i>lease-id-format</i> parameter</h3></p>

<p style="margin-left:14%; margin-top: 1em"><pre><b>lease-id-format</b> format ;</pre></p>

<p style="margin-left:14%; margin-top: 1em">The
<i>format</i> parameter must be either <b>octal</b> or
<b>hex</b>. This parameter governs the format used to write
certain values to lease files. With the default format,
octal, values are written as quoted strings in which
non-printable characters are represented as octal escapes -
a backslash character followed by three octal digits. When
the hex format is specified, values are written as an
unquoted series of hexadecimal digit pairs, separated by
colons.</p>

<p style="margin-left:14%; margin-top: 1em">Currently, the
values written out based on lease-id-format are the
default-duid and the IAID value (DHCPv6 only). The client
automatically reads the values in either format. Note that
when the format is octal, rather than as an octal string,
IAID is output as hex if it contains no printable characters
or as a string if contains only printable characters. This
is done to maintain backward compatibility.</p>

<p style="margin-left:14%; margin-top: 1em"><pre><b>reject</b> cidr-ip-address [, ... cidr-ip-address ] ;</pre></p>

<p style="margin-left:14%; margin-top: 1em">The
<b>reject</b> statement causes the DHCP client to reject
offers from servers whose server identifier matches any of
the specified hosts or subnets. This can be used to avoid
being configured by rogue or misconfigured dhcp servers,
although it should be a last resort - better to track down
the bad DHCP server and fix it.</p>

<p style="margin-left:14%; margin-top: 1em">The
<i>cidr-ip-address</i> configuration type is of the form
<i>ip-address</i>[<b>/</b><i>prefixlen</i>], where
<i>ip-address</i> is a dotted quad IP address, and prefixlen
is the CIDR prefix length of the subnet, counting the number
of significant bits in the netmask starting from the
leftmost end. Example configuration syntax:</p>

<p style="margin-left:14%; margin-top: 1em"><pre>reject 192.168.0.0/16, 10.0.0.5;</pre></p>

<p style="margin-left:14%; margin-top: 1em">The above
example would cause offers from any server identifier in the
entire RFC 1918 &quot;Class C&quot; network 192.168.0.0/16,
or the specific single address 10.0.0.5, to be rejected.</p>

<p style="margin-left:14%; margin-top: 1em"><pre><b>interface</b> &quot;name&quot; { declarations ... }</pre></p>

<p style="margin-left:14%; margin-top: 1em">A client with
more than one network interface may require different
behaviour depending on which interface is being configured.
All timing parameters and declarations other than lease and
alias declarations can be enclosed in an interface
declaration, and those parameters will then be used only for
the interface that matches the specified name. Interfaces
for which there is no interface declaration will use the
parameters declared outside of any interface declaration, or
the default settings.</p>

<p style="margin-left:14%; margin-top: 1em"><b>Note
well:</b> ISC dhclient only maintains one list of
interfaces, which is either determined at startup from
command line arguments, or otherwise is autodetected. If you
supplied the list of interfaces on the command line, this
configuration clause will add the named interface to the
list in such a way that will cause it to be configured by
DHCP. Which may not be the result you had intended. This is
an undesirable side effect that will be addressed in a
future release.</p>

<p style="margin-left:14%; margin-top: 1em"><pre><b>pseudo</b> &quot;name&quot; &quot;real-name&quot; { declarations ... }</pre></p>

<p style="margin-left:14%; margin-top: 1em">Under some
circumstances it can be useful to declare a pseudo-interface
and have the DHCP client acquire a configuration for that
interface. Each interface that the DHCP client is supporting
normally has a DHCP client state machine running on it to
acquire and maintain its lease. A pseudo-interface is just
another state machine running on the interface named
<i>real-name</i>, with its own lease and its own state. If
you use this feature, you must provide a client identifier
for both the pseudo-interface and the actual interface, and
the two identifiers must be different. You must also provide
a separate client script for the pseudo-interface to do what
you want with the IP address. For example:</p>

<pre>interface &quot;ep0&quot; {
     send dhcp-client-identifier &quot;my-client-ep0&quot;;
}
pseudo &quot;secondary&quot; &quot;ep0&quot; {
     send dhcp-client-identifier &quot;my-client-ep0-secondary&quot;;
     script &quot;/etc/dhclient-secondary&quot;;
}
</pre>

<p style="margin-left:14%; margin-top: 1em">The client
script for the pseudo-interface should not configure the
interface up or down - essentially, all it needs to handle
are the states where a lease has been acquired or renewed,
and the states where a lease has expired. See
<b>dhclient-script(8)</b> for more information.</p>

<p style="margin-left:14%; margin-top: 1em"><pre><b>media</b> &quot;media setup&quot; [ , &quot;media setup&quot;, ... ];</pre></p>

<p style="margin-left:14%; margin-top: 1em">The
<b>media</b> statement defines one or more media
configuration parameters which may be tried while attempting
to acquire an IP address. The dhcp client will cycle through
each media setup string on the list, configuring the
interface using that setup and attempting to boot, and then
trying the next one. This can be used for network interfaces
which aren&rsquo;t capable of sensing the media type unaided
- whichever media type succeeds in getting a request to the
server and hearing the reply is probably right (no
guarantees).</p>

<p style="margin-left:14%; margin-top: 1em">The media setup
is only used for the initial phase of address acquisition
(the DHCPDISCOVER and DHCPOFFER packets). Once an address
has been acquired, the dhcp client will record it in its
lease database and will record the media type used to
acquire the address. Whenever the client tries to renew the
lease, it will use that same media type. The lease must
expire before the client will go back to cycling through
media types.</p>

<p style="margin-left:14%; margin-top: 1em"><pre><b>hardware</b> link-type mac-address;</pre></p>

<p style="margin-left:14%; margin-top: 1em">The
<b>hardware</b> statement defines the hardware MAC address
to use for this interface, for DHCP servers or relays to
direct their replies. dhclient will determine the
interface&rsquo;s MAC address automatically, so use of this
parameter is not recommended. The <i>link-type</i>
corresponds to the interface&rsquo;s link layer type
(example: &acute;ethernet&acute;), while the
<i>mac-address</i> is a string of colon-separated
hexadecimal values for octets.</p>

<p style="margin-left:14%; margin-top: 1em"><pre><b>anycast-mac</b> link-type mac-address;</pre></p>

<p style="margin-left:14%; margin-top: 1em">The
<b>anycast-mac</b> statement over-rides the all-ones
broadcast MAC address dhclient will use when it is
transmitting packets to the all-ones limited broadcast IPv4
address. This configuration parameter is useful to reduce
the number of broadcast packets transmitted by DHCP clients,
but is only useful if you know the DHCP service(s) anycast
MAC address prior to configuring your client. The
<i>link-type</i> and <i>mac-address</i> parameters are
configured in a similar manner to the <b>hardware</b>
statement.</p>

<a name="SAMPLE"></a>
<h2>SAMPLE</h2>

<p style="margin-left:11%; margin-top: 1em">The following
configuration file was used on a laptop running NetBSD 1.3,
though the domains have been modified. The laptop has an IP
alias of 192.5.5.213, and has one interface, ep0 (a 3com
3C589C). Booting intervals have been shortened somewhat from
the default, because the client is known to spend most of
its time on networks with little DHCP activity. The laptop
does roam to multiple networks.</p>

<p style="margin-left:11%; margin-top: 1em"><pre>timeout 60;
retry 60;
reboot 10;
select-timeout 5;
initial-interval 2;
reject 192.33.137.209;<p>

interface &quot;ep0&quot; {<br>
     <p style="margin-left:11%; margin-top: 1em">send host-name &quot;andare.example.com&quot;;<br>
     hardware ethernet 00:a0:24:ab:fb:9c;<br>
     send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;<br>
     send dhcp-lease-time 3600;<br>
     supersede domain-search &quot;example.com&quot;, &quot;rc.isc.org&quot;, &quot;home.isc.org&quot;;<br>
     prepend domain-name-servers 127.0.0.1;<br>
     request subnet-mask, broadcast-address, time-offset, routers,<br>     domain-name, domain-name-servers, host-name;<br>
     require subnet-mask, domain-name-servers;<br>
script &quot;CLIENTBINDIR/dhclient-script&quot;; <br>
media &quot;media 10baseT/UTP&quot;, &quot;media 10base2/BNC&quot;;</p>
}

alias { <br>  interface &quot;ep0&quot;; <br>  fixed-address 192.5.5.213; <br>  option subnet-mask 255.255.255.255; <br>
} </pre>
This is a very complicated dhclient.conf file - in general, yours should be much simpler. In many cases, it&rsquo;s sufficient to just create an empty dhclient.conf file - the
defaults are usually fine.</p>

<a name="SEE ALSO"></a>
<h2>SEE ALSO</h2>

<p style="margin-left:11%; margin-top: 1em">dhcp-options(5),
dhcp-eval(5), dhclient.leases(5), dhcpd(8), dhcpd.conf(5),
RFC2132, RFC2131.</p>

<a name="AUTHOR"></a>
<h2>AUTHOR</h2>

<p style="margin-left:11%; margin-top: 1em"><b>dhclient(8)</b>

Information about Internet Systems Consortium can be found at <b>https://www.isc.org.</b></p>
</body>
