8:dhcpcd
From Linux Man Pages
dhcpcd - DHCP client daemon
Contents |
SYNOPSIS
dhcpcd [-dknrBCDHKNRSTY] [-z <reboot timeout>] [-t <timeout>] [-c <ExecFilePath>] [-h <hostname>]
[-i <vendorClassID>] [-I <clientID>] [-l <leasetime>] [-s [ipaddr]] [-G [gateway]] [-w <windowsize>]
[-L <ConfigDir>] [interface]
DESCRIPTION
dhcpcd is an implementation of the DHCP client specified in RFC2131 (when -r option is not specified) and RFC1541
(when -r option is specified).
It gets the host information (IP address, netmask, broadcast address, etc.) from a DHCP server and configures the
network interface of the machine on which it is running. It also tries to renew the lease time according to
RFC2131 or RFC1541 (obsolete).
OPTIONS
-d With this flag dhcpcd will syslog(LOG_DEBUG,...) messages for about every step it does. It's recommended
to use this option since it doesn't really produce too much output but will greatly help in resolving a
problems if any. dhcpcd uses LOCAL0 syslog facility for its output. To catch dhcpcd debugging output add
the following line to /etc/syslog.conf file:
local0.* /var/log/dhcpcd.log
and then refresh syslogd daemon:
kill -1 `cat /var/run/syslogd.pid`
-k Sends SIGHUP signal to the dhcpcd process that is currently running. If dhcpcd receives SIGHUP it will
send DCHP_RELEASE message to the server and destroy dhcpcd cache. In a case dhcpcd receives SIGTERM which
is normally used by shutdown(8) when rebooting the system dhcpcd will not send DHCP_RELEASE and will not
destroy cache. When system boots dhcpcd will use cache to request the same IP address from DHCP server
which was assigned before the system went down.
-n Sends SIGALRM signal to the dhcpcd process that is currently running which forces dhcpcd to try to renew
the lease. If dhcpcd is not running, the flag is ignored and dhcpcd follows the normal startup procedure.
-r Makes dhcpcd RFC1541 (obsolete) compliant. dhcpcd is RFC2131 compliant unless this option is specified.
-B Requests broadcast response from DHCP server.
-C Forces dhcpcd to calculate checksum on received packets.
-D Forces dhcpcd to set domainname of the host to the domainname option supplied by DHCP server.
-H Forces dhcpcd to set hostname of the host to the hostname option supplied by DHCP server. By default
dhcpcd will NOT set hostname of the host to the hostname option received from DHCP server.
-K Keep the searchlist from an existing resolv.conf when replacing the file. dhcpcd will add it to the
domainname received from the DHCP server.
-L <ConfigDir>
dhcpcd will use <ConfigDir> directory instead of default /var/lib/dhcpcd/ to store configuration informa-
tion.
-S Forces dhcpcd to send second DHCP_DISCOVER message even after receiving DHCP_OFFER on the first one. Some
DHCP servers expect the client to send second DHCP_DISCOVER message before replying on DHCP_REQUEST.
-R Prevents dhcpcd from replacing existing /etc/resolv.conf file.
-Y Prevents dhcpcd from replacing existing /etc/yp.conf file. Domainname is not updated unless -D is speci-
fied.
-N Prevents dhcpcd from replacing existing /etc/ntp.conf file.
-T Test case, when dhcpcd goes through the DHCP negotiation sequence but doesn't actually configure the
interface. It does however write the <ConfigDir>/dhcpcd-<interface>.info and <ConfigDir>/dhcpcd-<inter-
face>.cache files and it does attempt to execute /sbin/dhcpd.exe script. The pathname of dhcpcd.exe exe-
cutable script can be changed with -c <ExecFilePath> option. -T option is used primarily for testing
DHCP servers, for obtaining multiple IP addresses for the same dummy interface, and/or configuring virtual
interfaces in conjunction with -L <ConfigDir> and -I <ClientID> options.
-z <reboottimeout>
Specifies (in seconds) for how long dhcpcd will stay in the INIT-REBOOT state (requesting the last IP
address it had again). The default is 5 seconds, and after this time, dhcpcd will go into the INIT state
(broadcasting DHCPDISCOVERs). Note that dhcpcd also makes this transition when a DHCPNAK is received. The
timeout can prevent dhcpcd from being stuck in this state, when there is no server which is configured to
be authoritative to reply with DHCPNAK, and a long -t timeout is used (to keep dhcpcd running. (This time-
out is only relevant when there is already a cache file from a previous run for the interface.)
-t <timeout>
Specifies (in seconds ) for how long dhcpcd will try to get an IP address. The default is 60 seconds.
dhcpcd will not fork into background until it gets a valid IP address in which case dhcpcd will return 0
to the parent process. In a case dhcpcd times out before receiving a valid IP address from DHCP server
dhcpcd will return exit code 1 to the parent process.
-c <ExecFilePath>
dhcpcd will try to execute <ExecFilePath> script instead of default /sbin/dhcpd.exe script every time it
configures or brings down the interface. See the description of dhcpcd.exe script in FILES section below.
-h <hostname>
specifies a string used for the hostname option field when dhcpcd sends DHCP messages. Some DHCP servers,
notably those used by @Home Networks, require the hostname option field containing a specific string in
the DHCP messages from clients.
-i <vendorClassID>
Specifies the vendor class identifier string. dhcpcd uses the default vendor class identifier string
(system name, system release, and machine type) if it is not specified.
-I <ClientID>
Specifies the client identifier string. dhcpcd uses the default client identifier (MAC address of the
network interface) if it is not specified.
-l <leasetime>
Specifies (in seconds) the recommended lease time to the server. (Note that the server can override this
value if it sees fit). This value is used in the DHCP_DISCOVER message. The default is infinite
(0xffffffff).
-s [ipaddr]
Sends DHCP_INFORM message to DHCP server using ipaddr. The optional ipaddr parameter must be in the form
xxx.xxx.xxx.xxx. If no ipaddr parameter is given on the command line dhcpcd will use the IP address cur-
rently assigned to the interface. If there is no IP address currently assigned to the interface dhcpcd
will use previously obtained IP address stored in <ConfigDir>/dhcpcd-<interface>.cache file.
-G [gateway]
Prevents dhcpcd from installing default routes provided by DHCP server. If optional gateway ip address
parameter is supplied then use it for default route.
-w <windowsize>
Specifies the window size for the gateway route. Default = 32768.
interface
Specifies the network interface name (eth0, eth1, etc.). dhcpcd uses the network interface eth0 unless an
explicit name is specified.
FILES
/var/lib/dhcpcd/
Default <ConfigDir> directory used for storing files created by dhcpcd. See option -L <ConfigDir> above.
<ConfigDir>/dhcpcd-<interface>.info
file in which dhcpcd saves the host information. The word <interface> is actually replaced with the net-
work interface name like eth0 to which dhcpcd is attached.
/sbin/dhcpd.exe
script file, which dhcpcd will try to execute whenever it configures or brings down the interface. The
path to this executable script can be changed with -c <ExecFilePath> option. Dhcpcd passes 3 parameters
to dhcpcd.exe script:
dhcpcd.exe <HostInfoFilePath> <up|down|new> [-d]
The first parameter <HostInfoFilePath> is path to dhcpcd-<interface>.info file. The word <interface> is
actually replaced with interface name dhcpcd is attached to, e.g. "eth0". The second parameter values
<up|down|new> mean the interface has been brought up with the same IP address as before ("up"), or with
the new IP address ("new"), or the interface has been brought down ("down"). Parameter -d is passed in a
case dhcpcd has been started with -d debug flag.
<ConfigDir>/dhcpcd-<interface>.cache
Cache file containing the previously assigned IP address and some other things. The word <interface> is
actually replaced with the network interface name like eth0 to which dhcpcd is attached.
/etc/resolv.conf
file created by dhcpcd when the client receives DNS and domain name options. The old /etc/resolv.conf
file is renamed to /etc/resolv.conf.sv and will be restored back when dhcpcd exits for any reason.
/etc/yp.conf
file created by dhcpcd when the client receives NIS options. The old /etc/yp.conf file is renamed to
/etc/yp.conf.sv and is restored back when dhcpcd exits for any reason.
/etc/ntp.conf
file created by dhcpcd when the client receives NTP options. The old /etc/ntp.conf file is renamed to
/etc/ntp.conf.sv and is restored back when dhcpcd exits for any reason.
/var/run/dhcpcd-<interface>.pid
file containing the process id of dhcpcd. The word <interface> is actually replaced with the network
interface name like eth0 to which dhcpcd is attached.
RELATED
Dynamic Host Configuration Protocol, RFC2131 and RFC1541 (obsolete) DHCP Options and BOOTP Vendor Extensions,
RFC2132
BUGS
dhcpcd uses time(3) to calculate the lease expiration time. If the system time is changed while the client is running, the lease expiration time may not be predictable.