dhclient
Dynamic Host Configuration Protocol Client
see also :
dhclient-script
Synopsis
dhclient
[ -4 | -6 ] [ -S ] [ -N [
-N... ] ] [ -T [ -T... ] ] [ -P
[ -P... ] ] [ -D LL|LLT ] [ -p
port ] [ -d ] [ -e VAR=value ] [
-q ] [ -1 ] [ -r | -x ] [
-lf lease-file ] [ -pf pid-file
] [ --no-pid ] [ -cf config-file ] [
-sf script-file ] [ -s
server-addr ] [ -g relay ] [ -n
] [ -nw ] [ -w ] [ -v ] [
--version ] [ if0 [ ...ifN ] ]
add an example, a script, a trick and tips
examples
source
dhclient -r &&
dhclient -v
description
The Internet
Systems Consortium DHCP Client, dhclient, provides a
means for configuring one or more network interfaces using
the Dynamic Host Configuration Protocol, BOOTP protocol, or
if these protocols fail, by statically assigning an
address.
options
-4
Use the DHCPv4 protocol to
obtain an IPv4 address and configuration parameters. This is
the default and cannot be combined with -6.
-6
Use the DHCPv6 protocol to obtain whatever IPv6
addresses are available along with configuration parameters.
It cannot be combined with -4. The -S
-T -P -N and -D arguments provide more
control over aspects of the DHCPv6 processing. Note: it is
not recommended to mix queries of different types together
or even to share the lease file between them.
-1
Try to get a lease once. On failure exit with code 2. In
DHCPv6 this sets the maximum duration of the initial
exchange to timeout (from dhclient.conf(5)
with a default of sixty seconds).
-d
Force dhclient to run as a foreground process.
Normally the DHCP client will run in the foreground until is
has configured an interface at which time it will revert to
running in the background. This option is useful when
running the client under a debugger, or when running it out
of inittab on System V systems. This implies -v.
-nw
Become a daemon immediately (nowait) rather than waiting
until an an IP address has been acquired.
-q
Be quiet at startup, this is the default.
-v
Enable verbose log messages.
-w
Continue running even if no broadcast interfaces were
found. Normally DHCP client will exit if it isn’t able
to identify any network interfaces to configure. On laptop
computers and other computers with hot-swappable I/O buses,
it is possible that a broadcast interface may be added after
system startup. This flag can be used to cause the client
not to exit when it doesn’t find any such interfaces.
The omshell(1) program can then be used to notify the
client when a network interface has been added or removed,
so that the client can attempt to configure an IP address on
that interface.
-n
Do not configure any interfaces. This is most likely to
be useful in combination with the -w flag.
-e VAR=val
Define additional environment
variables for the environment where
dhclient-script(8) executes. You may specify multiple
-e options on the command line.
-r
Release the current lease and stop the running DHCP
client as previously recorded in the PID file. When shutdown
via this method dhclient-script(8) will be executed
with the specific reason for calling the script set. The
client normally doesn’t release the current lease as
this is not required by the DHCP protocol but some cable
ISPs require their clients to notify the server if they wish
to release an assigned IP address.
-x
Stop the running DHCP client without releasing the
current lease. Kills existing dhclient process as
previously recorded in the PID file. When shutdown via this
method dhclient-script(8) will be executed with the
specific reason for calling the script set.
-p port
The UDP port number on which
the DHCP client should listen and transmit. If unspecified,
dhclient uses the default port of 68. This is mostly
useful for debugging purposes. If a different port is
specified on which the client should listen and transmit,
the client will also use a different destination port - one
less than the specified port.
-s server-addr
Specify the server IP address
or fully qualified domain name to use as a destination for
DHCP protocol messages before dhclient has acquired
an IP address. Normally, dhclient transmits these
messages to 255.255.255.255 (the IP limited broadcast
address). Overriding this is mostly useful for debugging
purposes. This feature is not supported in DHCPv6
(-6) mode.
-g relay
Set the giaddr field of all
packets to the relay IP address simulating a relay
agent. This is for testing pruposes only and should not be
expected to work in any consistent or useful way.
--version
Print version number and
exit.
Options
available for DHCPv6 mode:
-S
Use Information-request to get only stateless
configuration parameters (i.e., without address). This
implies -6. It also doesn’t rewrite the
lease database.
-T
Ask for IPv6 temporary addresses, one set per
-T flag. This implies -6 and also
disables the normal address query. See -N to
restore it.
-P
Enable IPv6 prefix delegation. This implies
-6 and also disables the normal address query.
See -N to restore it. Note only one requested
interface is allowed.
-D LL or LLT
Override the default when
selecting the type of DUID to use. By default, DHCPv6
dhclient creates an identifier based on the
link-layer address (DUID-LL) if it is running in stateless
mode (with -S, not requesting an address), or
it creates an identifier based on the link-layer address
plus a timestamp (DUID-LLT) if it is running in stateful
mode (without -S, requesting an address).
-D overrides this default, with a value of
either LL or LLT.
-N
Restore normal address query for IPv6. This implies
-6. It is used to restore normal operation after
using -T or -P.
Modifying
default file locations: The following options can be
used to modify the locations a client uses for it’s
files. They can be particularly useful if, for example,
DBDIR or RUNDIR have not been mounted when the
DHCP client is started.
-cf config-file
Path to the client
configuration file. If unspecified, the default
ETCDIR/dhclient.conf is used. See
dhclient.conf(5) for a description of this file.
-lf lease-file
Path to the lease database
file. If unspecified, the default
DBDIR/dhclient.leases is used. See
dhclient.leases(5) for a descriptionof this file.
-pf pid-file
Path to the process ID file. If
unspecified, the default RUNDIR/dhclient.pid is
used.
--no-pid
Option to disable writing pid
files. By default the program will write a pid file. If the
program is invoked with this option it will not attempt to
kill any existing client processes even if invoked with
-r or -x.
-sf script-file
Path to the network
configuration script invoked by dhclient when it gets
a lease. If unspecified, the default
CLIENTBINDIR/dhclient-script is used. See
dhclient-script(8) for a description of this
file.
command line
The names of the network interfaces that dhclient should
attempt to configure may be specified on the command line. If no
interface names are specified on the command line dhclient
will normally identify all network interfaces, eliminating
non-broadcast interfaces if possible, and attempt to configure
each interface.
It is also possible to specify interfaces by name in the
dhclient.conf file. If interfaces are specified in this way, then
the client will only configure interfaces that are either
specified in the configuration file or on the command line, and
will ignore all other interfaces.
The client normally prints no output during its startup sequence.
It can be made to emit verbose messages displaying the startup
sequence events until it has acquired an address by supplying the
-v command line argument. In either case, the client logs
messages using the syslog(3) facility.
configuration
The syntax of the dhclient.conf(5) file is discussed
separately.
environment variables
The following environment variables may be defined to override
the builtin defaults for file locations. Note that use of the
related command-line options will ignore the corresponding
environment variable settings.
PATH_DHCLIENT_CONF
The dhclient.conf configuration file.
PATH_DHCLIENT_DB
The dhclient.leases database.
PATH_DHCLIENT_PID
The dhclient PID file.
PATH_DHCLIENT_SCRIPT
The dhclient-script file.
files
CLIENTBINDIR/dhclient-script, ETCDIR/dhclient.conf,
DBDIR/dhclient.leases, RUNDIR/dhclient.pid,
DBDIR/dhclient.leases~.
omapi
The DHCP client provides some ability to control it while it is
running, without stopping it. This capability is provided using
OMAPI, an API for manipulating remote objects. OMAPI clients
connect to the client using TCP/IP, authenticate, and can then
examine the client’s current status and make changes to it.
Rather than implementing the underlying OMAPI protocol directly,
user programs should use the dhcpctl API or OMAPI itself. Dhcpctl
is a wrapper that handles some of the housekeeping chores that
OMAPI does not do automatically. Dhcpctl and OMAPI are documented
in dhcpctl(3) and omapi(3). Most things you’d want
to do with the client can be done directly using the
omshell(1) command, rather than having to write a special
program.
operation
The DHCP protocol allows a host to contact a central server which
maintains a list of IP addresses which may be assigned on one or
more subnets. A DHCP client may request an address from this
pool, and then use it on a temporary basis for communication on
network. The DHCP protocol also provides a mechanism whereby a
client can learn important details about the network to which it
is attached, such as the location of a default router, the
location of a name server, and so on.
There are two versions of the DHCP protocol DHCPv4 and DHCPv6. At
startup the client may be started for one or the other via the
-4 or -6 options.
On startup, dhclient reads the dhclient.conf for
configuration instructions. It then gets a list of all the
network interfaces that are configured in the current system. For
each interface, it attempts to configure the interface using the
DHCP protocol.
In order to keep track of leases across system reboots and server
restarts, dhclient keeps a list of leases it has been
assigned in the dhclient.leases file. On startup, after reading
the dhclient.conf file, dhclient reads the dhclient.leases
file to refresh its memory about what leases it has been
assigned.
When a new lease is acquired, it is appended to the end of the
dhclient.leases file. In order to prevent the file from becoming
arbitrarily large, from time to time dhclient creates a
new dhclient.leases file from its in-core lease database. The old
version of the dhclient.leases file is retained under the name
dhclient.leases~ until the next time dhclient
rewrites the database.
Old leases are kept around in case the DHCP server is unavailable
when dhclient is first invoked (generally during the
initial system boot process). In that event, old leases from the
dhclient.leases file which have not yet expired are tested, and
if they are determined to be valid, they are used until either
they expire or the DHCP server becomes available.
A mobile host which may sometimes need to access a network on
which no DHCP server exists may be preloaded with a lease for a
fixed address on that network. When all attempts to contact a
DHCP server have failed, dhclient will try to validate the
static lease, and if it succeeds, will use that lease until it is
restarted.
A mobile host may also travel to some networks on which DHCP is
not available but BOOTP is. In that case, it may be advantageous
to arrange with the network administrator for an entry on the
BOOTP database, so that the host can boot quickly on that network
rather than cycling through the list of old leases.
the control object
The control object allows you to shut the client down, releasing
all leases that it holds and deleting any DNS records it may have
added. It also allows you to pause the client - this unconfigures
any interfaces the client is using. You can then restart it,
which causes it to reconfigure those interfaces. You would
normally pause the client prior to going into hibernation or
sleep on a laptop computer. You would then resume it after the
power comes back. This allows PC cards to be shut down while the
computer is hibernating or sleeping, and then reinitialized to
their previous state once the computer comes out of hibernation
or sleep.
The control object has one attribute - the state attribute. To
shut the client down, set its state attribute to 2. It will
automatically do a DHCPRELEASE. To pause it, set its state
attribute to 3. To resume it, set its state attribute to 4.
see also
dhcpd,
dhcrelay, dhclient-script , dhclient.conf,
dhclient.leases, dhcp-eval.
author
dhclient(8)
has been written for Internet Systems Consortium by Ted
Lemon in cooperation with Vixie Enterprises. To learn more
about Internet Systems Consortium, see
https://www.isc.org To learn more about Vixie
Enterprises, see http://www.vix.com.
This client was
substantially modified and enhanced by Elliot Poger for use
on Linux while he was working on the MosquitoNet project at
Stanford.
The current
version owes much to Elliot’s Linux enhancements, but
was substantially reorganized and partially rewritten by Ted
Lemon so as to use the same networking framework that the
Internet Systems Consortium DHCP server uses. Much
system-specific configuration code was moved into a shell
script so that as support for more operating systems is
added, it will not be necessary to port and maintain
system-specific configuration code to these operating
systems - instead, the shell script can invoke the native
tools to accomplish the same purpose.