Dhcpcd
Dynamic Host Configuration Protocol Client Daemon (net-misc/dhcpcd) is a popular DHCP client for Gentoo Linux. It is capable of handling both IPv4 and IPv6 configurations.
Installation
USE flags
USE flags for net-misc/dhcpcd A fully featured, yet light weight RFC2131 compliant DHCP client
+embedded
|
Embed the definitions of dhcp options in the dhcpcd executable |
+udev
|
Enable virtual/udev integration (device discovery, power and storage device support, etc) |
debug
|
Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces |
ipv6
|
Add support for IP version 6 |
privsep
|
Enable support for privilege separation |
Emerge
Use the following command to install dhcpcd:
root #
emerge --ask net-misc/dhcpcd
Configuration
Files
All dhcpcd configuration can be set in the /etc/dhcpcd.conf file, but for most installations dhcpcd will work out of the box presuming most computers nowadays are behind a router or access point running a DHCP server. Though man 5 dhcpcd.conf[1] will be helpful in case advanced configuration is required.
Static IP addresses
In case the network interface card should be configured with a static IP address, add their data to /etc/dhcpcd.conf.[1] The following is an example of manually adding a static address, routes, and DNS by editing DHCPCD's configuration file using a text editor of choice:
static ip_address=192.168.0.10/24
static routers=192.168.0.1
static domain_name_servers=192.168.0.1
IPv6 Prefix Request
# Disable router solicitations for all interfaces, enable only for selected ones
noipv6rs
# Interface configuration for the ''wan'' vlan on the ''eth0'' interface
interface eth0.wan
# Enable router solicitation for this interface
ipv6rs
# Request a normal address usins ''iaid'' 1 for interface ''eth0.wan''
ia_na 1
# Request a prefix using ''iaid'' 2 and assign it to the ''eth0.lan'' interface using ''sla_id'' 0
ia_pd 2 eth0.lan/0
Usage
Invocation
root #
dhcpcd --help
usage: dhcpcd [-146ABbDdEGgHJKLMNPpqTV] [-C, --nohook hook] [-c, --script script] [-e, --env value] [-F, --fqdn FQDN] [-f, --config file] [-h, --hostname hostname] [-I, --clientid clientid] [-i, --vendorclassid vendorclassid] [-j, --logfile logfile] [-l, --leasetime seconds] [-m, --metric metric] [-O, --nooption option] [-o, --option option] [-Q, --require option] [-r, --request address] [-S, --static value] [-s, --inform address[/cidr[/broadcast_address]]] [--inform6] [-t, --timeout seconds] [-u, --userclass class] [-v, --vendor code, value] [-W, --whitelist address[/cidr]] [-w] [--waitip [4 | 6]] [-y, --reboot seconds] [-X, --blacklist address[/cidr]] [-Z, --denyinterfaces pattern] [-z, --allowinterfaces pattern] [--inactive] [interface] [...] dhcpcd -n, --rebind [interface] dhcpcd -k, --release [interface] dhcpcd -U, --dumplease interface dhcpcd --version dhcpcd -x, --exit [interface]
Run it as a service
One-time DHCP
To configure a network interface for one-time DHCP use issue the following command:
root #
dhcpcd eth0
Be sure to replace eth0
in the command above with the appropriate network interface name.
Renew a lease
To renew the lease on eth0, --rebind or -n can be used:
root #
dhcpcd -n eth0
Release a lease
To release a lease on eth0, --release or -k can be used:
root #
dhcpcd -k eth0
Troubleshooting
- dhcpcd not working for IPv6 (#CONFIG_PACKET is not set)
- If /etc/resolv.conf does not update with VPN's DNS, consider installing net-dns/openresolv.
See also
- The Handbook's recommendations on handling network interfaces
- Netifrc — Gentoo's default framework for configuring and managing network interfaces on systems running OpenRC.
- Network management using DHCPCD — explains how to use dhcpcd for complete network stack management.
External resources
References
- ↑ 1.0 1.1 Roy Marples. DHCPCD.CONF(5), Roy Marples's personal blog, March 9th, 2015. Retrieved on May 07th, 2015.