NAME

dhcp6s.conf - DHCPv6 server configuration file

SYNOPSIS

/etc/wide-dhcpv6/dhcp6s.conf

DESCRIPTION

The dhcp6s.conf file contains configuration information for KAME’s DHCPv6
server, dhcp6s. The configuration file consists of a sequence of
statements terminated by a semi-colon (‘;’). Statements are composed of
tokens separated by white space, which can be any combination of blanks,
tabs and newlines. In some cases a set of statements is combined with a
pair of brackets, which is regarded as a single token. Lines beginning
with ‘#’ are comments.

Interfacespecification

There are some statements that may or have to specify interface.
Interfaces are specified in the form of "name unit", such as fxp0 and
gif1.

Includestatement

An include statement specifies another configuration file to be included.
The format of an include statement is as follows:
include"filename";
Where "filename" is the name (full path) of the file to be
included.

Optionstatement

An option statement specifies configuration parameters provided for every
client. The format of the statement is as follows.
optionoption-name [option-value] ;
The following options can be specified in an option statement.
domain-name-serversdns-address [dns-addresses...];
provides DNS server address(es). Each dns-address must
be a numeric IPv6 address. Multiple server addresses can
also be specified by a sequence of these statements.
domain-name"dns-name";
provides a domain name of a DNS search path. Multiple
names in the path can be specified by a sequence of these
statements.
ntp-serversntp-address [ntp-addresses...];
provides NTP server address(es). Each ntp-address must
be a numeric IPv6 address. Multiple server addresses can
also be specified by a sequence of these statements.
sip-server-addresssip-server-address [sip-server-addresses...];
provides SIP server address(es). Each sip-server-address
must be a numeric IPv6 address. Multiple server
addresses can also be specified by a sequence of these
statements.
sip-server-domain-name"sip-server-domain-name";
provides a domain name of a SIP server. Multiple names
in the path can be specified by a sequence of these
statements.
nis-server-addressnis-server-address [nis-server-addresses...];
provides NIS server address(es). Each nis-server-address
must be a numeric IPv6 address. Multiple server
addresses can also be specified by a sequence of these
statements.
nis-domain-name"nis-domain-name";
provides a NIS domain name. Multiple names in the path
can be specified by a sequence of these statements.
nisp-server-addressnisp-server-address
[nisp-server-addresses...];
provides NIS+ server address(es). Each
nisp-server-address must be a numeric IPv6 address.
Multiple server addresses can also be specified by a
sequence of these statements.
nisp-domain-name"nisp-domain-name";
provides a NIS+ domain name. Multiple names in the path
can be specified by a sequence of these statements.
bcmcs-server-addressbcmcs-server-address
[bcmcs-server-addresses...];
provides BCMCS server address(es). Each
bcmcs-server-address must be a numeric IPv6 address.
Multiple server addresses can also be specified by a
sequence of these statements.
bcmcs-server-domain-name"bcmcs-server-domain-name";
provides a domain name of a BCMCS server. Multiple names
in the path can be specified by a sequence of these
statements.
refreshtimeinterval;
specifies the refresh time of stateless information that
does not have particular lease duration in seconds. This
option is only applicable to stateless configuration by
information-request and reply exchanges.

Interfacestatement

An interface statement specifies configuration parameters on the
interface. The generic format of an interface statement is as follows:
interfaceinterface { substatements };
The followings are possible substatements in an interface
statement.
allowallow-options ;
This statement specifies DHCPv6 options accepted by the
server. Currently only rapid-commit can be specified in
an allow statement, which specifies the server to accept
a rapid-commit option in solicit messages.
preferencepref;
This statement sets the server’s preference value on the
interface to the value pref. The specified value will be
contained in a preference option of advertise messages.
The preference value must be a decimal integer and be
between 0 and 255 (inclusive.)
address-poolpoolpltime [vltime];
This statement assigns an address pool pool to the
interface. When dhcp6s.conf receives a allocation request
for an IA-NA, it assigns one IPv6 address from this pool.
The specified pool name will be defined in a pool
statement. Regarding the pltime and vltime , please see
the explanation in the prefix substatement in host
statement section.

Hoststatement

A host statement specifies configuration parameters for a particular
client. The generic format of a host statement is as follows:
hostname { substatements };
name is an arbitrary string. It does not affect server’s
behavior but is provided for readability of log messages.
Possible substatements are as follows.
duidID;
This statement defines the client’s DHCP unique
identifier (DUID). ID is a colon-separated hexadecimal
sequence where each separated part must be composed of
two hexadecimal values. This statement is used to
identify a particular host by the server and must be
included in a host statement.
prefixipv6-prefixpltime [vltime];
This statement specifies an IPv6 prefix to be delegated
to the client. ipv6-prefix is a string representing a
valid IPv6 prefix (see the example below). pltime and
vltime are preferred and valid lifetimes of the prefix,
respectively. When the latter is omitted, it will be set
to the same value of pltime. A positive decimal number or
a special string infinity can be specified as a lifetime.
A decimal number provides the lifetime in seconds, while
infinity means the corresponding lifetime never expires.
When both lifetimes are specified, pltime must not be
larger than vltime. Multiple prefixes can be specified,
each of which is given by a single prefix statement. In
that case, all or some of the specified prefixes will be
delegated to the client, based on required parameters by
the client.
addressipv6-addresspltime [vltime];
This statement specifies an IPv6 address to be assigned
to the client. Everything is same as prefix option,
except that you do not need specify prefix length.
delayedkeykeyname;
This statement specifies a secret key shared with the
client for the DHCPv6 delayed authentication protocol.
keyname is a string that identifies a particular set of
key parameters. A separate keyinfo statement for keyname
must be provided in the configuration file. When this
statement is specified and the client includes an
authentication option for the delayed authentication
protocol in a Solicit message, dhcp6s will perform the
authentication protocol for succeeding message exchanges.

Poolstatement

A pool statement specifies an address pool for a particular interface.
The generic format of a pool statement is as follows:
poolname { substatements; };
name is an arbitrary string. It does not affect server’s
behavior but is provided for readability of log messages.
Possible substatements are as follows.
rangemin-addrtomax-addr
This substatement defines the range of addresses
allocated for the pool, i.e. from min-addr to max-addr.

Keyinfostatement

This statement defines a secret key shared with a client to authenticate
DHCPv6 messages. The format and the description of this statement is
provided in dhcp6c.conf(5). One important difference in the server
configuration is, however, the keyname is referred from a host statement
as described above.

Examples

The followings are a sample configuration to provide a DNS server address
for every client as well as to delegate a permanent IPv6 prefix
2001:db8:1111::/48 to a client whose DUID is 00:01:00:01:aa:bb.
option domain-name-servers 2001:db8::35;
host kame {
duid 00:01:00:01:aa:bb;
prefix 2001:db8:1111::/48 infinity;
};
If a shared secret should be configured in both the server and the client
for DHCPv6 authentication, it would be specified in the configuration
file as follows:
keyinfo kame {
realm "kame.net";
keyid 1;
secret "5pvW2g48OHPvkYMJSw0vZA==";
};
And the host statement would be modified as follows:
host kame {
duid 00:01:00:01:aa:bb;
prefix 2001:db8:1111::/48 infinity;
delayedkey kame;
};