initrd: cd to '/' before umounting '/var'
[dragonfly.git] / contrib / dhcpcd / README.md
1 # dhcpcd
2
3 dhcpcd is a
4 [DHCP](http://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol) and a
5 [DHCPv6](http://en.wikipedia.org/wiki/DHCPv6) client.
6 It's also an IPv4LL (aka [ZeroConf](http://en.wikipedia.org/wiki/Zeroconf))
7 client.
8 In layman's terms, dhcpcd runs on your machine and silently configures your
9 computer to work on the attached networks without trouble and mostly without
10 configuration.
11
12 If you're a desktop user then you may also be interested in
13 [Network Configurator (dhcpcd-ui)](http://roy.marples.name/projects/dhcpcd-ui)
14 which sits in the notification area and monitors the state of the network via
15 dhcpcd.
16 It also has a nice configuration dialog and the ability to enter a pass phrase
17 for wireless networks.
18
19 dhcpcd may not be the only daemon running that wants to configure DNS on the
20 host, so it uses [openresolv](http://roy.marples.name/projects/openresolv)
21 to ensure they can co-exist.
22
23 See [BUILDING.md](BUILDING.md) for how to build dhcpcd.
24
25 If you wish to file a support ticket or help out with development, please
26 [visit the Development Area](https://dev.marples.name/project/profile/101/)
27 or join the mailing list below.
28
29 ## Configuration
30
31 You should read the
32 [dhcpcd.conf man page](http://roy.marples.name/man/html5/dhcpcd.conf.html)
33 and put your options into `/etc/dhcpcd.conf`.
34 The default configuration file should work for most people just fine.
35 Here it is, in case you lose it.
36
37 ```
38 # A sample configuration for dhcpcd.
39 # See dhcpcd.conf(5) for details.
40
41 # Allow users of this group to interact with dhcpcd via the control socket.
42 #controlgroup wheel
43
44 # Inform the DHCP server of our hostname for DDNS.
45 hostname
46
47 # Use the hardware address of the interface for the Client ID.
48 #clientid
49 # or
50 # Use the same DUID + IAID as set in DHCPv6 for DHCPv4 ClientID as per RFC4361.
51 # Some non-RFC compliant DHCP servers do not reply with this set.
52 # In this case, comment out duid and enable clientid above.
53 duid
54
55 # Persist interface configuration when dhcpcd exits.
56 persistent
57
58 # Rapid commit support.
59 # Safe to enable by default because it requires the equivalent option set
60 # on the server to actually work.
61 option rapid_commit
62
63 # A list of options to request from the DHCP server.
64 option domain_name_servers, domain_name, domain_search, host_name
65 option classless_static_routes
66 # Respect the network MTU. This is applied to DHCP routes.
67 option interface_mtu
68
69 # Most distributions have NTP support.
70 #option ntp_servers
71
72 # A ServerID is required by RFC2131.
73 require dhcp_server_identifier
74
75 # Generate SLAAC address using the Hardware Address of the interface
76 #slaac hwaddr
77 # OR generate Stable Private IPv6 Addresses based from the DUID
78 slaac private
79 ```
80
81 The [dhcpcd man page](/man/html8/dhcpcd.html) has a lot of the same options and more, which only apply to calling dhcpcd from the command line.
82
83
84 ## Compatibility
85 dhcpcd-5 is only fully command line compatible with dhcpcd-4
86 For compatibility with older versions, use dhcpcd-4
87
88 ## Upgrading
89 dhcpcd-7 defaults the database directory to `/var/db/dhcpcd` instead of
90 `/var/db` and now stores dhcpcd.duid and dhcpcd.secret in there instead of
91 in /etc.
92 The Makefile `_confinstall` target will attempt to move the files correctly from
93 the old locations to the new locations.
94 Of course this won't work if dhcpcd-7 is packaged up, so packagers will need to
95 install similar logic into their dhcpcd package.
96
97 ## ChangeLog
98 We no longer supply a ChangeLog.
99 However, you're more than welcome to read the
100 [commit log](http://roy.marples.name/git/dhcpcd.git/log/) and
101 [archived release announcements](http://roy.marples.name/archives/dhcpcd-discuss/).