1: .\" $Id: dhclient.conf.5,v 1.1 2012/02/21 22:30:18 misho Exp $
2: .\"
3: .\" Copyright (c) 2009-2011 by Internet Systems Consortium, Inc. ("ISC")
4: .\" Copyright (c) 2004,2007 by Internet Systems Consortium, Inc. ("ISC")
5: .\" Copyright (c) 1996-2003 by Internet Software Consortium
6: .\"
7: .\" Permission to use, copy, modify, and distribute this software for any
8: .\" purpose with or without fee is hereby granted, provided that the above
9: .\" copyright notice and this permission notice appear in all copies.
10: .\"
11: .\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
12: .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13: .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
14: .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15: .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16: .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
17: .\" OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18: .\"
19: .\" Internet Systems Consortium, Inc.
20: .\" 950 Charter Street
21: .\" Redwood City, CA 94063
22: .\" <info@isc.org>
23: .\" https://www.isc.org/
24: .\"
25: .\" This software has been written for Internet Software Consortium
26: .\" by Ted Lemon in cooperation with Vixie Enterprises and Nominum, Inc.
27: .\"
28: .\" Support and other services are available for ISC products - see
29: .\" https://www.isc.org for more information or to learn more about ISC.
30: .\"
31: .TH dhclient.conf 5
32: .SH NAME
33: dhclient.conf - DHCP client configuration file
34: .SH DESCRIPTION
35: The dhclient.conf file contains configuration information for
36: .IR dhclient,
37: the Internet Systems Consortium DHCP Client.
38: .PP
39: The dhclient.conf file is a free-form ASCII text file. It is parsed by
40: the recursive-descent parser built into dhclient. The file may contain
41: extra tabs and newlines for formatting purposes. Keywords in the file
42: are case-insensitive. Comments may be placed anywhere within the
43: file (except within quotes). Comments begin with the # character and
44: end at the end of the line.
45: .PP
46: The dhclient.conf file can be used to configure the behaviour of the
47: client in a wide variety of ways: protocol timing, information
48: requested from the server, information required of the server,
49: defaults to use if the server does not provide certain information,
50: values with which to override information provided by the server, or
51: values to prepend or append to information provided by the server.
52: The configuration file can also be preinitialized with addresses to
53: use on networks that don't have DHCP servers.
54: .SH PROTOCOL TIMING
55: The timing behaviour of the client need not be configured by the user.
56: If no timing configuration is provided by the user, a fairly
57: reasonable timing behaviour will be used by default - one which
58: results in fairly timely updates without placing an inordinate load on
59: the server.
60: .PP
61: The following statements can be used to adjust the timing behaviour of
62: the DHCP client if required, however:
63: .PP
64: .I The
65: .B timeout
66: .I statement
67: .PP
68: .B timeout
69: .I time
70: .B ;
71: .PP
72: The
73: .I timeout
74: statement determines the amount of time that must pass between the
75: time that the client begins to try to determine its address and the
76: time that it decides that it's not going to be able to contact a
77: server. By default, this timeout is sixty seconds. After the
78: timeout has passed, if there are any static leases defined in the
79: configuration file, or any leases remaining in the lease database that
80: have not yet expired, the client will loop through these leases
81: attempting to validate them, and if it finds one that appears to be
82: valid, it will use that lease's address. If there are no valid
83: static leases or unexpired leases in the lease database, the client
84: will restart the protocol after the defined retry interval.
85: .PP
86: .I The
87: .B retry
88: .I statement
89: .PP
90: \fBretry \fItime\fR\fB;\fR
91: .PP
92: The
93: .I retry
94: statement determines the time that must pass after the client has
95: determined that there is no DHCP server present before it tries again
96: to contact a DHCP server. By default, this is five minutes.
97: .PP
98: .I The
99: .B select-timeout
100: .I statement
101: .PP
102: \fBselect-timeout \fItime\fR\fB;\fR
103: .PP
104: It is possible (some might say desirable) for there to be more than
105: one DHCP server serving any given network. In this case, it is
106: possible that a client may be sent more than one offer in response to
107: its initial lease discovery message. It may be that one of these
108: offers is preferable to the other (e.g., one offer may have the
109: address the client previously used, and the other may not).
110: .PP
111: The
112: .I select-timeout
113: is the time after the client sends its first lease discovery request
114: at which it stops waiting for offers from servers, assuming that it
115: has received at least one such offer. If no offers have been
116: received by the time the
117: .I select-timeout
118: has expired, the client will accept the first offer that arrives.
119: .PP
120: By default, the select-timeout is zero seconds - that is, the client
121: will take the first offer it sees.
122: .PP
123: .I The
124: .B reboot
125: .I statement
126: .PP
127: \fBreboot \fItime\fR\fB;\fR
128: .PP
129: When the client is restarted, it first tries to reacquire the last
130: address it had. This is called the INIT-REBOOT state. If it is
131: still attached to the same network it was attached to when it last
132: ran, this is the quickest way to get started. The
133: .I reboot
134: statement sets the time that must elapse after the client first tries
135: to reacquire its old address before it gives up and tries to discover
136: a new address. By default, the reboot timeout is ten seconds.
137: .PP
138: .I The
139: .B backoff-cutoff
140: .I statement
141: .PP
142: \fBbackoff-cutoff \fItime\fR\fB;\fR
143: .PP
144: The client uses an exponential backoff algorithm with some randomness,
145: so that if many clients try to configure themselves at the same time,
146: they will not make their requests in lockstep. The
147: .I backoff-cutoff
148: statement determines the maximum amount of time that the client is
149: allowed to back off, the actual value will be evaluated randomly between
150: 1/2 to 1 1/2 times the \fItime\fR specified. It defaults to two minutes.
151: .PP
152: .I The
153: .B initial-interval
154: .I statement
155: .PP
156: \fBinitial-interval \fItime\fR\fB;\fR
157: .PP
158: The
159: .I initial-interval
160: statement sets the amount of time between the first attempt to reach a
161: server and the second attempt to reach a server. Each time a message
162: is sent, the interval between messages is incremented by twice the
163: current interval multiplied by a random number between zero and one.
164: If it is greater than the backoff-cutoff amount, it is set to that
165: amount. It defaults to ten seconds.
166: .PP
167: .I The initial-delay
168: .I statement
169: .PP
170: \fBinitial-delay \fItime\fR\fB;\fR
171: .PP
172: .I initial-delay
173: parameter sets the maximum time client can wait after start before
174: commencing first transmission.
175: According to RFC2131 Section 4.4.1, client should wait a random time between
176: startup and the actual first transmission. Previous versions of ISC DHCP
177: client used to wait random time up to 5 seconds, but that was unwanted
178: due to impact on startup time. As such, new versions have the default
179: initial delay set to 0. To restore old behavior, please set initial-delay
180: to 5.
181: .SH LEASE REQUIREMENTS AND REQUESTS
182: The DHCP protocol allows the client to request that the server send it
183: specific information, and not send it other information that it is not
184: prepared to accept. The protocol also allows the client to reject
185: offers from servers if they don't contain information the client
186: needs, or if the information provided is not satisfactory.
187: .PP
188: There is a variety of data contained in offers that DHCP servers send
189: to DHCP clients. The data that can be specifically requested is what
190: are called \fIDHCP Options\fR. DHCP Options are defined in
191: \fBdhcp-options(5)\fR.
192: .PP
193: .I The
194: .B request
195: .I statement
196: .PP
197: \fB[ also ] request [ [ \fIoption-space\fR . ] \fIoption\fR ] [\fB,\fI ... ]\fB;\fR
198: .PP
199: The request statement causes the client to request that any server
200: responding to the client send the client its values for the specified
201: options. Only the option names should be specified in the request
202: statement - not option parameters. By default, the DHCPv4 client
203: requests the subnet-mask, broadcast-address, time-offset, routers,
204: domain-name, domain-name-servers and host-name options while the DHCPv6
205: client requests the dhcp6 name-servers and domain-search options. Note
206: that if you enter a \'request\' statement, you over-ride these defaults
207: and these options will not be requested.
208: .PP
209: In some cases, it may be desirable to send no parameter request list
210: at all. To do this, simply write the request statement but specify
211: no parameters:
212: .PP
213: .nf
214: request;
215: .fi
216: .PP
217: In most cases, it is desirable to simply add one option to the request
218: list which is of interest to the client in question. In this case, it
219: is best to \'also request\' the additional options:
220: .PP
221: .nf
222: also request domain-search, dhcp6.sip-servers-addresses;
223: .fi
224: .PP
225: .I The
226: .B require
227: .I statement
228: .PP
229: \fB[ also ] require [ [ \fIoption-space\fR . ] \fIoption\fR ] [\fB,\fI ... ]\fB;\fR
230: .PP
231: The require statement lists options that must be sent in order for an
232: offer to be accepted. Offers that do not contain all the listed
233: options will be ignored. There is no default require list.
234: .PP
235: .nf
236: require name-servers;
237:
238: interface eth0 {
239: also require domain-search;
240: }
241: .PP
242: .I The
243: .B send
244: .I statement
245: .PP
246: \fBsend { [ \fIoption declaration\fR ]
247: [\fB,\fI ... \fIoption declaration\fR ]\fB}\fR
248: .PP
249: The send statement causes the client to send the specified options to
250: the server with the specified values. These are full option
251: declarations as described in \fBdhcp-options(5)\fR. Options that are
252: always sent in the DHCP protocol should not be specified here, except
253: that the client can specify a requested \fBdhcp-lease-time\fR option other
254: than the default requested lease time, which is two hours. The other
255: obvious use for this statement is to send information to the server
256: that will allow it to differentiate between this client and other
257: clients or kinds of clients.
258: .SH DYNAMIC DNS
259: The client now has some very limited support for doing DNS updates
260: when a lease is acquired. This is prototypical, and probably doesn't
261: do what you want. It also only works if you happen to have control
262: over your DNS server, which isn't very likely.
263: .PP
264: Note that everything in this section is true whether you are using DHCPv4
265: or DHCPv6. The exact same syntax is used for both.
266: .PP
267: To make it work, you have to declare a key and zone as in the DHCP
268: server (see \fBdhcpd.conf\fR(5) for details). You also need to
269: configure the fqdn option on the client, as follows:
270: .PP
271: .nf
272: send fqdn.fqdn "grosse.fugue.com.";
273: send fqdn.encoded on;
274: send fqdn.server-update off;
275: also request fqdn, dhcp6.fqdn;
276: .fi
277: .PP
278: The \fIfqdn.fqdn\fR option \fBMUST\fR be a fully-qualified domain
279: name. You \fBMUST\fR define a zone statement for the zone to be
280: updated. The \fIfqdn.encoded\fR option may need to be set to
281: \fIon\fR or \fIoff\fR, depending on the DHCP server you are using.
282: .PP
283: .I The
284: .B do-forward-updates
285: .I statement
286: .PP
287: \fBdo-forward-updates [ \fIflag\fR ] \fB;\fR
288: .PP
289: If you want to do DNS updates in the DHCP client
290: script (see \fBdhclient-script(8)\fR) rather than having the
291: DHCP client do the update directly (for example, if you want to
292: use SIG(0) authentication, which is not supported directly by the
293: DHCP client, you can instruct the client not to do the update using
294: the \fBdo-forward-updates\fR statement. \fIFlag\fR should be \fBtrue\fR
295: if you want the DHCP client to do the update, and \fBfalse\fR if
296: you don't want the DHCP client to do the update. By default, the DHCP
297: client will do the DNS update.
298: .SH OPTION MODIFIERS
299: In some cases, a client may receive option data from the server which
300: is not really appropriate for that client, or may not receive
301: information that it needs, and for which a useful default value
302: exists. It may also receive information which is useful, but which
303: needs to be supplemented with local information. To handle these
304: needs, several option modifiers are available.
305: .PP
306: .I The
307: .B default
308: .I statement
309: .PP
310: \fBdefault [ \fIoption declaration\fR ] \fB;\fR
311: .PP
312: If for some option the client should use the value supplied by
313: the server, but needs to use some default value if no value was supplied
314: by the server, these values can be defined in the
315: .B default
316: statement.
317: .PP
318: .I The
319: .B supersede
320: .I statement
321: .PP
322: \fBsupersede [ \fIoption declaration\fR ] \fB;\fR
323: .PP
324: If for some option the client should always use a locally-configured
325: value or values rather than whatever is supplied by the server, these
326: values can be defined in the
327: .B supersede
328: statement.
329: .PP
330: .I The
331: .B prepend
332: .I statement
333: .PP
334: \fBprepend [ \fIoption declaration\fR ] \fB;\fR
335: .PP
336: If for some set of options the client should use a value you
337: supply, and then use the values supplied by
338: the server, if any, these values can be defined in the
339: .B prepend
340: statement. The
341: .B prepend
342: statement can only be used for options which
343: allow more than one value to be given. This restriction is not
344: enforced - if you ignore it, the behaviour will be unpredictable.
345: .PP
346: .I The
347: .B append
348: .I statement
349: .PP
350: \fBappend [ \fIoption declaration\fR ] \fB;\fR
351: .PP
352: If for some set of options the client should first use the values
353: supplied by the server, if any, and then use values you supply, these
354: values can be defined in the
355: .B append
356: statement. The
357: .B append
358: statement can only be used for options which
359: allow more than one value to be given. This restriction is not
360: enforced - if you ignore it, the behaviour will be unpredictable.
361: .SH LEASE DECLARATIONS
362: .PP
363: .I The
364: .B lease
365: .I declaration
366: .PP
367: \fBlease {\fR \fIlease-declaration\fR [ ... \fIlease-declaration ] \fB}\fR
368: .PP
369: The DHCP client may decide after some period of time (see \fBPROTOCOL
370: TIMING\fR) that it is not going to succeed in contacting a
371: server. At that time, it consults its own database of old leases and
372: tests each one that has not yet timed out by pinging the listed router
373: for that lease to see if that lease could work. It is possible to
374: define one or more \fIfixed\fR leases in the client configuration file
375: for networks where there is no DHCP or BOOTP service, so that the
376: client can still automatically configure its address. This is done
377: with the
378: .B lease
379: statement.
380: .PP
381: NOTE: the lease statement is also used in the dhclient.leases file in
382: order to record leases that have been received from DHCP servers.
383: Some of the syntax for leases as described below is only needed in the
384: dhclient.leases file. Such syntax is documented here for
385: completeness.
386: .PP
387: A lease statement consists of the lease keyword, followed by a left
388: curly brace, followed by one or more lease declaration statements,
389: followed by a right curly brace. The following lease declarations
390: are possible:
391: .PP
392: \fBbootp;\fR
393: .PP
394: The
395: .B bootp
396: statement is used to indicate that the lease was acquired using the
397: BOOTP protocol rather than the DHCP protocol. It is never necessary
398: to specify this in the client configuration file. The client uses
399: this syntax in its lease database file.
400: .PP
401: \fBinterface\fR \fB"\fR\fIstring\fR\fB";\fR
402: .PP
403: The
404: .B interface
405: lease statement is used to indicate the interface on which the lease
406: is valid. If set, this lease will only be tried on a particular
407: interface. When the client receives a lease from a server, it always
408: records the interface number on which it received that lease.
409: If predefined leases are specified in the dhclient.conf file, the
410: interface should also be specified, although this is not required.
411: .PP
412: \fBfixed-address\fR \fIip-address\fR\fB;\fR
413: .PP
414: The
415: .B fixed-address
416: statement is used to set the ip address of a particular lease. This
417: is required for all lease statements. The IP address must be
418: specified as a dotted quad (e.g., 12.34.56.78).
419: .PP
420: \fBfilename "\fR\fIstring\fR\fB";\fR
421: .PP
422: The
423: .B filename
424: statement specifies the name of the boot filename to use. This is
425: not used by the standard client configuration script, but is included
426: for completeness.
427: .PP
428: \fBserver-name "\fR\fIstring\fR\fB";\fR
429: .PP
430: The
431: .B server-name
432: statement specifies the name of the boot server name to use. This is
433: also not used by the standard client configuration script.
434: .PP
435: \fBoption\fR \fIoption-declaration\fR\fB;\fR
436: .PP
437: The
438: .B option
439: statement is used to specify the value of an option supplied by the
440: server, or, in the case of predefined leases declared in
441: dhclient.conf, the value that the user wishes the client configuration
442: script to use if the predefined lease is used.
443: .PP
444: \fBscript "\fIscript-name\fB";\fR
445: .PP
446: The
447: .B script
448: statement is used to specify the pathname of the dhcp client
449: configuration script. This script is used by the dhcp client to set
450: each interface's initial configuration prior to requesting an address,
451: to test the address once it has been offered, and to set the
452: interface's final configuration once a lease has been acquired. If
453: no lease is acquired, the script is used to test predefined leases, if
454: any, and also called once if no valid lease can be identified. For
455: more information, see
456: .B dhclient-script(8).
457: .PP
458: \fBvendor option space "\fIname\fB";\fR
459: .PP
460: The
461: .B vendor option space
462: statement is used to specify which option space should be used for
463: decoding the vendor-encapsulate-options option if one is received.
464: The \fIdhcp-vendor-identifier\fR can be used to request a specific
465: class of vendor options from the server. See
466: .B dhcp-options(5)
467: for details.
468: .PP
469: \fBmedium "\fImedia setup\fB";\fR
470: .PP
471: The
472: .B medium
473: statement can be used on systems where network interfaces cannot
474: automatically determine the type of network to which they are
475: connected. The media setup string is a system-dependent parameter
476: which is passed to the dhcp client configuration script when
477: initializing the interface. On Unix and Unix-like systems, the
478: argument is passed on the ifconfig command line when configuring the
479: interface.
480: .PP
481: The dhcp client automatically declares this parameter if it uses a
482: media type (see the
483: .B media
484: statement) when configuring the interface in order to obtain a lease.
485: This statement should be used in predefined leases only if the network
486: interface requires media type configuration.
487: .PP
488: \fBrenew\fR \fIdate\fB;\fR
489: .PP
490: \fBrebind\fR \fIdate\fB;\fR
491: .PP
492: \fBexpire\fR \fIdate\fB;\fR
493: .PP
494: The \fBrenew\fR statement defines the time at which the dhcp client
495: should begin trying to contact its server to renew a lease that it is
496: using. The \fBrebind\fR statement defines the time at which the dhcp
497: client should begin to try to contact \fIany\fR dhcp server in order
498: to renew its lease. The \fBexpire\fR statement defines the time at
499: which the dhcp client must stop using a lease if it has not been able
500: to contact a server in order to renew it.
501: .PP
502: These declarations are automatically set in leases acquired by the
503: DHCP client, but must also be configured in predefined leases - a
504: predefined lease whose expiry time has passed will not be used by the
505: DHCP client.
506: .PP
507: Dates are specified in one of two ways. The software will output times in
508: these two formats depending on if the \fBdb-time-format\fR configuration
509: parameter has been set to \fIdefault\fR or \fIlocal\fR.
510: .PP
511: If it is set to \fIdefault\fR, then \fIdate\fR values appear as follows:
512: .PP
513: \fI<weekday> <year>\fB/\fI<month>\fB/\fI<day>
514: <hour>\fB:\fI<minute>\fB:\fI<second>\fR
515: .PP
516: The weekday is present to make it easy for a human to tell when a
517: lease expires - it's specified as a number from zero to six, with zero
518: being Sunday. When declaring a predefined lease, it can always be
519: specified as zero. The year is specified with the century, so it
520: should generally be four digits except for really long leases. The
521: month is specified as a number starting with 1 for January. The day
522: of the month is likewise specified starting with 1. The hour is a
523: number between 0 and 23, the minute a number between 0 and 59, and the
524: second also a number between 0 and 59.
525: .PP
526: If the \fBdb-time-format\fR configuration was set to \fIlocal\fR, then
527: the \fIdate\fR values appear as follows:
528: .PP
529: \fBepoch\fR \fI<seconds-since-epoch>\fR\fB; #\fR \fI<day-name> <month-name>
530: <day-number> <hours>\fR\fB:\fR\fI<minutes>\fR\fB:\fR\fI<seconds> <year>\fR
531: .PP
532: The \fIseconds-since-epoch\fR is as according to the system's local clock (often
533: referred to as "unix time"). The \fB#\fR symbol supplies a comment that
534: describes what actual time this is as according to the system's configured
535: timezone, at the time the value was written. It is provided only for human
536: inspection, the epoch time is the only recommended value for machine
537: inspection.
538: .PP
539: Note that when defining a static lease, one may use either time format one
540: wishes, and need not include the comment or values after it.
541: .PP
542: If the time is infinite in duration, then the \fIdate\fR is \fBnever\fR
543: instead of an actual date.
544: .SH ALIAS DECLARATIONS
545: \fBalias { \fI declarations ... \fB}\fR
546: .PP
547: Some DHCP clients running TCP/IP roaming protocols may require that in
548: addition to the lease they may acquire via DHCP, their interface also
549: be configured with a predefined IP alias so that they can have a
550: permanent IP address even while roaming. The Internet Systems
551: Consortium DHCP client doesn't support roaming with fixed addresses
552: directly, but in order to facilitate such experimentation, the dhcp
553: client can be set up to configure an IP alias using the
554: .B alias
555: declaration.
556: .PP
557: The alias declaration resembles a lease declaration, except that
558: options other than the subnet-mask option are ignored by the standard
559: client configuration script, and expiry times are ignored. A typical
560: alias declaration includes an interface declaration, a fixed-address
561: declaration for the IP alias address, and a subnet-mask option
562: declaration. A medium statement should never be included in an alias
563: declaration.
564: .SH OTHER DECLARATIONS
565: \fBdb-time-format\fR [ \fIdefault\fR | \fIlocal\fR ] \fB;\fR
566: .PP
567: The \fBdb-time-format\fR option determines which of two output methods are
568: used for printing times in leases files. The \fIdefault\fR format provides
569: day-and-time in UTC, whereas \fIlocal\fR uses a seconds-since-epoch to store
570: the time value, and helpfully places a local timezone time in a comment on
571: the same line. The formats are described in detail in this manpage, whithin
572: the LEASE DECLARATIONS section.
573: .PP
574: \fBreject \fIcidr-ip-address\fR [\fB,\fR \fI...\fB \fIcidr-ip-address\fR ] \fB;\fR
575: .PP
576: The
577: .B reject
578: statement causes the DHCP client to reject offers from
579: servers whose server identifier matches any of the specified hosts or
580: subnets. This can be used to avoid being configured by rogue or
581: misconfigured dhcp servers, although it should be a last resort -
582: better to track down the bad DHCP server and fix it.
583: .PP
584: The \fIcidr-ip-address\fR configuration type is of the
585: form \fIip-address\fR[\fB/\fIprefixlen\fR], where \fIip-address\fR is a
586: dotted quad IP address, and \fRprefixlen\fR is the CIDR prefix length of
587: the subnet, counting the number of significant bits in the netmask starting
588: from the leftmost end. Example configuration syntax:
589: .PP
590: .I \fIreject\fR 192.168.0.0\fB/\fR16\fB,\fR 10.0.0.5\fB;\fR
591: .RE
592: .PP
593: The above example would cause offers from any server identifier in the
594: entire RFC 1918 "Class C" network 192.168.0.0/16, or the specific
595: single address 10.0.0.5, to be rejected.
596: .PP
597: \fBinterface "\fIname\fB" { \fIdeclarations ... \fB }
598: .PP
599: A client with more than one network interface may require different
600: behaviour depending on which interface is being configured. All
601: timing parameters and declarations other than lease and alias
602: declarations can be enclosed in an interface declaration, and those
603: parameters will then be used only for the interface that matches the
604: specified name. Interfaces for which there is no interface
605: declaration will use the parameters declared outside of any interface
606: declaration, or the default settings.
607: .PP
608: .B Note well:
609: ISC dhclient only maintains one list of interfaces, which is either
610: determined at startup from command line arguments, or otherwise is
611: autodetected. If you supplied the list of interfaces on the command
612: line, this configuration clause will add the named interface to the
613: list in such a way that will cause it to be configured by DHCP. Which
614: may not be the result you had intended. This is an undesirable side
615: effect that will be addressed in a future release.
616: .PP
617: \fBpseudo "\fIname\fR" "\fIreal-name\fB" { \fIdeclarations ... \fB }
618: .PP
619: Under some circumstances it can be useful to declare a pseudo-interface
620: and have the DHCP client acquire a configuration for that interface.
621: Each interface that the DHCP client is supporting normally has a DHCP
622: client state machine running on it to acquire and maintain its lease.
623: A pseudo-interface is just another state machine running on the
624: interface named \fIreal-name\fR, with its own lease and its own
625: state. If you use this feature, you must provide a client identifier
626: for both the pseudo-interface and the actual interface, and the two
627: identifiers must be different. You must also provide a separate
628: client script for the pseudo-interface to do what you want with the IP
629: address. For example:
630: .PP
631: .nf
632: interface "ep0" {
633: send dhcp-client-identifier "my-client-ep0";
634: }
635: pseudo "secondary" "ep0" {
636: send dhcp-client-identifier "my-client-ep0-secondary";
637: script "/etc/dhclient-secondary";
638: }
639: .fi
640: .PP
641: The client script for the pseudo-interface should not configure the
642: interface up or down - essentially, all it needs to handle are the
643: states where a lease has been acquired or renewed, and the states
644: where a lease has expired. See \fBdhclient-script(8)\fR for more
645: information.
646: .PP
647: \fBmedia "\fImedia setup\fB"\fI [ \fB, "\fImedia setup\fB", \fI... ]\fB;\fR
648: .PP
649: The
650: .B media
651: statement defines one or more media configuration parameters which may
652: be tried while attempting to acquire an IP address. The dhcp client
653: will cycle through each media setup string on the list, configuring
654: the interface using that setup and attempting to boot, and then trying
655: the next one. This can be used for network interfaces which aren't
656: capable of sensing the media type unaided - whichever media type
657: succeeds in getting a request to the server and hearing the reply is
658: probably right (no guarantees).
659: .PP
660: The media setup is only used for the initial phase of address
661: acquisition (the DHCPDISCOVER and DHCPOFFER packets). Once an
662: address has been acquired, the dhcp client will record it in its lease
663: database and will record the media type used to acquire the address.
664: Whenever the client tries to renew the lease, it will use that same
665: media type. The lease must expire before the client will go back to
666: cycling through media types.
667: .SH SAMPLE
668: The following configuration file is used on a laptop running NetBSD
669: 1.3. The laptop has an IP alias of 192.5.5.213, and has one
670: interface, ep0 (a 3com 3C589C). Booting intervals have been
671: shortened somewhat from the default, because the client is known to
672: spend most of its time on networks with little DHCP activity. The
673: laptop does roam to multiple networks.
674:
675: .nf
676:
677: timeout 60;
678: retry 60;
679: reboot 10;
680: select-timeout 5;
681: initial-interval 2;
682: reject 192.33.137.209;
683:
684: interface "ep0" {
685: send host-name "andare.fugue.com";
686: send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
687: send dhcp-lease-time 3600;
688: supersede domain-search "fugue.com", "rc.vix.com", "home.vix.com";
689: prepend domain-name-servers 127.0.0.1;
690: request subnet-mask, broadcast-address, time-offset, routers,
691: domain-name, domain-name-servers, host-name;
692: require subnet-mask, domain-name-servers;
693: script "CLIENTBINDIR/dhclient-script";
694: media "media 10baseT/UTP", "media 10base2/BNC";
695: }
696:
697: alias {
698: interface "ep0";
699: fixed-address 192.5.5.213;
700: option subnet-mask 255.255.255.255;
701: }
702: .fi
703: This is a very complicated dhclient.conf file - in general, yours
704: should be much simpler. In many cases, it's sufficient to just
705: create an empty dhclient.conf file - the defaults are usually fine.
706: .SH SEE ALSO
707: dhcp-options(5), dhcp-eval(5), dhclient.leases(5), dhcpd(8), dhcpd.conf(5),
708: RFC2132, RFC2131.
709: .SH AUTHOR
710: .B dhclient(8)
711: was written by Ted Lemon
712: under a contract with Vixie Labs. Funding
713: for this project was provided by Internet Systems Consortium.
714: Information about Internet Systems Consortium can be found at
715: .B https://www.isc.org.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>