Allow IPv6 address entry in tools>ping - Loosens valid character check
[tomato/davidwu.git] / release / src / router / dhcpv6 / dhcp6c.conf.5
blob611ab4f9ed3d62343bf41bd84255d75e5f8a3f26
1 .\"     $KAME: dhcp6c.conf.5,v 1.30 2005/05/03 06:54:26 jinmei Exp $
2 .\"
3 .\" Copyright (C) 2002 WIDE Project.
4 .\" All rights reserved.
5 .\" 
6 .\" Redistribution and use in source and binary forms, with or without
7 .\" modification, are permitted provided that the following conditions
8 .\" are met:
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.
17 .\" 
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
28 .\" SUCH DAMAGE.
29 .\"
30 .Dd July 29, 2004
31 .Dt DHCP6C.CONF 5
32 .Os KAME
33 .\"
34 .Sh NAME
35 .Nm dhcp6c.conf
36 .Nd DHCPv6 client configuration file
37 .\"
38 .Sh SYNOPSIS
39 .Pa /usr/local/etc/dhcp6c.conf
40 .\"
41 .Sh DESCRIPTION
42 The
43 .Nm
44 file contains configuration information for KAME's DHCPv6 client,
45 .Nm dhcp6c .
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,
50 tabs and newlines.
51 In some cases a set of statements is combined with a pair of brackets,
52 which is regarded as a single token.
53 Lines beginning with
54 .Ql #
55 are comments.
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
59 .Ar fxp0
60 and
61 .Ar gif1.
62 .\"
63 .Sh DHCPv6 options
64 Some configuration statements take the description of a DHCPv6 option
65 as an argument.
66 The followings are the format and description of available DHCPv6
67 options.
68 .Bl -tag -width Ds -compact
69 .It Xo
70 .Ic domain-name-servers
71 .Xc
72 means a Domain Name Server option.
73 .It Xo
74 .Ic domain-name
75 .Xc
76 means a domain name option.
77 .It Xo
78 .Ic ntp-servers
79 .Xc
80 means an NTP server option.
81 As of this writing, the option type for this option is not officially
82 assigned.
83 .Nm dhcp6c
84 will reject this option unless it is explicitly built to accept the option.
85 .It Xo
86 .Ic sip-server-address
87 .Xc
88 means a SIP Server address option.
89 .It Xo
90 .Ic sip-server-domain-name
91 .Xc
92 means a SIP server domain name option.
93 .It Xo
94 .Ic nis-server-address
95 .Xc
96 means a NIS Server address option.
97 .It Xo
98 .Ic nis-domain-name
99 .Xc
100 means a NIS domain name option.
101 .It Xo
102 .Ic nisp-server-address
104 means a NIS+ Server address option.
105 .It Xo
106 .Ic nisp-domain-name
108 means a NIS+ domain name option.
109 .It Xo
110 .Ic bcmcs-server-address
112 means a BCMCS Server address option.
113 .It Xo
114 .Ic bcmcs-server-domain-name
116 means a BCMCS server domain name option.
117 .It Ic ia-pd Ar ID
118 means an IA_PD
119 .Pq Identity Association for Prefix Delegation
120 option.
121 .Ar ID
122 is a decimal number of the IAID
123 .Pq see below about identity associations .
124 .It Ic ia-na Ar ID
125 means an IA_PD
126 .Pq Identity Association for Non-temporary Addresses
127 option.
128 .Ar ID
129 is a decimal number of the IAID
130 .Pq see below about identity associations .
131 .It Ic rapid-commit
132 means a rapid-commit option.
133 .It Ic authentication Ar authname
134 means an authentication option.
135 .Ar authname
136 is a string specifying parameters of the authentication protocol.
138 .Ic authentication
139 statement for
140 .Ar authname
141 must be provided.
144 .Sh Interface statement
145 An interface statement specifies configuration parameters on the
146 interface.
147 The generic format of an interface statement is as follows:
148 .Bl -tag -width Ds -compact
149 .It Xo
150 .Ic interface Ar interface
152 .Ar substatements
155 The followings are possible
156 .Ar substatements
157 in an interface statement.
158 .Bl -tag -width Ds -compact
159 .It Xo
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
165 specification,
166 in which case the appearance of the options is limited to be compliant
167 with the specification.
169 .Ar send-options
170 is a comma-separated list of options,
171 each of which should be specified as described above.
172 Multiple
173 .Ic send
174 statements can also be specified,
175 in which case all the specified options will be sent.
177 When
178 .Ic rapid-commit
179 is specified,
180 .Nm dhcp6c
181 will include a rapid-commit option in solicit messages and wait for
182 an immediate reply instead of advertisements.
184 When
185 .Ic ia-pd
186 is specified,
187 .Nm dhcp6c
188 will initiate prefix delegation as a requesting router by 
189 including an IA_PD option with the specified
190 .Ar ID
191 in solicit messages.
193 When
194 .Ic ia-na
195 is specified,
196 .Nm dhcp6c
197 will initiate stateful address assignment by 
198 including an IA_NA option with the specified
199 .Ar ID
200 in solicit messages.
202 In either case, a corresponding identity association statement
203 must exist with the same
204 .Ar ID .
205 .It Ic request Ar request-options ;
206 This statement specifies DHCPv6 options to be included in an
207 option-request option.
208 .Ar request-options
209 is a comma-separated list of options,
210 which can consist of the following options.
211 .Bl -tag -width Ds -compact
212 .It Xo
213 .Ic domain-name-servers
215 requests a list of Domain Name Server addresses.
216 .It Xo
217 .Ic domain-name
219 requests a DNS search path.
220 .It Xo
221 .Ic ntp-servers
223 requests a list of NTP server addresses.
224 As of this writing, the option type for this option is not officially
225 assigned.
226 .Nm dhcp6c
227 will reject this option unless it is explicitly built to accept the option.
228 .It Xo
229 .Ic sip-server-address
231 requests a list of SIP server addresses.
232 .It Xo
233 .Ic sip-domain-name
235 requests a SIP server domain name.
236 .It Xo
237 .Ic nis-server-address
239 requests a list of NIS server addresses.
240 .It Xo
241 .Ic nis-domain-name
243 requests a NIS domain name.
244 .It Xo
245 .Ic nisp-server-address
247 requests a list of NIS+ server addresses.
248 .It Xo
249 .Ic nisp-domain-name
251 requests a NIS+ domain name.
252 .It Xo
253 .Ic bcmcs-server-address
255 requests a list of BCMCS server addresses.
256 .It Xo
257 .Ic bcmcs-domain-name
259 requests a BCMCS domain name.
260 .It Xo
261 .Ic refreshtime
263 means an information refresh time option.
264 This can only be specified when sent with information-request
265 messages;
266 .Nm dhcp6c
267 will ignore this option for other messages.
269 Multiple
270 .Ic request
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
275 .Nm dhcp6c
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
282 .Nm dhcp6c
283 on a certain condition including when the daemon receives a reply
284 message.
285 .Ar script-name
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
292 Identity association
293 .Pq IA
294 is a key notion of DHCPv6.
295 An IA is uniquely identified in a client by a pair of IA type and
296 IA identifier
297 .Pq IAID .
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
304 .It Xo
305 .Ic id-assoc Ar type Op Ar ID
307 .Ar substatements
310 .Ar type
311 is a string for the type of this IA.
312 The current implementation supports
313 .Ql Ic na
314 (non-temporary address allocation)
315 .Ql Ic pd 
316 (prefix delegation) for the IA type.
317 .Ar ID
318 is a decimal number of IAID.
319 If omitted, the value 0 will be used by default.
320 .Ar substatements
321 is a sequence of statements that specifies configuration parameters
322 for this IA.
323 Each statement may or may not be specific to the type of IA.
325 The followings are possible
326 .Ar substatements
327 for an IA of type
328 .Ic na .
329 .Bl -tag -width Ds -compact
330 .It Xo
331 .Ic address Ar ipv6-address pltime Op Ar vltime ;
333 specifies an address and related parameters that the client wants to be
334 allocated.
335 Multiple addresses can be specified, each of which is described as a
336 separate
337 .Ic address
338 substatement.
339 .Nm dhcp6c
340 will include all the addresses
341 .Pq and related parameters
342 in Solicit messages,
343 as an IA_NA prefix option encapsulated in the corresponding IA_NA
344 option.
345 Note, however, that the server may or may not respect the specified
346 prefix parameters.
347 For parameters of the
348 .Ic address
349 substatement,
351 .Xr dhcp6s.conf 5 .
354 The followings are possible
355 .Ar substatements
356 for an IA of type
357 .Ic pd .
358 .Bl -tag -width Ds -compact
359 .It Xo
360 .Ar prefix_interface_statement
362 specifies the client's local configuration of how delegated prefixes
363 should be used
364 .Pq see below .
365 .It Ic prefix Ar ipv6-prefix pltime Op Ar vltime ;
366 specifies a prefix and related parameters that the client wants to be
367 delegated.
368 Multiple prefixes can be specified, each of which is described as a
369 separate
370 .Ic prefix
371 substatement.
372 .Nm dhcp6c
373 will include all the prefixes
374 .Pq and related parameters
375 in Solicit messages,
376 as an IA_PD prefix option encapsulated in the corresponding IA_PD
377 option.
378 Note, however, that the server may or may not respect the specified
379 prefix parameters.
380 For parameters of the
381 .Ic prefix
382 substatement,
384 .Xr dhcp6s.conf 5 .
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
393 .Ic pd .
394 The generic format of an interface statement is as follows:
395 .Bl -tag -width Ds -compact
396 .It Xo
397 .Ic prefix-interface Ar interface
399 .Ar substatements
402 When an IPv6 prefix is delegated from a DHCPv6 server,
403 .Nm dhcp6c
404 will assign a prefix on the
405 .Ar interface
406 unless the interface receives the DHCPv6 message that contains the prefix
407 with the delegated prefix and the parameters provided in
408 .Ar substatements .
409 Possible substatements are as follows:
410 .Bl -tag -width Ds -compact
411 .It Xo
412 .Ic sla-id Ar ID
415 This statement specifies the identifier value of the site-level aggregator
416 .Pq SLA
417 on the interface.
418 .Ar ID
419 must be a decimal integer which fits in the length of SLA IDs
420 .Pq see below .
421 For example,
423 .Ar ID
424 is 1 and the client is delegated an IPv6 prefix 2001:db8:ffff::/48,
425 .Nm dhcp6c
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
429 .Ar interface .
430 .It Xo
431 .Ic sla-len Ar length
434 This statement specifies the length of the SLA ID in bits.
435 .Ar length
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
447 .It Xo
448 .Ic authentication Ar authname
450 .Ar substatements
453 .Ar authname
454 is a string which is unique among all authentication statements in the
455 configuration file.
456 It will specify a particular set of authentication parameters when
457 .Ic authentication
458 option is specified in the
459 .Ic interface
460 statement.
461 Possible substatements of the
462 .Ic authentication
463 statement are as follows:
464 .Bl -tag -width Ds -compact
465 .It Xo
466 .Ic protocol Ar authprotocol
469 specifies the authentication protocol.
470 Currently, the only available protocol as
471 .Ar authprotocol
473 .Ic delayed ,
474 which means the DHCPv6 delayed authentication protocol.
475 .It Xo
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:
482 .Ic hmac-md5 ,
483 .Ic HMAC-MD5 ,
484 .Ic hmacmd5 ,
486 .Ic HMACMD5 .
487 This substatement can be omitted.
488 In this case,
489 HMAC-MD5 will be used as the algorithm.
490 .It Xo
491 .Ic rdm Ar replay-detection-method
494 specifies the replay protection method for this authentication.
495 Currently, the only available method is
496 .Ic monocounter ,
497 which means the use of a monotonically increasing counter.
498 If this method is specified,
499 .Ic dhcp6c
500 will use an NTP-format timestamp when it authenticates the message.
501 This substatement can be omitted,
502 in which case
503 .Ic monocounter
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
513 .It Xo
514 .Ic keyinfo Ar keyname
516 .Ar substatements
519 .Ar keyname
520 is an arbitrary string.
521 It does not affect client's behavior but is provided for readability
522 of log messages.
523 Possible substatements of the
524 .Ic keyinfo
525 statement are as follows:
526 .Bl -tag -width Ds -compact
527 .It Xo
528 .Ic realm Ar \(dqrealmname\(dq
531 specifies the DHCP realm.
532 .Ar realmname
533 is an arbitrary string,
534 but is typically expected to be a domain name like \(dqkame.net\(dq .
535 .It Xo
536 .Ic keyid Ar ID
539 specifies the key identifier,
540 .Ar ID ,
541 as a decimal number.
542 A secret key is uniquely identified within the client by the DHCP
543 realm and the key identifier.
544 .It Xo
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.
551 .It Xo
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 ,
559 .Ar mm-dd HH:MM ,
561 .Ar HH:MM ,
562 where
563 .Ar yyyy
564 is the year with century (e.g., 2004),
565 .Ar mm
566 is the month,
567 .Ar dd
568 is the day of the month,
569 .Ar HH
570 is the hour of 24-hour clock,
572 .Ar MM
573 is the minute,
574 each of which is given as a decimal number.
575 Additionally,
576 a special keyword
577 .Ic forever
578 can be specified as
579 .Ar expiration-time ,
580 which means the key has an infinite lifetime and never expires.
581 This substatement can be omitted,
582 in which case
583 .Ic forever
584 will be used by default.
588 .Sh Examples
589 The followings are a sample configuration to be delegated an IPv6
590 prefix from an upstream service provider.
591 With this configuration
592 .Nm dhcp6c
593 will send solicit messages containing an IA_PD option,
594 with an IAID 0,
595 on to an upstream PPP link,
596 .Ar ppp0 .
597 After receiving some prefixes from a server,
598 .Nm dhcp6c
599 will then configure derived IPv6 prefixes with the SLA ID 1 on a
600 local ethernet interface,
601 .Ar ne0 .
602 Note that the IAID for the
603 .Ic id-assoc
604 statement is 0 according to the default.
605 .Bd -literal -offset
606 interface ppp0 {
607         send ia-pd 0;
610 id-assoc pd {
611         prefix-interface ne0 {
612                 sla-id 1;
613         };
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:
620 .Bd -literal -offset
621 keyinfo kame-key {
622         realm "kame.net";
623         keyid 1;
624         secret "5pvW2g48OHPvkYMJSw0vZA==";
628 One easy way of generating a new secret in the base64 format is to
629 execute the
630 .Xr openssl 1
631 command (when available) as follows,
632 .Bd -literal -offset
633 % openssl rand -base64 16
636 and copy the output to the
637 .Nm dhcp6c.conf
638 file.
640 To include an authentication option for DHCPv6 authentication,
642 .Ic interface
643 statement should be modified and an
644 .Ic authentication
645 statement should be added as follows:
646 .Bd -literal -offset
647 interface ppp0 {
648         send ia-pd 0;
649         send authentication kame;
652 authentication kame {
653         protocol delayed;
657 .Bd -literal -offset
658 interface fxp0 {
659         send ia-na 0;
662 .Sh SEE ALSO
663 .Xr dhcp6s.conf 5
664 .Xr dhcp6c 8
666 .Sh HISTORY
669 configuration file first appeared in the WIDE/KAME IPv6 protocol
670 stack kit.