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.

Description

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 attached network, such as the location of a default router, the location of a name server, etc.

  • Description
  • Syntax
  • Omapi
  • The control object
  • Examples
  • Related commands
  • Linux commands help

On startup, dhclient reads the file 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.

To keep track of leases across system reboots and server restarts, dhclient keeps a list of leases it was 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 was assigned.

When a new lease is acquired, it is appended to the end of the dhclient.leases file. 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, uses 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.

Syntax

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 ] [ -cf config-file ] [ -sf script-file ] [ -s server ] [ -g relay ] [ -n ] [ -nc ] [ -nw ] [ -w ] [ -B ] [ -I dhcp-client-identifier ] [ -H host-name ] [ -F fqdn.fqdn ] [ -V vendor-class-identifier ] [ -R request-option-list ] [ -timeout timeout ] [ -v ] [ –version ] [ if0 [ …ifN ] ]

Options

If the client is killed by a signal (for example at shutdown or reboot), it will not execute the dhclient-script at exit. However, if you shut the client down gracefully with -r or -x it will execute dhclient-script at shutdown with the specific reason for calling the script set in the environment table.

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 housekeeping chores that OMAPI does not do automatically. Most things you’d want to do with the client can be done directly using the omshell command, rather than having to write a special program.

The control object

The control object lets you shut the client down, releasing all leases that it holds and deleting any DNS records it may have added. It also lets you pause the client - this unconfigures any interfaces the client uses. You can then restart it, which causes it to reconfigure those interfaces. You would normally pause the client before 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 automatically does a DHCPRELEASE. To pause it, set its state attribute to 3. To resume it, set its state attribute to 4.

Examples

dhclient eth0

Renews the dynamically-assigned IP address of a primary Ethernet device.

ifconfig — View or modify the configuration of network interfaces.