Provided by: isc-dhcp-client_4.1.ESV-R4-0ubuntu5_amd64 bug


       dhclient - Dynamic Host Configuration Protocol Client


       dhclient  [  -4  |  -6 ] [ -S ] [ -N [ -N...  ] ] [ -T [ -T...  ] ] [ -P [ -P...  ] ] [ -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 ] ]


       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.


       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 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

       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

       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 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.


       -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 and -N
              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

       -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  (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.

              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

       -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/ is

              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.


       The syntax of the dhclient.conf(5) file is discussed separately.


       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


       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.


       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.

              The dhclient.conf configuration file.

              The dhclient.leases database.

              The dhclient PID file.

              The dhclient-script file.


       CLIENTBINDIR/dhclient-script,         ETCDIR/dhclient.conf,         DBDIR/dhclient.leases,
       RUNDIR/, DBDIR/dhclient.leases~.


       dhcpd(8), dhcrelay(8),  dhclient-script(8),  dhclient.conf(5),  dhclient.leases(5),  dhcp-


       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 To learn more about Vixie Enterprises, see

       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.