]>
Commit | Line | Data |
---|---|---|
4c6a8bec | 1 | .\" Copyright (c) 2006-2013 Roy Marples |
ba9dfb7a RM |
2 | .\" All rights reserved |
3 | .\" | |
4 | .\" Redistribution and use in source and binary forms, with or without | |
5 | .\" modification, are permitted provided that the following conditions | |
6 | .\" are met: | |
7 | .\" 1. Redistributions of source code must retain the above copyright | |
8 | .\" notice, this list of conditions and the following disclaimer. | |
9 | .\" 2. Redistributions in binary form must reproduce the above copyright | |
10 | .\" notice, this list of conditions and the following disclaimer in the | |
11 | .\" documentation and/or other materials provided with the distribution. | |
12 | .\" | |
13 | .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |
14 | .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
15 | .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
16 | .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |
17 | .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
18 | .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |
19 | .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
20 | .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |
21 | .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |
22 | .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
23 | .\" SUCH DAMAGE. | |
24 | .\" | |
a521cdce | 25 | .Dd June 19, 2013 |
ba9dfb7a | 26 | .Dt DHCPCD.CONF 5 SMM |
918338f2 | 27 | .Os |
ba9dfb7a RM |
28 | .Sh NAME |
29 | .Nm dhcpcd.conf | |
443c8695 | 30 | .Nd dhcpcd configuration file |
ba9dfb7a RM |
31 | .Sh DESCRIPTION |
32 | Although | |
33 | .Nm dhcpcd | |
34 | can do everything from the command line, there are cases where it's just easier | |
cf42802e RM |
35 | to do it once in a configuration file. |
36 | Most of the options found in | |
ba9dfb7a | 37 | .Xr dhcpcd 8 |
cf42802e RM |
38 | can be used here. |
39 | The first word on the line is the option and the rest of the line is the value. | |
40 | Leading and trailing whitespace for the option and value are trimmed. | |
41 | You can escape characters in the value using the \\ character. | |
967194ef RM |
42 | .Pp |
43 | Blank lines and lines starting with # are ignored. | |
ba9dfb7a RM |
44 | .Pp |
45 | Here's a list of available options: | |
46 | .Bl -tag -width indent | |
ba97e494 RM |
47 | .It Ic allowinterfaces Ar pattern |
48 | When discovering interfaces, the interface name must match | |
49 | .Ar pattern | |
50 | which is a space or comma separated list of patterns passed to | |
51 | .Xr fnmatch 3 . | |
52 | If the same interface is matched in | |
53 | .Ic denyinterfaces | |
54 | then it is still denied. | |
55 | .It Ic denyinterfaces Ar pattern | |
56 | When discovering interfaces, the interface name must not match | |
57 | .Ar pattern | |
58 | which is a space or comma separated list of patterns passed to | |
59 | .Xr fnmatch 3 . | |
6f767217 RM |
60 | .It Ic arping Ar address Op address |
61 | .Nm dhcpcd | |
ff021b0b | 62 | will arping each address in order before attempting DHCP. |
6f767217 RM |
63 | If an address is found, we will select the replying hardware address as the |
64 | profile, otherwise the ip address. | |
65 | Example: | |
66 | .Pp | |
67 | .D1 interface bge0 | |
68 | .D1 arping 192.168.0.1 | |
69 | .Pp | |
70 | .D1 profile 192.168.0.1 | |
71 | .D1 static ip_address=192.168.0.10/24 | |
bac03ede RM |
72 | .It Ic background |
73 | Background immediately. | |
74 | This is useful for startup scripts which don't disable link messages for | |
75 | carrier status. | |
6f767217 | 76 | .It Ic blacklist Ar address Ns Op /cidr |
ce6b39df | 77 | Ignores all packets from |
6f767217 | 78 | .Ar address Ns Op /cidr . |
bf80d526 RM |
79 | .It Ic whitelist Ar address Ns Op /cidr |
80 | Only accept packets from | |
81 | .Ar address Ns Op /cidr . | |
82 | .Ic blacklist | |
83 | is ignored if | |
84 | .Ic whitelist | |
85 | is set. | |
900b3da4 RM |
86 | .It Ic broadcast |
87 | Instructs the DHCP server to broadcast replies back to the client. | |
88 | Normally this is only set for non Ethernet interfaces, | |
89 | such as FireWire and InfiniBand. | |
90 | In most cases, | |
91 | .Nm dhcpcd | |
92 | will set this automatically. | |
6bfd88f1 RM |
93 | .It Ic env Ar value |
94 | Push | |
95 | .Ar value | |
96 | to the environment for use in | |
97 | .Xr dhcpcd-run-hooks 8 . | |
98 | For example, you can force the hostname hook to always set the hostname with | |
99 | .Ic env | |
100 | .Va force_hostname=YES . | |
d2616b08 | 101 | .It Ic clientid Ar string |
c989b023 RM |
102 | Send the |
103 | .Ar clientid . | |
d2616b08 | 104 | If the string is of the format 01:02:03 then it is encoded as hex. |
3faba9e6 RM |
105 | For interfaces whose hardware address is longer than 8 bytes, or if the |
106 | .Ar clientid | |
107 | is an empty string then | |
108 | .Nm dhcpcd | |
109 | sends a default | |
110 | .Ar clientid | |
111 | of the hardware family and the hardware address. | |
d2616b08 RM |
112 | .It Ic duid |
113 | Generate an | |
114 | .Rs | |
115 | .%T "RFC 4361" | |
116 | .Re | |
cf42802e | 117 | compliant clientid. |
7e068c85 RM |
118 | If persistent storage is available then a DUID-LLT (link local address + time) |
119 | is generated, otherwise DUID-LL is generated (link local address). | |
120 | The DUID-LLT generated will be held in | |
d2616b08 RM |
121 | .Pa @SYSCONFDIR@/dhcpcd.duid |
122 | and should not be copied to other hosts. | |
ff021b0b RM |
123 | .It Ic fallback Ar profile |
124 | Fallback to using this profile if DHCP fails. | |
125 | This allows you to configure a static profile instead of using ZeroConf. | |
ba9dfb7a | 126 | .It Ic hostname Ar name |
35d02ae6 | 127 | Sends |
ff021b0b | 128 | .Ar hostname |
35d02ae6 RM |
129 | to the DHCP server so it can be registered in DNS. |
130 | If | |
35ff0dbb | 131 | .Ar hostname |
35d02ae6 RM |
132 | is an empty string then the current system hostname is sent. |
133 | If | |
134 | .Ar hostname | |
135 | is a FQDN (ie, contains a .) then it will be encoded as such. | |
22ea2b0d | 136 | .It Ic ia_na Op Ar iaid |
00ababe4 RM |
137 | Request a DHCPv6 Normal Address for |
138 | .Ar iaid . | |
139 | If none is specified, a default | |
140 | .Ar iaid | |
141 | is used. | |
142 | If the interface name is 4 characters or less then that is used, | |
143 | otherwise the interface index is used. | |
22ea2b0d | 144 | .It Ic ia_ta Op Ar iaid |
00ababe4 RM |
145 | Request a DHCPv6 Temporary Address for |
146 | .Ar iaid . | |
5985c4e2 | 147 | .It Ic ia_pd Op Ar iaid Op Ar interface Op / Ar sla_id Op / Ar prefix_len |
00ababe4 RM |
148 | Request a DHCPv6 Delegated Prefix for |
149 | .Ar iaid . | |
22ea2b0d RM |
150 | If no |
151 | .Ar interface | |
152 | is given then we will assign a prefix to every other interface with a unique | |
153 | .Ar sla_id | |
154 | for each, starting from 0. | |
155 | Otherwise addresses are only assigned for each | |
00ababe4 RM |
156 | .Ar interface |
157 | and | |
158 | .Ar sla_id | |
00ababe4 | 159 | A default |
367f7b11 | 160 | .Ar prefix_len |
22ea2b0d | 161 | of 64 is assumed. |
367f7b11 RM |
162 | .Ar sla_id |
163 | is an integer and is added to the prefix which must fit inside | |
164 | .Ar prefix_len | |
165 | less the length of the delegated prefix. | |
22ea2b0d RM |
166 | You can specify multiple |
167 | .Ar interface / | |
168 | .Ar sla_id / | |
169 | .Ar prefix_len | |
170 | per | |
171 | .Ic ia_pd , | |
172 | space separated. | |
00ababe4 RM |
173 | IPv6RS should be disabled globally when requesting a Prefix Delegation like so: |
174 | .Pp | |
175 | .D1 noipv6rs | |
176 | .Pp | |
177 | .D1 interface eth0 | |
74ceb961 | 178 | .D1 ia_pd 1 eth1/0 eth2/1 |
d7555c12 RM |
179 | .It Ic ipv4only |
180 | Only configure IPv4. | |
181 | .It Ic ipv6only | |
182 | Only confgiure IPv6. | |
cc3c3560 RM |
183 | .It Ic fqdn Op disable | ptr | both |
184 | ptr just asks the DHCP server to update the PTR | |
35ff0dbb | 185 | record of the host in DNS whereas both also updates the A record. |
cc3c3560 RM |
186 | disable will disable the FQDN option. |
187 | The default is both. | |
1b3bc477 RM |
188 | .Nm dhcpcd |
189 | itself never does any DNS updates. | |
e837a670 RM |
190 | .Nm dhcpcd |
191 | encodes the FQDN hostname as specified in | |
192 | .Li RFC1035 . | |
3adc5520 | 193 | .It Ic interface Ar interface |
012fd5d3 RM |
194 | Subsequent options are only parsed for this |
195 | .Ar interface . | |
61dd6cf9 RM |
196 | .It Ic ipv6ra_fork |
197 | By default, when | |
198 | .Nm dhcpcd | |
199 | receives an IPv6 RA, | |
200 | .Nm dhcpcd | |
201 | will only fork to the background if the RA contains at least one unexpired | |
202 | RDNSS option. | |
203 | Set this option so to make | |
204 | .Nm dhcpcd | |
205 | always fork on an RA. | |
d7555c12 | 206 | .It Ic ipv6ra_own |
eebe9a18 RM |
207 | Disables kernel IPv6 Router Advertisment processing so dhcpcd can manage |
208 | addresses and routes. | |
a521cdce | 209 | This does not work reliably on any BSD system, probably due to kernel issues. |
d7555c12 | 210 | .It Ic ipv6ra_own_default |
eebe9a18 RM |
211 | Each time dhcpcd receives an IPv6 Router Adveristment, dhcpcd will manage |
212 | the default route only. | |
213 | This allows dhcpcd to prefer an interface for outbound traffic based on metric | |
214 | and/or user selection rather than the kernel. | |
a521cdce | 215 | This does work reliably on BSD systems. |
d7555c12 | 216 | .It Ic ipv6rs |
eebe9a18 RM |
217 | Enables IPv6 Router Advertisment solicitation. |
218 | This is on by default, but is documented here in the case where it is disabled | |
219 | globally but needs to be enabled for one interface. | |
ba9dfb7a RM |
220 | .It Ic leasetime Ar seconds |
221 | Request a leasetime of | |
222 | .Ar seconds . | |
065125d4 RM |
223 | .It Ic metric Ar metric |
224 | Metrics are used to prefer an interface over another one, lowest wins. | |
225 | .Nm dhcpcd | |
87b266d2 | 226 | will supply a default metric of 200 + |
065125d4 RM |
227 | .Xr if_nametoindex 3 . |
228 | An extra 100 will be added for wireless interfaces. | |
7dab081f RM |
229 | .It Ic noalias |
230 | IPv4 addresses added will overwrite a pre-existing address instead of working | |
231 | alongside. | |
ba9dfb7a | 232 | .It Ic noarp |
cf42802e RM |
233 | Don't send any ARP requests. |
234 | This also disables IPv4LL. | |
ba9dfb7a RM |
235 | .It Ic nogateway |
236 | Don't install any default routes. | |
37156a6b RM |
237 | .It Ic nohook Ar script |
238 | Don't run this hook script. | |
8276da82 RM |
239 | Matches full name, or prefixed with 2 numbers optionally ending with |
240 | .Pa .sh . | |
fc7ee231 RM |
241 | .Pp |
242 | So to stop | |
243 | .Nm dhcpcd | |
244 | from touching your DNS or MTU settings you would do:- | |
245 | .D1 nohook resolv.conf, mtu | |
ba9dfb7a RM |
246 | .It Ic noipv4ll |
247 | Don't attempt to obtain an IPv4LL address if we failed to get one via DHCP. | |
248 | See | |
249 | .Rs | |
250 | .%T "RFC 3927" | |
251 | .Re | |
91cd7324 | 252 | .It Ic noipv6rs |
4c6a8bec | 253 | Disable solicitation and receipt of IPv6 Router Advertisements. |
a26af491 RM |
254 | .It Ic nolink |
255 | Don't receive link messages about carrier status. | |
256 | You should only set this for buggy interface drivers. | |
cc45fbd7 | 257 | .It Ic option Ar option |
d2616b08 | 258 | Requests the |
cc45fbd7 | 259 | .Ar option |
cf42802e RM |
260 | from the server. |
261 | It can be a variable to be used in | |
ee4e620a | 262 | .Xr dhcpcd-run-hooks 8 |
cf42802e | 263 | or the numerical value. |
b8ffa3cd RM |
264 | You can specify more |
265 | .Ar option Ns s | |
266 | separated by commas, spaces or more | |
267 | .Ic option | |
268 | lines. | |
269 | Prepend dhcp6_ to | |
270 | .Ar option | |
271 | to request a DHCPv6 option. | |
272 | DHCPv4 options are mapped to DHCPv6 where applicable. | |
2063c6f9 RM |
273 | .It Ic nooption Ar option |
274 | Remove the option from the DHCP message. | |
275 | This should only be used when a DHCP server sends a non requested option | |
276 | that should not be processed. | |
1abffd5b RM |
277 | .It Ic destination Ar option |
278 | If | |
279 | .Nm | |
280 | detects an address added to a point to point interface (PPP, TUN, etc) then | |
281 | it will set the listed DHCP options to the destination address of the | |
282 | interface. | |
6f767217 RM |
283 | .It Ic profile Ar name |
284 | Subsequent options are only parsed for this profile | |
285 | .Ar name . | |
1abffd5b | 286 | .It Ic quiet |
87b266d2 | 287 | Suppress any dhcpcd output to the console, except for errors. |
1abffd5b | 288 | .It Ic reboot Ar seconds |
a2a9a498 RM |
289 | Allow |
290 | .Ar reboot | |
901b42de | 291 | seconds before moving to the DISCOVER phase if we have an old lease to use. |
499225e4 | 292 | The default is 5 seconds. |
901b42de | 293 | A setting of 0 seconds causes |
a2a9a498 | 294 | .Nm dhcpcd |
901b42de RM |
295 | to skip the REBOOT phase and go straight into DISCOVER. |
296 | This is desirable for mobile users because if you change from network A to | |
297 | network B and they use the same subnet and the address from network A isn't | |
298 | in use on network B, then the DHCP server will remain silent even if authorative | |
299 | which means | |
300 | .Nm dhcpcd | |
301 | will timeout before moving back to the DISCOVER phase. | |
2662d519 RM |
302 | .It Ic release |
303 | .Nm dhcpcd | |
304 | will release the lease prior to stopping the interface. | |
cc45fbd7 RM |
305 | .It Ic require Ar option |
306 | Requires the | |
307 | .Ar option | |
308 | to be present in all DHCP messages, otherwise the message is ignored. | |
309 | It can be a variable to be used in | |
310 | .Xr dhcpcd-run-hooks 8 | |
311 | or the numerical value. | |
87b266d2 | 312 | You can specify more options separated by commas, spaces or more require lines. |
02d339e3 RM |
313 | To enforce that |
314 | .Nm dhcpcd | |
315 | only responds to DHCP servers and not BOOTP servers, you can | |
316 | .Ic require | |
317 | .Ar dhcp_message_type . | |
0aeb350c RM |
318 | .It Ic script Ar script |
319 | Use | |
320 | .Ar script | |
321 | instead of the default | |
322 | .Pa @SCRIPT@ . | |
c53cf4ef RM |
323 | .It Ic ssid Ar ssid |
324 | Subsequent options are only parsed for this wireless | |
325 | .Ar ssid . | |
91a44b91 RM |
326 | .It Ic static Ar value |
327 | Configures a static | |
328 | .Ar value . | |
329 | If you set | |
330 | .Ic ip_address | |
331 | then | |
332 | .Nm dhcpcd | |
333 | will not attempt to obtain a lease and just use the value for the address with | |
334 | an infinite lease time. | |
335 | .Pp | |
336 | Here is an example which configures a static address, routes and dns. | |
337 | .D1 interface eth0 | |
338 | .D1 static ip_address=192.168.0.10/24 | |
339 | .D1 static routers=192.168.0.1 | |
340 | .D1 static domain_name_servers=192.168.0.1 | |
1abffd5b RM |
341 | .Pp |
342 | Here is an example for PPP which gives the destination a default route. | |
343 | It uses the special destination keyword to insert the destination address | |
344 | into the value. | |
345 | .D1 interface ppp0 | |
346 | .D1 static ip_address= | |
347 | .D1 destination routers | |
d2616b08 | 348 | .It Ic timeout Ar seconds |
fedb3da0 | 349 | The default timeout for waiting for a DHCP response is 30 seconds which may |
d2616b08 | 350 | be too long or too short and can be changed here. |
d93d7adc RM |
351 | A setting of 0 |
352 | .Ar seconds | |
353 | causes | |
354 | .Nm dhcpcd | |
355 | to wait forever to get a lease. | |
d2616b08 | 356 | .It Ic userclass Ar string |
cf42802e RM |
357 | Tag the DHCP messages with the userclass. |
358 | You can specify more than one. | |
bac03ede | 359 | .It Ic vendor Ar code , Ns Ar value |
87b266d2 | 360 | Add an encapsulated vendor option. |
757520c5 RM |
361 | .Ar code |
362 | should be between 1 and 254 inclusive. | |
95d6dcfa RM |
363 | To add a raw vendor string, omit |
364 | .Ar code | |
365 | but keep the comma. | |
757520c5 RM |
366 | Examples. |
367 | .Pp | |
368 | Set the vendor option 01 with an IP address. | |
369 | .D1 vendor 01,192.168.0.2 | |
370 | Set the vendor option 02 with a hex code. | |
371 | .D1 vendor 02,01:02:03:04:05 | |
372 | Set the vendor option 03 with an IP address as a string. | |
373 | .D1 vendor 03,\e"192.168.0.2\e" | |
87b266d2 | 374 | Set un-encapsulated vendor option to hello world. |
9cb58952 | 375 | .D1 vendor ,"hello world" |
bac03ede | 376 | .It Ic vendorclassid Ar string |
eebe9a18 RM |
377 | The default is |
378 | dhcpcd-<version>:<os>:<machine>:<platform>. | |
379 | For example | |
380 | .D1 dhcpcd-5.5.6:NetBSD-6.99.5:i386:i386 | |
bac03ede | 381 | If not set then none is sent. |
eebe9a18 RM |
382 | Some badly configured DHCP servers reject unknown vendorclassids. |
383 | To work around it, try and impersonate Windows by using the MSFT vendorclassid. | |
2a07a2af RM |
384 | .It Ic waitip |
385 | Wait for an address to be assigned before forking to the background. | |
4242c9b3 RM |
386 | .It Ic xidhwaddr |
387 | Use the last four bytes of the hardware address as the DHCP xid instead | |
388 | of a randomly generated number. | |
eaa90296 | 389 | .El |
ba9dfb7a | 390 | .Sh SEE ALSO |
ee4e620a | 391 | .Xr dhcpcd-run-hooks 8 , |
ba97e494 | 392 | .Xr dhcpcd 8 , |
065125d4 | 393 | .Xr if_nametoindex 3 , |
ba97e494 | 394 | .Xr fnmatch 3 |
ba9dfb7a | 395 | .Sh AUTHORS |
2cfe8d07 | 396 | .An Roy Marples Aq Mt roy@marples.name |
ba9dfb7a | 397 | .Sh BUGS |
fd73ceb1 RM |
398 | Please report them to |
399 | .Lk http://roy.marples.name/projects/dhcpcd |