1 .\" $KAME: dhcp6c.conf.5,v 1.30 2005/05/03 06:54:26 jinmei Exp $
3 .\" Copyright (C) 2002 WIDE Project.
4 .\" All rights reserved.
6 .\" Redistribution and use in source and binary forms, with or without
7 .\" modification, are permitted provided that the following conditions
9 .\" 1. Redistributions of source code must retain the above copyright
10 .\" notice, this list of conditions and the following disclaimer.
11 .\" 2. Redistributions in binary form must reproduce the above copyright
12 .\" notice, this list of conditions and the following disclaimer in the
13 .\" documentation and/or other materials provided with the distribution.
14 .\" 3. Neither the name of the project nor the names of its contributors
15 .\" may be used to endorse or promote products derived from this software
16 .\" without specific prior written permission.
18 .\" THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
19 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
22 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 .Nd DHCPv6 client configuration file
39 .Pa /usr/local/etc/dhcp6c.conf
44 file contains configuration information for KAME's DHCPv6 client,
46 The configuration file consists of a sequence of statements terminated
47 by a semi-colon (`;').
48 Statements are composed of tokens separated by white space,
49 which can be any combination of blanks,
51 In some cases a set of statements is combined with a pair of brackets,
52 which is regarded as a single token.
56 .Sh Interface specification
57 There are some statements that may or have to specify interface.
58 Interfaces are specified in the form of "name unit", such as
64 Some configuration statements take the description of a DHCPv6 option
66 The followings are the format and description of available DHCPv6
68 .Bl -tag -width Ds -compact
70 .Ic domain-name-servers
72 means a Domain Name Server option.
76 means a domain name option.
80 means an NTP server option.
81 As of this writing, the option type for this option is not officially
84 will reject this option unless it is explicitly built to accept the option.
86 .Ic sip-server-address
88 means a SIP Server address option.
90 .Ic sip-server-domain-name
92 means a SIP server domain name option.
94 .Ic nis-server-address
96 means a NIS Server address option.
100 means a NIS domain name option.
102 .Ic nisp-server-address
104 means a NIS+ Server address option.
108 means a NIS+ domain name option.
110 .Ic bcmcs-server-address
112 means a BCMCS Server address option.
114 .Ic bcmcs-server-domain-name
116 means a BCMCS server domain name option.
119 .Pq Identity Association for Prefix Delegation
122 is a decimal number of the IAID
123 .Pq see below about identity associations .
126 .Pq Identity Association for Non-temporary Addresses
129 is a decimal number of the IAID
130 .Pq see below about identity associations .
132 means a rapid-commit option.
133 .It Ic authentication Ar authname
134 means an authentication option.
136 is a string specifying parameters of the authentication protocol.
144 .Sh Interface statement
145 An interface statement specifies configuration parameters on the
147 The generic format of an interface statement is as follows:
148 .Bl -tag -width Ds -compact
150 .Ic interface Ar interface
155 The followings are possible
157 in an interface statement.
158 .Bl -tag -width Ds -compact
160 .Ic send Ar send-options
163 This statement specifies DHCPv6 options to be sent to the server(s).
164 Some options can only appear in particular messages according to the
166 in which case the appearance of the options is limited to be compliant
167 with the specification.
170 is a comma-separated list of options,
171 each of which should be specified as described above.
174 statements can also be specified,
175 in which case all the specified options will be sent.
181 will include a rapid-commit option in solicit messages and wait for
182 an immediate reply instead of advertisements.
188 will initiate prefix delegation as a requesting router by
189 including an IA_PD option with the specified
197 will initiate stateful address assignment by
198 including an IA_NA option with the specified
202 In either case, a corresponding identity association statement
203 must exist with the same
205 .It Ic request Ar request-options ;
206 This statement specifies DHCPv6 options to be included in an
207 option-request option.
209 is a comma-separated list of options,
210 which can consist of the following options.
211 .Bl -tag -width Ds -compact
213 .Ic domain-name-servers
215 requests a list of Domain Name Server addresses.
219 requests a DNS search path.
223 requests a list of NTP server addresses.
224 As of this writing, the option type for this option is not officially
227 will reject this option unless it is explicitly built to accept the option.
229 .Ic sip-server-address
231 requests a list of SIP server addresses.
235 requests a SIP server domain name.
237 .Ic nis-server-address
239 requests a list of NIS server addresses.
243 requests a NIS domain name.
245 .Ic nisp-server-address
247 requests a list of NIS+ server addresses.
251 requests a NIS+ domain name.
253 .Ic bcmcs-server-address
255 requests a list of BCMCS server addresses.
257 .Ic bcmcs-domain-name
259 requests a BCMCS domain name.
263 means an information refresh time option.
264 This can only be specified when sent with information-request
267 will ignore this option for other messages.
271 statements can also be specified,
272 in which case all the specified options will be requested.
273 .It Ic information-only ;
274 This statement specifies
276 to only exchange informational configuration parameters with servers.
277 A list of DNS server addresses is an example of such parameters.
278 This statement is useful when the client does not need stateful
279 configuration parameters such as IPv6 addresses or prefixes.
280 .It Ic script Ar \(dqscript-name\(dq ;
281 This statement specifies a path to script invoked by
283 on a certain condition including when the daemon receives a reply
286 must be the absolute path from root to the script file, be a regular
287 file, and be created by the same owner who runs the daemon.
291 .Sh Identity association statement
294 is a key notion of DHCPv6.
295 An IA is uniquely identified in a client by a pair of IA type and
298 An IA is associated with configuration information dependent on the IA type.
300 An identity association statement defines a single IA with some
301 client-side configuration parameters.
302 Its format is as follows:
303 .Bl -tag -width Ds -compact
305 .Ic id-assoc Ar type Op Ar ID
311 is a string for the type of this IA.
312 The current implementation supports
314 (non-temporary address allocation)
316 (prefix delegation) for the IA type.
318 is a decimal number of IAID.
319 If omitted, the value 0 will be used by default.
321 is a sequence of statements that specifies configuration parameters
323 Each statement may or may not be specific to the type of IA.
325 The followings are possible
329 .Bl -tag -width Ds -compact
331 .Ic address Ar ipv6-address pltime Op Ar vltime ;
333 specifies an address and related parameters that the client wants to be
335 Multiple addresses can be specified, each of which is described as a
340 will include all the addresses
341 .Pq and related parameters
343 as an IA_NA prefix option encapsulated in the corresponding IA_NA
345 Note, however, that the server may or may not respect the specified
347 For parameters of the
354 The followings are possible
358 .Bl -tag -width Ds -compact
360 .Ar prefix_interface_statement
362 specifies the client's local configuration of how delegated prefixes
365 .It Ic prefix Ar ipv6-prefix pltime Op Ar vltime ;
366 specifies a prefix and related parameters that the client wants to be
368 Multiple prefixes can be specified, each of which is described as a
373 will include all the prefixes
374 .Pq and related parameters
376 as an IA_PD prefix option encapsulated in the corresponding IA_PD
378 Note, however, that the server may or may not respect the specified
380 For parameters of the
388 .Sh Prefix interface statement
389 A prefix interface statement specifies configuration parameters of
390 prefixes on local interfaces that are derived from delegated prefixes.
391 A prefix interface statement can only appear as a substatement of
392 an identity association statement with the type
394 The generic format of an interface statement is as follows:
395 .Bl -tag -width Ds -compact
397 .Ic prefix-interface Ar interface
402 When an IPv6 prefix is delegated from a DHCPv6 server,
404 will assign a prefix on the
406 unless the interface receives the DHCPv6 message that contains the prefix
407 with the delegated prefix and the parameters provided in
409 Possible substatements are as follows:
410 .Bl -tag -width Ds -compact
415 This statement specifies the identifier value of the site-level aggregator
419 must be a decimal integer which fits in the length of SLA IDs
424 is 1 and the client is delegated an IPv6 prefix 2001:db8:ffff::/48,
426 will combine the two values into a single IPv6 prefix,
427 2001:db8:ffff:1::/64,
428 and will configure the prefix on the specified
431 .Ic sla-len Ar length
434 This statement specifies the length of the SLA ID in bits.
436 must be a decimal number between 0 and 128.
437 If the length is not specified by this statement,
438 the default value 16 will be used.
442 .Sh Authentication statement
443 An authentication statement defines a set of authentication parameters
444 used in DHCPv6 exchanges with the server(s).
445 The format of an authentication statement is as follows:
446 .Bl -tag -width Ds -compact
448 .Ic authentication Ar authname
454 is a string which is unique among all authentication statements in the
456 It will specify a particular set of authentication parameters when
458 option is specified in the
461 Possible substatements of the
463 statement are as follows:
464 .Bl -tag -width Ds -compact
466 .Ic protocol Ar authprotocol
469 specifies the authentication protocol.
470 Currently, the only available protocol as
474 which means the DHCPv6 delayed authentication protocol.
476 .Ic algorithm Ar authalgorithm
479 specifies the algorithm for this authentication.
480 Currently, the only available algorithm is HMAC-MD5,
481 which can be specified as one of the followings:
487 This substatement can be omitted.
489 HMAC-MD5 will be used as the algorithm.
491 .Ic rdm Ar replay-detection-method
494 specifies the replay protection method for this authentication.
495 Currently, the only available method is
497 which means the use of a monotonically increasing counter.
498 If this method is specified,
500 will use an NTP-format timestamp when it authenticates the message.
501 This substatement can be omitted,
504 will be used as the method.
508 .Sh Keyinfo statement
509 A keyinfo statement defines a secret key shared with the server(s)
510 to authenticate DHCPv6 messages.
511 The format of a keyinfo statement is as follows:
512 .Bl -tag -width Ds -compact
514 .Ic keyinfo Ar keyname
520 is an arbitrary string.
521 It does not affect client's behavior but is provided for readability
523 Possible substatements of the
525 statement are as follows:
526 .Bl -tag -width Ds -compact
528 .Ic realm Ar \(dqrealmname\(dq
531 specifies the DHCP realm.
533 is an arbitrary string,
534 but is typically expected to be a domain name like \(dqkame.net\(dq .
539 specifies the key identifier,
542 A secret key is uniquely identified within the client by the DHCP
543 realm and the key identifier.
545 .Ic secret Ar \(dqsecret-value\(dq
548 specifies the shared secret of this key.
549 .Ar \(dqsecret-value\(dq
550 is a base-64 encoded string of the secret.
552 .Ic expire Ar \(dqexpiration-time\(dq
555 specifies the expiration time of this key.
556 .Ar \(dqexpiration-time\(dq
557 should be formatted in one of the followings:
558 .Ar yyyy-mm-dd HH:MM ,
564 is the year with century (e.g., 2004),
568 is the day of the month,
570 is the hour of 24-hour clock,
574 each of which is given as a decimal number.
579 .Ar expiration-time ,
580 which means the key has an infinite lifetime and never expires.
581 This substatement can be omitted,
584 will be used by default.
589 The followings are a sample configuration to be delegated an IPv6
590 prefix from an upstream service provider.
591 With this configuration
593 will send solicit messages containing an IA_PD option,
595 on to an upstream PPP link,
597 After receiving some prefixes from a server,
599 will then configure derived IPv6 prefixes with the SLA ID 1 on a
600 local ethernet interface,
602 Note that the IAID for the
604 statement is 0 according to the default.
611 prefix-interface ne0 {
617 If a shared secret should be configured in both the client and the
618 server for DHCPv6 authentication,
619 it would be specified in the configuration file as follows:
624 secret "5pvW2g48OHPvkYMJSw0vZA==";
628 One easy way of generating a new secret in the base64 format is to
631 command (when available) as follows,
633 % openssl rand -base64 16
636 and copy the output to the
640 To include an authentication option for DHCPv6 authentication,
643 statement should be modified and an
645 statement should be added as follows:
649 send authentication kame;
652 authentication kame {
669 configuration file first appeared in the WIDE/KAME IPv6 protocol