mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-09-03 07:25:18 +00:00
Merge branch 'trac3620'
This commit is contained in:
@@ -6,8 +6,8 @@
|
|||||||
<chapter id="kea-config">
|
<chapter id="kea-config">
|
||||||
<title>Kea configuration</title>
|
<title>Kea configuration</title>
|
||||||
|
|
||||||
<para>Depending on configuration backend chosen (see <xref
|
<para>Depending on the configuration backend chosen (see <xref
|
||||||
linkend="dhcp-config-backend"/>), configuration mechanisms are different. The
|
linkend="dhcp-config-backend"/>), the configuration mechanisms are different. The
|
||||||
following sections describe details of the different configuration backends. Note
|
following sections describe details of the different configuration backends. Note
|
||||||
that only one configuration backend can be used and its selection is
|
that only one configuration backend can be used and its selection is
|
||||||
made when the configure script is run.</para>
|
made when the configure script is run.</para>
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
It assumes that the servers are started from the command line
|
It assumes that the servers are started from the command line
|
||||||
(either directly or using a script, e.g. <filename>keactrl</filename>).
|
(either directly or using a script, e.g. <filename>keactrl</filename>).
|
||||||
The JSON backend uses certain signals to influence Kea. The
|
The JSON backend uses certain signals to influence Kea. The
|
||||||
configuration file is specified upon startup using -c parameter.</para>
|
configuration file is specified upon startup using the -c parameter.</para>
|
||||||
|
|
||||||
<section id="json-format">
|
<section id="json-format">
|
||||||
<title>JSON syntax</title>
|
<title>JSON syntax</title>
|
||||||
@@ -106,7 +106,7 @@
|
|||||||
rest of this guide will showcase only the subset of parameters appropriate for a given
|
rest of this guide will showcase only the subset of parameters appropriate for a given
|
||||||
context. For example, when discussing the IPv6 subnets configuration in
|
context. For example, when discussing the IPv6 subnets configuration in
|
||||||
DHCPv6, only subnet6 parameters will be mentioned. It is implied that
|
DHCPv6, only subnet6 parameters will be mentioned. It is implied that
|
||||||
remaining elements (the global map that holds Dhcp6, Logging and possibly
|
the remaining elements (the global map that holds Dhcp6, Logging and possibly
|
||||||
DhcpDdns) are present, but they are omitted for clarity. Usually, locations
|
DhcpDdns) are present, but they are omitted for clarity. Usually, locations
|
||||||
where extra parameters may appear are denoted with an ellipsis.</para>
|
where extra parameters may appear are denoted with an ellipsis.</para>
|
||||||
</section>
|
</section>
|
||||||
@@ -114,11 +114,11 @@
|
|||||||
<section>
|
<section>
|
||||||
<title>Simplified Notation</title>
|
<title>Simplified Notation</title>
|
||||||
|
|
||||||
<para>It is sometimes convenient to refer to specific element in the
|
<para>It is sometimes convenient to refer to a specific element in the
|
||||||
configuration hierarchy. Each hierarchy level is separated by a slash.
|
configuration hierarchy. Each hierarchy level is separated by a slash.
|
||||||
If there is an array, a specific instance within that array is referred by
|
If there is an array, a specific instance within that array is referenced by
|
||||||
a number in square brackets (with numbering starting at zero). For example, in the above configuration the
|
a number in square brackets (with numbering starting at zero). For example, in the above configuration the
|
||||||
valid-lifetime in Dhcp6 component can be referred to as
|
valid-lifetime in the Dhcp6 component can be referred to as
|
||||||
Dhcp6/valid-lifetime, the first interface for the DHCPv4 server as
|
Dhcp6/valid-lifetime, the first interface for the DHCPv4 server as
|
||||||
Dhcp4/interfaces[0] and the pool in the first subnet defined in the DHCPv6
|
Dhcp4/interfaces[0] and the pool in the first subnet defined in the DHCPv6
|
||||||
configuration as Dhcp6/subnet6[0]/pool.</para>
|
configuration as Dhcp6/subnet6[0]/pool.</para>
|
||||||
|
@@ -16,7 +16,7 @@
|
|||||||
necessary conversation with those servers to update the DNS data.
|
necessary conversation with those servers to update the DNS data.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
In order to match a request to appropriate DNS servers, D2 must have a
|
In order to match a request to the appropriate DNS servers, D2 must have a
|
||||||
catalog of servers from which to select. In fact, D2 has two such catalogs,
|
catalog of servers from which to select. In fact, D2 has two such catalogs,
|
||||||
one for forward DNS and one for reverse DNS; these catalogs are referred
|
one for forward DNS and one for reverse DNS; these catalogs are referred
|
||||||
to as DDNS Domain Lists. Each list consists of one or more named DDNS
|
to as DDNS Domain Lists. Each list consists of one or more named DDNS
|
||||||
@@ -55,7 +55,7 @@
|
|||||||
<command>kea-dhcp-ddns</command> is the Kea DHCP-DDNS server
|
<command>kea-dhcp-ddns</command> is the Kea DHCP-DDNS server
|
||||||
and, due to the nature of DDNS, it is run alongside either the
|
and, due to the nature of DDNS, it is run alongside either the
|
||||||
DHCPv4 or DHCPv6 components (or both). Like other parts of
|
DHCPv4 or DHCPv6 components (or both). Like other parts of
|
||||||
Kea, is a separate binary that can be run on its own or through
|
Kea, it is a separate binary that can be run on its own or through
|
||||||
<command>keactrl</command> (see <xref linkend="keactrl"/>). In
|
<command>keactrl</command> (see <xref linkend="keactrl"/>). In
|
||||||
normal operation, controlling <command>kea-dhcp-ddns</command>
|
normal operation, controlling <command>kea-dhcp-ddns</command>
|
||||||
with <command>keactrl</command> is recommended. However, it is also
|
with <command>keactrl</command> is recommended. However, it is also
|
||||||
@@ -74,7 +74,7 @@
|
|||||||
<simpara>
|
<simpara>
|
||||||
<command>-d</command> - specifies whether the server
|
<command>-d</command> - specifies whether the server
|
||||||
logging should be switched to debug/verbose mode. In verbose mode,
|
logging should be switched to debug/verbose mode. In verbose mode,
|
||||||
the logging severity and debuglevel specified in a configuration
|
the logging severity and debuglevel specified in the configuration
|
||||||
file are ignored and "debug" severity and the maximum debuglevel
|
file are ignored and "debug" severity and the maximum debuglevel
|
||||||
(99) are assumed. The flag is convenient, for temporarily
|
(99) are assumed. The flag is convenient, for temporarily
|
||||||
switching the server into maximum verbosity, e.g. when
|
switching the server into maximum verbosity, e.g. when
|
||||||
@@ -330,7 +330,7 @@ corresponding values in the DHCP servers' "dhcp-ddns" configuration section.
|
|||||||
"DhcpDdns": {
|
"DhcpDdns": {
|
||||||
"tsig_keys": [
|
"tsig_keys": [
|
||||||
<userinput> {
|
<userinput> {
|
||||||
"name": "key.four.example.com",
|
"name": "key.four.example.com.",
|
||||||
"algorithm": "HMAC-SHA224",
|
"algorithm": "HMAC-SHA224",
|
||||||
"secret": "bZEG7Ow8OgAUPfLWV3aAUQ=="
|
"secret": "bZEG7Ow8OgAUPfLWV3aAUQ=="
|
||||||
}</userinput>
|
}</userinput>
|
||||||
@@ -376,7 +376,7 @@ corresponding values in the DHCP servers' "dhcp-ddns" configuration section.
|
|||||||
by zone and a DDNS Domain only defines a single zone.
|
by zone and a DDNS Domain only defines a single zone.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The section describes how to add Forward DDNS Domains. Repeat these
|
This section describes how to add Forward DDNS Domains. Repeat these
|
||||||
steps for each Forward DDNS Domain desired. Each Forward DDNS Domain
|
steps for each Forward DDNS Domain desired. Each Forward DDNS Domain
|
||||||
has the following parameters:
|
has the following parameters:
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
@@ -418,7 +418,7 @@ corresponding values in the DHCP servers' "dhcp-ddns" configuration section.
|
|||||||
"forward_ddns": {
|
"forward_ddns": {
|
||||||
"ddns_domains": [
|
"ddns_domains": [
|
||||||
<userinput>{
|
<userinput>{
|
||||||
"name": "other.example.com",
|
"name": "other.example.com.",
|
||||||
"key_name": "",
|
"key_name": "",
|
||||||
"dns_servers": [
|
"dns_servers": [
|
||||||
]
|
]
|
||||||
@@ -437,7 +437,7 @@ corresponding values in the DHCP servers' "dhcp-ddns" configuration section.
|
|||||||
<section id="add-forward-dns-servers">
|
<section id="add-forward-dns-servers">
|
||||||
<title>Adding Forward DNS Servers</title>
|
<title>Adding Forward DNS Servers</title>
|
||||||
<para>
|
<para>
|
||||||
The section describes how to add DNS servers to a Forward DDNS Domain.
|
This section describes how to add DNS servers to a Forward DDNS Domain.
|
||||||
Repeat them for as many servers as desired for a each domain.
|
Repeat them for as many servers as desired for a each domain.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
@@ -468,7 +468,7 @@ corresponding values in the DHCP servers' "dhcp-ddns" configuration section.
|
|||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
To create a new forward DNS Server, one must add a new server
|
To create a new forward DNS Server, one must add a new server
|
||||||
element to the domain and fill its parameters. If for
|
element to the domain and fill in its parameters. If for
|
||||||
example the service is running at "172.88.99.10", then set it as
|
example the service is running at "172.88.99.10", then set it as
|
||||||
follows:
|
follows:
|
||||||
<screen>
|
<screen>
|
||||||
@@ -476,7 +476,7 @@ corresponding values in the DHCP servers' "dhcp-ddns" configuration section.
|
|||||||
"forward_ddns": {
|
"forward_ddns": {
|
||||||
"ddns_domains": [
|
"ddns_domains": [
|
||||||
{
|
{
|
||||||
"name": "other.example.com",
|
"name": "other.example.com.",
|
||||||
"key_name": "",
|
"key_name": "",
|
||||||
"dns_servers": [
|
"dns_servers": [
|
||||||
<userinput>{
|
<userinput>{
|
||||||
@@ -535,7 +535,7 @@ corresponding values in the DHCP servers' "dhcp-ddns" configuration section.
|
|||||||
single zone.
|
single zone.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The section describes how to add Reverse DDNS Domains. Repeat these
|
This section describes how to add Reverse DDNS Domains. Repeat these
|
||||||
steps for each Reverse DDNS Domain desired. Each Reverse DDNS Domain
|
steps for each Reverse DDNS Domain desired. Each Reverse DDNS Domain
|
||||||
has the following parameters:
|
has the following parameters:
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
@@ -603,8 +603,8 @@ corresponding values in the DHCP servers' "dhcp-ddns" configuration section.
|
|||||||
<section id="add-reverse-dns-servers">
|
<section id="add-reverse-dns-servers">
|
||||||
<title>Adding Reverse DNS Servers</title>
|
<title>Adding Reverse DNS Servers</title>
|
||||||
<para>
|
<para>
|
||||||
The section describes how to add DNS servers to a Reverse DDNS Domain.
|
This section describes how to add DNS servers to a Reverse DDNS Domain.
|
||||||
Repeat them for as many servers as desired for a each domain.
|
Repeat them for as many servers as desired for each domain.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Reverse DNS Server entries represents a actual DNS servers which
|
Reverse DNS Server entries represents a actual DNS servers which
|
||||||
@@ -633,7 +633,7 @@ corresponding values in the DHCP servers' "dhcp-ddns" configuration section.
|
|||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
To create a new reverse DNS Server, one must first add a new server
|
To create a new reverse DNS Server, one must first add a new server
|
||||||
element to the domain and fill its parameters. If for
|
element to the domain and fill in its parameters. If for
|
||||||
example the service is running at "172.88.99.10", then set it as
|
example the service is running at "172.88.99.10", then set it as
|
||||||
follows:
|
follows:
|
||||||
<screen>
|
<screen>
|
||||||
|
@@ -30,7 +30,7 @@
|
|||||||
<simpara>
|
<simpara>
|
||||||
<command>-d</command> - specifies whether the server
|
<command>-d</command> - specifies whether the server
|
||||||
logging should be switched to debug/verbose mode. In verbose mode,
|
logging should be switched to debug/verbose mode. In verbose mode,
|
||||||
the logging severity and debuglevel specified in a configuration
|
the logging severity and debuglevel specified in the configuration
|
||||||
file are ignored and "debug" severity and the maximum debuglevel
|
file are ignored and "debug" severity and the maximum debuglevel
|
||||||
(99) are assumed. The flag is convenient, for temporarily
|
(99) are assumed. The flag is convenient, for temporarily
|
||||||
switching the server into maximum verbosity, e.g. when
|
switching the server into maximum verbosity, e.g. when
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
Kea configuration backend. (Kea configuration using any other
|
Kea configuration backend. (Kea configuration using any other
|
||||||
backends is outside of scope of this document.) Before DHCPv4
|
backends is outside of scope of this document.) Before DHCPv4
|
||||||
is started, its configuration file has to be created. The
|
is started, its configuration file has to be created. The
|
||||||
basic configuration looks as follows:
|
basic configuration is as follows:
|
||||||
<screen>
|
<screen>
|
||||||
{
|
{
|
||||||
# DHCPv4 configuration starts in this line
|
# DHCPv4 configuration starts in this line
|
||||||
@@ -140,15 +140,15 @@ and ends with the corresponding closing brace (in the above example,
|
|||||||
the brace after the last comment). Everything defined between those
|
the brace after the last comment). Everything defined between those
|
||||||
lines is considered to be the Dhcp4 configuration.</para>
|
lines is considered to be the Dhcp4 configuration.</para>
|
||||||
|
|
||||||
<para>In general case, the order in which those parameters appear does not
|
<para>In the general case, the order in which those parameters appear does not
|
||||||
matter. There are two caveats here though. The first one is to remember that
|
matter. There are two caveats here though. The first one is to remember that
|
||||||
the configuration file must be a well formed JSON. That means that parameters
|
the configuration file must be well formed JSON. That means that the parameters
|
||||||
for any given scope must be separate by a comma and there must not be a comma
|
for any given scope must be separated by a comma and there must not be a comma
|
||||||
after the last parameter. When reordering configuration file, keep in mind that
|
after the last parameter. When reordering a configuration file, keep in mind that
|
||||||
moving a parameter to or from the last position in a given scope may require
|
moving a parameter to or from the last position in a given scope may also require
|
||||||
moving the comma as well. The second caveat is that it is uncommon — although
|
moving the comma. The second caveat is that it is uncommon — although
|
||||||
legal JSON — to
|
legal JSON — to
|
||||||
repeat the same parameter multiple times. If that appears, the last occurrence of a
|
repeat the same parameter multiple times. If that happens, the last occurrence of a
|
||||||
given parameter in a given scope is used while all previous instances are
|
given parameter in a given scope is used while all previous instances are
|
||||||
ignored. This is unlikely to cause any confusion as there are no real life
|
ignored. This is unlikely to cause any confusion as there are no real life
|
||||||
reasons to keep multiple copies of the same parameter in your configuration
|
reasons to keep multiple copies of the same parameter in your configuration
|
||||||
@@ -166,21 +166,21 @@ look like this:
|
|||||||
As "<command>interfaces</command>" is not the last parameter in the configuration,
|
As "<command>interfaces</command>" is not the last parameter in the configuration,
|
||||||
a trailing comma is required.</para>
|
a trailing comma is required.</para>
|
||||||
<para>A number of other parameters
|
<para>A number of other parameters
|
||||||
follow. <command>valid-lifetime</command> defines how long the addresses (leases) given out by the
|
follow. <command>valid-lifetime</command> defines for how long the addresses (leases) given out by the
|
||||||
server are valid. If nothing changes, client that got the address is allowed to
|
server are valid. If nothing changes, a client that got an address is allowed to
|
||||||
use it for 4000 seconds. (Note that integer numbers are specified as is,
|
use it for 4000 seconds. (Note that integer numbers are specified as is,
|
||||||
without any quotes around them.) <command>renew-timer</command> and
|
without any quotes around them.) <command>renew-timer</command> and
|
||||||
<command>rebind-timer</command> are values that
|
<command>rebind-timer</command> are values that
|
||||||
define T1 and T2 timers that govern when the client will begin renewal and
|
define T1 and T2 timers that govern when the client will begin the renewal and
|
||||||
rebind procedures. Note that <command>renew-timer</command> and
|
rebind procedures. Note that <command>renew-timer</command> and
|
||||||
<command>rebind-timer</command> are optional. If they are not specified the
|
<command>rebind-timer</command> are optional. If they are not specified the
|
||||||
client will select values for T1 and T2 timers according to the
|
client will select values for T1 and T2 timers according to the
|
||||||
<ulink url="http://tools.ietf.org/html/rfc2131">RFC 2131</ulink>.</para>
|
<ulink url="http://tools.ietf.org/html/rfc2131">RFC 2131</ulink>.</para>
|
||||||
|
|
||||||
<para>The next couple lines define the lease database, the place where the server
|
<para>The next couple of lines define the lease database, the place where the server
|
||||||
stores its lease information. This particular example tells the server to use
|
stores its lease information. This particular example tells the server to use
|
||||||
<command>memfile</command>, which is the simplest (and fastest) database
|
<command>memfile</command>, which is the simplest (and fastest) database
|
||||||
backend. It uses in-memory database and stores leases on disk in a CSV
|
backend. It uses an in-memory database and stores leases on disk in a CSV
|
||||||
file. This is a very simple configuration. Usually, lease database configuration
|
file. This is a very simple configuration. Usually, lease database configuration
|
||||||
is more extensive and contains additional parameters. Note that
|
is more extensive and contains additional parameters. Note that
|
||||||
<command>lease-database</command>
|
<command>lease-database</command>
|
||||||
@@ -192,12 +192,12 @@ comma is present.</para>
|
|||||||
|
|
||||||
<para>Finally, we need to define a list of IPv4 subnets. This is the
|
<para>Finally, we need to define a list of IPv4 subnets. This is the
|
||||||
most important DHCPv4 configuration structure as the server uses that
|
most important DHCPv4 configuration structure as the server uses that
|
||||||
information to process clients' requests. It defines all subnets that
|
information to process clients' requests. It defines all subnets from
|
||||||
the server is expected to receive DHCP requests from. The subnets are
|
which the server is expected to receive DHCP requests. The subnets are
|
||||||
specified with the <command>subnet4</command> parameter. It is a list,
|
specified with the <command>subnet4</command> parameter. It is a list,
|
||||||
so it starts and ends with square brackets. Each subnet definition in
|
so it starts and ends with square brackets. Each subnet definition in
|
||||||
the list has several attributes associated with it, so is a structure
|
the list has several attributes associated with it, so it is a structure
|
||||||
and is opened and closed with braces. At minimum, a subnet definition
|
and is opened and closed with braces. At a minimum, a subnet definition
|
||||||
has to have at least two parameters: <command>subnet</command> (that
|
has to have at least two parameters: <command>subnet</command> (that
|
||||||
defines the whole subnet) and <command>pools</command> (which is a list of
|
defines the whole subnet) and <command>pools</command> (which is a list of
|
||||||
dynamically allocated pools that are governed by the DHCP server).</para>
|
dynamically allocated pools that are governed by the DHCP server).</para>
|
||||||
@@ -301,7 +301,7 @@ url="http://jsonviewer.stack.hu/"/>.
|
|||||||
<screen>
|
<screen>
|
||||||
"Dhcp4": { "lease-database": { <userinput>"type": "mysql"</userinput>, ... }, ... }
|
"Dhcp4": { "lease-database": { <userinput>"type": "mysql"</userinput>, ... }, ... }
|
||||||
</screen>
|
</screen>
|
||||||
Next, the name of the database is to hold the leases must be set: this is the
|
Next, the name of the database to hold the leases must be set: this is the
|
||||||
name used when the lease database was created (see <xref linkend="dhcp-mysql-database-create"/>
|
name used when the lease database was created (see <xref linkend="dhcp-mysql-database-create"/>
|
||||||
or <xref linkend="dhcp-pgsql-database-create"/>).
|
or <xref linkend="dhcp-pgsql-database-create"/>).
|
||||||
<screen>
|
<screen>
|
||||||
@@ -323,7 +323,7 @@ url="http://jsonviewer.stack.hu/"/>.
|
|||||||
access the database should be set:
|
access the database should be set:
|
||||||
<screen>
|
<screen>
|
||||||
"Dhcp4": { "lease-database": { <userinput>"user": "<replaceable>user-name</replaceable>"</userinput>,
|
"Dhcp4": { "lease-database": { <userinput>"user": "<replaceable>user-name</replaceable>"</userinput>,
|
||||||
<userinput>"password" "<replaceable>password</replaceable>"</userinput>,
|
<userinput>"password": "<replaceable>password</replaceable>"</userinput>,
|
||||||
... },
|
... },
|
||||||
... }
|
... }
|
||||||
</screen>
|
</screen>
|
||||||
@@ -357,7 +357,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<title>IPv4 Subnet Identifier</title>
|
<title>IPv4 Subnet Identifier</title>
|
||||||
<para>
|
<para>
|
||||||
The subnet identifier is a unique number associated with a particular subnet.
|
The subnet identifier is a unique number associated with a particular subnet.
|
||||||
In principle, it is used to associate clients' leases with respective subnets.
|
In principle, it is used to associate clients' leases with their respective subnets.
|
||||||
When a subnet identifier is not specified for a subnet being configured, it will
|
When a subnet identifier is not specified for a subnet being configured, it will
|
||||||
be automatically assigned by the configuration mechanism. The identifiers
|
be automatically assigned by the configuration mechanism. The identifiers
|
||||||
are assigned from 1 and are monotonically increased for each subsequent
|
are assigned from 1 and are monotonically increased for each subsequent
|
||||||
@@ -366,17 +366,17 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<para>
|
<para>
|
||||||
If there are multiple subnets configured with auto-generated identifiers and
|
If there are multiple subnets configured with auto-generated identifiers and
|
||||||
one of them is removed, the subnet identifiers may be renumbered. For example:
|
one of them is removed, the subnet identifiers may be renumbered. For example:
|
||||||
if there are four subnets and third is removed the last subnet will be assigned
|
if there are four subnets and the third is removed the last subnet will be assigned
|
||||||
identifier that the third subnet had before removal. As a result, the leases
|
the identifier that the third subnet had before removal. As a result, the leases
|
||||||
stored in the lease database for subnet 3 are now associated with
|
stored in the lease database for subnet 3 are now associated with
|
||||||
subnet 4, something that may have unexpected consequences. It is planned
|
subnet 4, something that may have unexpected consequences. It is planned
|
||||||
to implement the mechanism to preserve auto-generated subnet ids in a
|
to implement a mechanism to preserve auto-generated subnet ids in a
|
||||||
future version of Kea. However, the only remedy for this issue
|
future version of Kea. However, the only remedy for this issue
|
||||||
at present is to
|
at present is to
|
||||||
manually specify a unique identifier for each subnet.
|
manually specify a unique identifier for each subnet.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The following configuration will assign the arbitrary subnet
|
The following configuration will assign the specified subnet
|
||||||
identifier to the newly configured subnet:
|
identifier to the newly configured subnet:
|
||||||
|
|
||||||
<screen>
|
<screen>
|
||||||
@@ -425,7 +425,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
specified in this example.</para>
|
specified in this example.</para>
|
||||||
|
|
||||||
<para>Each <command>pool</command> is a structure that contains the parameters
|
<para>Each <command>pool</command> is a structure that contains the parameters
|
||||||
th describe a single pool. Currently there is only one parameter,
|
that describe a single pool. Currently there is only one parameter,
|
||||||
<command>pool</command>, which gives the range of addresses
|
<command>pool</command>, which gives the range of addresses
|
||||||
in the pool. Additional parameters will be added in future
|
in the pool. Additional parameters will be added in future
|
||||||
releases of Kea.</para>
|
releases of Kea.</para>
|
||||||
@@ -450,7 +450,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
</screen>
|
</screen>
|
||||||
The number of pools is not limited, but for performance reasons it is recommended to
|
The number of pools is not limited, but for performance reasons it is recommended to
|
||||||
use as few as possible. White space in pool definitions is ignored, so
|
use as few as possible. White space in pool definitions is ignored, so
|
||||||
spaces before and after hyphen are optional. They can be used to improve readability.
|
spaces before and after the hyphen are optional. They can be used to improve readability.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The server may be configured to serve more than one subnet:
|
The server may be configured to serve more than one subnet:
|
||||||
@@ -478,8 +478,8 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
When configuring a DHCPv4 server using prefix/length notation, please pay
|
When configuring a DHCPv4 server using prefix/length notation, please pay
|
||||||
attention to the boundary values. When specifying that the server should use
|
attention to the boundary values. When specifying that the server can use
|
||||||
a given pool, it will be able to allocate also first (typically network
|
a given pool, it will also be able to allocate the first (typically network
|
||||||
address) and the last (typically broadcast address) address from that pool.
|
address) and the last (typically broadcast address) address from that pool.
|
||||||
In the aforementioned example of pool 192.0.3.0/24, both 192.0.3.0 and
|
In the aforementioned example of pool 192.0.3.0/24, both 192.0.3.0 and
|
||||||
192.0.3.255 addresses may be assigned as well. This may be invalid in some
|
192.0.3.255 addresses may be assigned as well. This may be invalid in some
|
||||||
@@ -491,9 +491,9 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<title>Standard DHCPv4 options</title>
|
<title>Standard DHCPv4 options</title>
|
||||||
<para>
|
<para>
|
||||||
One of the major features of the DHCPv4 server is to provide configuration
|
One of the major features of the DHCPv4 server is to provide configuration
|
||||||
options to clients. Although there are several options that require
|
options to clients. Although there are several options that require
|
||||||
special behavior, most options are sent by the server only if the client
|
special behavior, most options are sent by the server only if the client
|
||||||
explicitly requested them. The following example shows how to
|
explicitly requests them. The following example shows how to
|
||||||
configure the addresses of DNS servers, which is one of the most frequently used
|
configure the addresses of DNS servers, which is one of the most frequently used
|
||||||
options. Options specified in this way are considered global and apply
|
options. Options specified in this way are considered global and apply
|
||||||
to all configured subnets.
|
to all configured subnets.
|
||||||
@@ -518,13 +518,13 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
option name. For a complete list of currently supported names,
|
option name. For a complete list of currently supported names,
|
||||||
see <xref linkend="dhcp4-std-options-list"/> below.
|
see <xref linkend="dhcp4-std-options-list"/> below.
|
||||||
The <command>code</command> parameter specifies the option code, which must match one of the
|
The <command>code</command> parameter specifies the option code, which must match one of the
|
||||||
values from that list. The next line specifies option space, which must always
|
values from that list. The next line specifies the option space, which must always
|
||||||
be set to "dhcp4" as these are standard DHCPv4 options. For
|
be set to "dhcp4" as these are standard DHCPv4 options. For
|
||||||
other option spaces, including custom option spaces, see <xref
|
other option spaces, including custom option spaces, see <xref
|
||||||
linkend="dhcp4-option-spaces"/>. The next line specifies the format in
|
linkend="dhcp4-option-spaces"/>. The next line specifies the format in
|
||||||
which the data will be entered: use of CSV (comma
|
which the data will be entered: use of CSV (comma
|
||||||
separated values) is recommended. The sixth line gives the actual value to
|
separated values) is recommended. The sixth line gives the actual value to
|
||||||
be sent to clients. Data is specified as a normal text, with
|
be sent to clients. Data is specified as normal text, with
|
||||||
values separated by commas if more than one value is
|
values separated by commas if more than one value is
|
||||||
allowed.
|
allowed.
|
||||||
</para>
|
</para>
|
||||||
@@ -625,8 +625,8 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
a server administrator must create a definition as described in
|
a server administrator must create a definition as described in
|
||||||
<xref linkend="dhcp4-custom-options"/> in the 'dhcp4' option space. This
|
<xref linkend="dhcp4-custom-options"/> in the 'dhcp4' option space. This
|
||||||
definition should match the option format described in the relevant
|
definition should match the option format described in the relevant
|
||||||
RFC but configuration mechanism would allow any option format as it has
|
RFC but the configuration mechanism will allow any option format as it has
|
||||||
no means to validate it at the moment.
|
no means to validate the format at the moment.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@@ -837,7 +837,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
"Dhcp4": {
|
"Dhcp4": {
|
||||||
"option-data": [
|
"option-data": [
|
||||||
{
|
{
|
||||||
<userinput>name "foo",
|
<userinput>"name": "foo",
|
||||||
"code": 222,
|
"code": 222,
|
||||||
"space": "dhcp4",
|
"space": "dhcp4",
|
||||||
"csv-format": true,
|
"csv-format": true,
|
||||||
@@ -853,7 +853,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
primitives (uint8, string, ipv4-address etc): it is possible to
|
primitives (uint8, string, ipv4-address etc): it is possible to
|
||||||
define an option comprising a number of existing primitives.
|
define an option comprising a number of existing primitives.
|
||||||
Assume we want to define a new option that will consist of
|
Assume we want to define a new option that will consist of
|
||||||
an IPv4 address, followed by unsigned 16 bit integer, followed by
|
an IPv4 address, followed by an unsigned 16 bit integer, followed by
|
||||||
a boolean value, followed by a text string. Such an option could
|
a boolean value, followed by a text string. Such an option could
|
||||||
be defined in the following way:
|
be defined in the following way:
|
||||||
<screen>
|
<screen>
|
||||||
@@ -891,14 +891,14 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
],
|
],
|
||||||
...
|
...
|
||||||
}</screen>
|
}</screen>
|
||||||
<command>csv-format</command> is set <command>true</command> to indicate
|
<command>csv-format</command> is set to <command>true</command> to indicate
|
||||||
that the <command>data</command> field comprises a command-separated list
|
that the <command>data</command> field comprises a command-separated list
|
||||||
of values. The values in the <command>data</command> must correspond to
|
of values. The values in the <command>data</command> must correspond to
|
||||||
the types set in the <command>record-types</command> field of the option
|
the types set in the <command>record-types</command> field of the option
|
||||||
definition.
|
definition.
|
||||||
</para>
|
</para>
|
||||||
<note>
|
<note>
|
||||||
<para>In general case, boolean values are specified as <command>true</command> or
|
<para>In the general case, boolean values are specified as <command>true</command> or
|
||||||
<command>false</command>, without quotes. Some specific boolean parameters may
|
<command>false</command>, without quotes. Some specific boolean parameters may
|
||||||
accept also <command>"true"</command>, <command>"false"</command>,
|
accept also <command>"true"</command>, <command>"false"</command>,
|
||||||
<command>0</command>, <command>1</command>, <command>"0"</command> and
|
<command>0</command>, <command>1</command>, <command>"0"</command> and
|
||||||
@@ -1172,19 +1172,19 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
</note>
|
</note>
|
||||||
<para>In certain cases it is useful to differentiate between different
|
<para>In certain cases it is useful to differentiate between different
|
||||||
types of clients and treat them differently. The process of doing
|
types of clients and treat them differently. The process of doing
|
||||||
classification is conducted in two steps. The first step is to assess
|
classification is conducted in two steps. The first step is to assess an
|
||||||
incoming packet and assign it to zero or more classes. This classification
|
incoming packet and assign it to zero or more classes. This classification
|
||||||
is currently simple, but is expected to grow in capability soon. Currently
|
is currently simple, but is expected to grow in capability soon. Currently
|
||||||
the server checks whether incoming packet has vendor class identifier
|
the server checks whether an incoming packet includes the vendor class identifier
|
||||||
option (60). If it has, content of that option is prepended with
|
option (60). If it does, the content of that option is prepended with
|
||||||
"VENDOR_CLASS_" then is interpreted as a class. For example,
|
"VENDOR_CLASS_" then it is interpreted as a class. For example,
|
||||||
modern cable modems will send this option with value "docsis3.0"
|
modern cable modems will send this option with value "docsis3.0"
|
||||||
and as a result the packet will belong to class "VENDOR_CLASS_docsis3.0".
|
and as a result the packet will belong to class "VENDOR_CLASS_docsis3.0".
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>It is envisaged that the client classification will be used for changing the
|
<para>It is envisaged that the client classification will be used for changing the
|
||||||
behavior of almost any part of the DHCP message processing, including assigning
|
behavior of almost any part of the DHCP message processing, including assigning
|
||||||
leases from different pools, assigning different option (or different values of
|
leases from different pools, assigning different options (or different values of
|
||||||
the same options) etc. For now, there are only two mechanisms that are taking
|
the same options) etc. For now, there are only two mechanisms that are taking
|
||||||
advantage of client classification: specific processing for cable modems and
|
advantage of client classification: specific processing for cable modems and
|
||||||
subnet selection.</para>
|
subnet selection.</para>
|
||||||
@@ -1192,10 +1192,10 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<para>
|
<para>
|
||||||
For clients that belong to the VENDOR_CLASS_docsis3.0 class, the siaddr
|
For clients that belong to the VENDOR_CLASS_docsis3.0 class, the siaddr
|
||||||
field is set to the value of next-server (if specified in a subnet). If
|
field is set to the value of next-server (if specified in a subnet). If
|
||||||
there is boot-file-name option specified, its value is also set in the
|
there is a boot-file-name option specified, its value is also set in the
|
||||||
file field in the DHCPv4 packet. For eRouter1.0 class, the siaddr is
|
file field in the DHCPv4 packet. For eRouter1.0 class, the siaddr is
|
||||||
always set to 0.0.0.0. That capability is expected to be moved to
|
always set to 0.0.0.0. That capability is expected to be moved to
|
||||||
external hook library that will be dedicated to cable modems.
|
an external hook library that will be dedicated to cable modems.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@@ -1203,7 +1203,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
This is particularly useful for cases where two types of devices share the
|
This is particularly useful for cases where two types of devices share the
|
||||||
same link and are expected to be served from two different subnets. The
|
same link and are expected to be served from two different subnets. The
|
||||||
primary use case for such a scenario is cable networks. There are two
|
primary use case for such a scenario is cable networks. There are two
|
||||||
classes of devices: the cable modem itself, which should be handled a lease
|
classes of devices: the cable modem itself, which should be handed a lease
|
||||||
from subnet A and all other devices behind the modem that should get a lease
|
from subnet A and all other devices behind the modem that should get a lease
|
||||||
from subnet B. That segregation is essential to prevent overly curious
|
from subnet B. That segregation is essential to prevent overly curious
|
||||||
users from playing with their cable modems. For details on how to set up
|
users from playing with their cable modems. For details on how to set up
|
||||||
@@ -1238,7 +1238,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Care should be taken with client classification as it is easy to prevent
|
Care should be taken with client classification as it is easy for
|
||||||
clients that do not meet class criteria to be denied any service altogether.
|
clients that do not meet class criteria to be denied any service altogether.
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
@@ -1248,7 +1248,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<title>Configuring DHCPv4 for DDNS</title>
|
<title>Configuring DHCPv4 for DDNS</title>
|
||||||
<para>
|
<para>
|
||||||
As mentioned earlier, kea-dhcp4 can be configured to generate requests to the
|
As mentioned earlier, kea-dhcp4 can be configured to generate requests to the
|
||||||
DHCP-DDNS server to update DNS entries. These requests are known as
|
DHCP-DDNS server (referred to here as "D2" ) to update DNS entries. These requests are known as
|
||||||
NameChangeRequests or NCRs. Each NCR contains the following information:
|
NameChangeRequests or NCRs. Each NCR contains the following information:
|
||||||
<orderedlist>
|
<orderedlist>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
@@ -1262,8 +1262,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
The FQDN, lease address, and DHCID
|
The FQDN, lease address, and DHCID
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
</orderedlist>
|
</orderedlist>
|
||||||
The parameters for controlling the generation of NCRs for submission to the
|
The parameters for controlling the generation of NCRs for submission to D2
|
||||||
DHCP-DDNS server
|
|
||||||
are contained in the <command>dhcp-ddns</command> section of the kea-dhcp4 server
|
are contained in the <command>dhcp-ddns</command> section of the kea-dhcp4 server
|
||||||
configuration. The default values for this section are as follows:
|
configuration. The default values for this section are as follows:
|
||||||
<screen>
|
<screen>
|
||||||
@@ -1291,9 +1290,9 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<section id="dhcpv4-d2-io-config">
|
<section id="dhcpv4-d2-io-config">
|
||||||
<title>DHCP-DDNS Server Connectivity</title>
|
<title>DHCP-DDNS Server Connectivity</title>
|
||||||
<para>
|
<para>
|
||||||
In order for NCRs to reach the DHCP-DDNS server, kea-dhcp4 must be able
|
In order for NCRs to reach the D2 server, kea-dhcp4 must be able
|
||||||
to communicate with it. kea-dhcp4 uses the following configuration
|
to communicate with it. kea-dhcp4 uses the following configuration
|
||||||
parameters to control how it communications with DHCP-DDNS:
|
parameters to control how it communications with D2:
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><simpara>
|
<listitem><simpara>
|
||||||
<command>enable-updates</command> - determines whether or not kea-dhcp4 will
|
<command>enable-updates</command> - determines whether or not kea-dhcp4 will
|
||||||
@@ -1302,54 +1301,54 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
</simpara></listitem>
|
</simpara></listitem>
|
||||||
|
|
||||||
<listitem><simpara>
|
<listitem><simpara>
|
||||||
<command>server-ip</command> - IP address on which DHCP-DDNS listens for requests. The default is
|
<command>server-ip</command> - IP address on which D2 listens for requests. The default is
|
||||||
the local loopback interface at address 127.0.0.1. You may specify
|
the local loopback interface at address 127.0.0.1. You may specify
|
||||||
either an IPv4 or IPv6 address.
|
either an IPv4 or IPv6 address.
|
||||||
</simpara></listitem>
|
</simpara></listitem>
|
||||||
|
|
||||||
<listitem><simpara>
|
<listitem><simpara>
|
||||||
<command>server-port</command> - port on which DHCP-DDNS listens for requests. The default value
|
<command>server-port</command> - port on which D2 listens for requests. The default value
|
||||||
is 53001.
|
is 53001.
|
||||||
</simpara></listitem>
|
</simpara></listitem>
|
||||||
|
|
||||||
<listitem><simpara>
|
<listitem><simpara>
|
||||||
<command>sender-ip</command> - IP address which kea-dhcp4 should use to send requests to the DHCP-DDNS server.
|
<command>sender-ip</command> - IP address which kea-dhcp4 should use to send requests to D2.
|
||||||
The default value is blank which instructs kea-dhcp4 to select a suitable
|
The default value is blank which instructs kea-dhcp4 to select a suitable
|
||||||
address.
|
address.
|
||||||
</simpara></listitem>
|
</simpara></listitem>
|
||||||
|
|
||||||
<listitem><simpara>
|
<listitem><simpara>
|
||||||
<command>sender-port</command> - port which kea-dhcp4 should use to send requests to the DHCP-DDNS server. The
|
<command>sender-port</command> - port which kea-dhcp4 should use to send requests to D2. The
|
||||||
default value of 0 instructs kea-dhcp4 to select suitable port.
|
default value of 0 instructs kea-dhcp4 to select a suitable port.
|
||||||
</simpara></listitem>
|
</simpara></listitem>
|
||||||
|
|
||||||
<listitem><simpara>
|
<listitem><simpara>
|
||||||
<command>max-queue-size</command> - maximum number of requests allowed to queue waiting to
|
<command>max-queue-size</command> - maximum number of requests allowed to queue waiting to
|
||||||
be sent to the DHCP-DDNS server. This value guards against requests accumulating
|
be sent to D2. This value guards against requests accumulating
|
||||||
uncontrollably if they are being generated faster than they can be
|
uncontrollably if they are being generated faster than they can be
|
||||||
delivered. If the number of requests queued for transmission reaches
|
delivered. If the number of requests queued for transmission reaches
|
||||||
this value, DDNS updating will be turned off until the queue backlog has
|
this value, DDNS updating will be turned off until the queue backlog has
|
||||||
been sufficiently reduced. The intention is allow the kea-dhcp4 server to
|
been sufficiently reduced. The intention is to allow the kea-dhcp4 server to
|
||||||
continue lease operations without running the risk that its memory usage
|
continue lease operations without running the risk that its memory usage
|
||||||
grows without limit. The default value is 1024.
|
grows without limit. The default value is 1024.
|
||||||
</simpara></listitem>
|
</simpara></listitem>
|
||||||
|
|
||||||
<listitem><simpara>
|
<listitem><simpara>
|
||||||
<command>ncr-format</command> - socket protocol use when sending requests to the DHCP-DDNS server. Currently
|
<command>ncr-format</command> - socket protocol use when sending requests to D2. Currently
|
||||||
only UDP is supported. TCP may be available in an upcoming release.
|
only UDP is supported. TCP may be available in an upcoming release.
|
||||||
</simpara></listitem>
|
</simpara></listitem>
|
||||||
|
|
||||||
<listitem><simpara>
|
<listitem><simpara>
|
||||||
<command>ncr-protocol</command> - packet format to use when sending requests to the DHCP-DDNS server.
|
<command>ncr-protocol</command> - packet format to use when sending requests to D2.
|
||||||
Currently only JSON format is supported. Other formats may be available
|
Currently only JSON format is supported. Other formats may be available
|
||||||
in future releases.
|
in future releases.
|
||||||
</simpara></listitem>
|
</simpara></listitem>
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
By default, the DHCP-DDNS server is assumed to running on the same machine as kea-dhcp4, and
|
By default, kea-dhcp-ddns is assumed to be running on the same machine as kea-dhcp4, and
|
||||||
all of the default values mentioned above should be sufficient.
|
all of the default values mentioned above should be sufficient.
|
||||||
If, however, the DHCP-DDNS server has been configured to listen on a different address or
|
If, however, D2 has been configured to listen on a different address or
|
||||||
port, these values must altered accordingly. For example, if the DHCP-DDNS server has been
|
port, these values must be altered accordingly. For example, if D2 has been
|
||||||
configured to listen on 192.168.1.10 port 900, the following configuration
|
configured to listen on 192.168.1.10 port 900, the following configuration
|
||||||
would be required:
|
would be required:
|
||||||
<screen>
|
<screen>
|
||||||
@@ -1369,9 +1368,9 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<para>kea-dhcp4 follows the behavior prescribed for DHCP servers in
|
<para>kea-dhcp4 follows the behavior prescribed for DHCP servers in
|
||||||
<ulink url="http://tools.ietf.org/html/rfc4702">RFC 4702</ulink>.
|
<ulink url="http://tools.ietf.org/html/rfc4702">RFC 4702</ulink>.
|
||||||
It is important to keep in mind that kea-dhcp4 provides the initial decision
|
It is important to keep in mind that kea-dhcp4 provides the initial decision
|
||||||
making of when and what to update and forwards that information to the DHCP-DDNS server in
|
making of when and what to update and forwards that information to D2 in
|
||||||
the form of NCRs. Carrying out the actual DNS updates and dealing with
|
the form of NCRs. Carrying out the actual DNS updates and dealing with
|
||||||
such things as conflict resolution are within the purview of the DHCP-DDNS server itself (<xref linkend="dhcp-ddns-server"/>).
|
such things as conflict resolution are within the purview of D2 itself (<xref linkend="dhcp-ddns-server"/>).
|
||||||
This section describes when kea-dhcp4 will generate NCRs and the
|
This section describes when kea-dhcp4 will generate NCRs and the
|
||||||
configuration parameters that can be used to influence this decision.
|
configuration parameters that can be used to influence this decision.
|
||||||
It assumes that the "enable-updates" parameter is true.
|
It assumes that the "enable-updates" parameter is true.
|
||||||
@@ -1478,7 +1477,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
The third row in the table above describes the case in which the client
|
The third row in the table above describes the case in which the client
|
||||||
requests that no DNS updates be done. The parameter, <command>override-no-update</command>,
|
requests that no DNS updates be done. The parameter, <command>override-no-update</command>,
|
||||||
can be used to instruct the server to disregard the client's wishes. When
|
can be used to instruct the server to disregard the client's wishes. When
|
||||||
this parameter is true, kea-dhcp4 will generate DDNS update request to the DHCP-DDNS server
|
this parameter is true, kea-dhcp4 will generate a DDNS update request to kea-dhcp-ddns
|
||||||
even if the client requests that no updates be done. The N-S-O flags in the
|
even if the client requests that no updates be done. The N-S-O flags in the
|
||||||
server's response to the client will be 0-1-1.
|
server's response to the client will be 0-1-1.
|
||||||
</para>
|
</para>
|
||||||
@@ -1583,8 +1582,9 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
where address-text is simply the lease IP address converted to a
|
where address-text is simply the lease IP address converted to a
|
||||||
hyphenated string. For example, if lease address is 172.16.1.10 and
|
hyphenated string. For example, if the lease address is 172.16.1.10 and
|
||||||
assuming default values for <command>generated-prefix</command> and <command>qualifying-suffix</command>, the
|
default values are used for
|
||||||
|
<command>generated-prefix</command> and <command>qualifying-suffix</command>, the
|
||||||
generated FQDN would be:
|
generated FQDN would be:
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
@@ -1595,12 +1595,12 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<section id="dhcp4-next-server">
|
<section id="dhcp4-next-server">
|
||||||
<title>Next Server (siaddr)</title>
|
<title>Next Server (siaddr)</title>
|
||||||
<para>In some cases, clients want to obtain configuration from the TFTP server.
|
<para>In some cases, clients want to obtain configuration from the TFTP server.
|
||||||
Although there is a dedicated option for it, some devices may use siaddr field
|
Although there is a dedicated option for it, some devices may use the siaddr field
|
||||||
in the DHCPv4 packet for that purpose. That specific field can be configured
|
in the DHCPv4 packet for that purpose. That specific field can be configured
|
||||||
using <command>next-server</command> directive. It is possible to define it in global scope or
|
using <command>next-server</command> directive. It is possible to define it in the global scope or
|
||||||
for a given subnet only. If both are defined, subnet value takes precedence.
|
for a given subnet only. If both are defined, the subnet value takes precedence.
|
||||||
The value in subnet can be set to 0.0.0.0, which means that <command>next-server</command> should
|
The value in subnet can be set to 0.0.0.0, which means that <command>next-server</command> should
|
||||||
not be sent. It may also be set to empty string, which means the same as if
|
not be sent. It may also be set to an empty string, which means the same as if
|
||||||
it was not defined at all, i.e. use the global value.
|
it was not defined at all, i.e. use the global value.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@@ -1633,11 +1633,11 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
which updated
|
which updated
|
||||||
<ulink url="http://tools.ietf.org/html/rfc2131">RFC 2131</ulink>.
|
<ulink url="http://tools.ietf.org/html/rfc2131">RFC 2131</ulink>.
|
||||||
That update now states that the server must
|
That update now states that the server must
|
||||||
send client-id if client sent it. That is the default behaviour
|
send client-id if the client sent it. That is the default behaviour
|
||||||
that Kea offers. However, in some cases older devices that do
|
that Kea offers. However, in some cases older devices that do
|
||||||
not support
|
not support
|
||||||
<ulink url="http://tools.ietf.org/html/rfc6842">RFC 6842</ulink>.
|
<ulink url="http://tools.ietf.org/html/rfc6842">RFC 6842</ulink>.
|
||||||
may refuse to accept responses that include
|
may refuse to accept responses that include the
|
||||||
client-id option. To enable backward compatibility, an optional
|
client-id option. To enable backward compatibility, an optional
|
||||||
configuration parameter has been introduced. To configure it,
|
configuration parameter has been introduced. To configure it,
|
||||||
use the following configuration statement:</para>
|
use the following configuration statement:</para>
|
||||||
@@ -1675,7 +1675,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
The DHCPv4 server differentiates between the directly connected clients,
|
The DHCPv4 server differentiates between the directly connected clients,
|
||||||
clients trying to renew leases and clients sending their messages through
|
clients trying to renew leases and clients sending their messages through
|
||||||
relays. For the directly connected clients the server will check the
|
relays. For the directly connected clients the server will check the
|
||||||
configuration of the interface on which the message has been received, and
|
configuration for the interface on which the message has been received, and
|
||||||
if the server configuration doesn't match any configured subnet the
|
if the server configuration doesn't match any configured subnet the
|
||||||
message is discarded.</para>
|
message is discarded.</para>
|
||||||
<para>Assuming that the server's interface is configured with the
|
<para>Assuming that the server's interface is configured with the
|
||||||
@@ -1686,7 +1686,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The rule above does not apply when the client unicasts its message, i.e.
|
The rule above does not apply when the client unicasts its message, i.e.
|
||||||
is trying to renew its lease. Such message is accepted through any
|
is trying to renew its lease. Such a message is accepted through any
|
||||||
interface. The renewing client sets ciaddr to the currently used IPv4
|
interface. The renewing client sets ciaddr to the currently used IPv4
|
||||||
address. The server uses this address to select the subnet for the client
|
address. The server uses this address to select the subnet for the client
|
||||||
(in particular, to extend the lease using this address).
|
(in particular, to extend the lease using this address).
|
||||||
@@ -1703,8 +1703,8 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<note>
|
<note>
|
||||||
<para>The subnet selection mechanism described in this section is based
|
<para>The subnet selection mechanism described in this section is based
|
||||||
on the assumption that client classification is not used. The classification
|
on the assumption that client classification is not used. The classification
|
||||||
mechanism alters the way in which subnet is selected for the client,
|
mechanism alters the way in which a subnet is selected for the client,
|
||||||
depending on the classes that the client belongs to.</para>
|
depending on the classes to which the client belongs.</para>
|
||||||
</note>
|
</note>
|
||||||
|
|
||||||
<section id="dhcp4-relay-override">
|
<section id="dhcp4-relay-override">
|
||||||
@@ -1712,9 +1712,9 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<para>
|
<para>
|
||||||
The relay has to have an interface connected to the link on which
|
The relay has to have an interface connected to the link on which
|
||||||
the clients are being configured. Typically the relay has an IPv4
|
the clients are being configured. Typically the relay has an IPv4
|
||||||
address configured on that interface that belongs to the subnet that
|
address configured on that interface that belongs to the subnet from which
|
||||||
the server will assign addresses from. In such typical case, the
|
the server will assign addresses. In the typical case, the
|
||||||
server is able to use IPv4 address inserted by the relay (in the giaddr
|
server is able to use the IPv4 address inserted by the relay (in the giaddr
|
||||||
field of the DHCPv4 packet) to select the appropriate subnet.
|
field of the DHCPv4 packet) to select the appropriate subnet.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
@@ -1725,13 +1725,13 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
network renumbering (where both old and new address space is still being
|
network renumbering (where both old and new address space is still being
|
||||||
used) and a cable network. In a cable network both cable modems and the
|
used) and a cable network. In a cable network both cable modems and the
|
||||||
devices behind them are physically connected to the same link, yet
|
devices behind them are physically connected to the same link, yet
|
||||||
they use distinct addressing. In such case, the DHCPv4 server needs
|
they use distinct addressing. In such a case, the DHCPv4 server needs
|
||||||
additional information (the IPv4 address of the relay) to properly select
|
additional information (the IPv4 address of the relay) to properly select
|
||||||
an appropriate subnet.
|
an appropriate subnet.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The following example assumes that there is a subnet 192.0.2.0/24
|
The following example assumes that there is a subnet 192.0.2.0/24
|
||||||
that is accessible via relay that uses 10.0.0.1 as its IPv4 address.
|
that is accessible via a relay that uses 10.0.0.1 as its IPv4 address.
|
||||||
The server will be able to select this subnet for any incoming packets
|
The server will be able to select this subnet for any incoming packets
|
||||||
that came from a relay that has an address in 192.0.2.0/24 subnet.
|
that came from a relay that has an address in 192.0.2.0/24 subnet.
|
||||||
It will also select that subnet for a relay with address 10.0.0.1.
|
It will also select that subnet for a relay with address 10.0.0.1.
|
||||||
|
@@ -26,9 +26,9 @@
|
|||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<simpara>
|
<simpara>
|
||||||
<command>-v</command> - specifies whether the server
|
<command>-d</command> - specifies whether the server
|
||||||
logging should be switched to verbose mode. In verbose mode,
|
logging should be switched to verbose mode. In verbose mode,
|
||||||
the logging severity and debuglevel specified in a configuration
|
the logging severity and debuglevel specified in the configuration
|
||||||
file are ignored and "debug" severity and the maximum debuglevel
|
file are ignored and "debug" severity and the maximum debuglevel
|
||||||
(99) are assumed. The flag is convenient, for temporarily
|
(99) are assumed. The flag is convenient, for temporarily
|
||||||
switching the server into maximum verbosity, e.g. when
|
switching the server into maximum verbosity, e.g. when
|
||||||
@@ -37,8 +37,8 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<simpara>
|
<simpara>
|
||||||
<command>-p <replaceable>port</replaceable></command> -
|
<command>-p <replaceable>port</replaceable></command> -
|
||||||
specifies UDP port the server will listen on. This is only
|
specifies UDP port on which the server will listen. This is only
|
||||||
useful during testing, as the DHCPv6 server listening on
|
useful during testing, as a DHCPv6 server listening on
|
||||||
ports other than default DHCPv6 ports will not be able to
|
ports other than default DHCPv6 ports will not be able to
|
||||||
handle regular DHCPv6 queries.</simpara>
|
handle regular DHCPv6 queries.</simpara>
|
||||||
</listitem>
|
</listitem>
|
||||||
@@ -142,11 +142,11 @@ and ends with the corresponding closing brace (in the above example,
|
|||||||
the brace after the last comment). Everything defined between those
|
the brace after the last comment). Everything defined between those
|
||||||
lines is considered to be the Dhcp6 configuration.</para>
|
lines is considered to be the Dhcp6 configuration.</para>
|
||||||
|
|
||||||
<para>In general case, the order in which those parameters appear does not
|
<para>In the general case, the order in which those parameters appear does not
|
||||||
matter. There are two caveats here though. The first one is to remember that
|
matter. There are two caveats here though. The first one is to remember that
|
||||||
the configuration file must be a well formed JSON. That means that parameters
|
the configuration file must be well formed JSON. That means that parameters
|
||||||
for any given scope must be separate by a comma and there must not be a comma
|
for any given scope must be separated by a comma and there must not be a comma
|
||||||
after the last parameter. When reordering configuration file, keep in mind that
|
after the last parameter. When reordering a configuration file, keep in mind that
|
||||||
moving a parameter to or from the last position in a given scope may require
|
moving a parameter to or from the last position in a given scope may require
|
||||||
moving the comma as well. The second caveat is that it is uncommon — although
|
moving the comma as well. The second caveat is that it is uncommon — although
|
||||||
legal JSON — to
|
legal JSON — to
|
||||||
@@ -169,19 +169,19 @@ look like this:
|
|||||||
As "<command>interfaces</command>" is not the last parameter in the
|
As "<command>interfaces</command>" is not the last parameter in the
|
||||||
configuration, a trailing comma is required.</para>
|
configuration, a trailing comma is required.</para>
|
||||||
<para>A number of other parameters follow. <command>valid-lifetime</command>
|
<para>A number of other parameters follow. <command>valid-lifetime</command>
|
||||||
defines how long the addresses (leases) given out by the server are valid. If
|
defines for how long the addresses (leases) given out by the server are valid. If
|
||||||
nothing changes, client that got the address is allowed to use it for 4000
|
nothing changes, a client that got an address is allowed to use it for 4000
|
||||||
seconds. (Note that integer numbers are specified as is, without any quotes
|
seconds. (Note that integer numbers are specified as is, without any quotes
|
||||||
around them.) The address will become deprecated in 3000 seconds (clients are
|
around them.) The address will become deprecated in 3000 seconds (clients are
|
||||||
allowed to keep old connections, but can't use this address for creating new
|
allowed to keep old connections, but can't use this address for creating new
|
||||||
connections). <command>renew-timer</command> and <command>
|
connections). <command>renew-timer</command> and <command>
|
||||||
rebind-timer</command> are values that define T1 and T2 timers that govern when
|
rebind-timer</command> are values that define T1 and T2 timers that govern when
|
||||||
the client will begin renewal and rebind procedures.</para>
|
the client will begin the renewal and rebind procedures.</para>
|
||||||
|
|
||||||
<para>The next couple lines define the lease database, the place where the server
|
<para>The next couple of lines define the lease database, the place where the server
|
||||||
stores its lease information. This particular example tells the server to use
|
stores its lease information. This particular example tells the server to use
|
||||||
<command>memfile</command>, which is the simplest (and fastest) database
|
<command>memfile</command>, which is the simplest (and fastest) database
|
||||||
backend. It uses in-memory database and stores leases on disk in a CSV
|
backend. It uses an in-memory database and stores leases on disk in a CSV
|
||||||
file. This is a very simple configuration. Usually, lease database configuration
|
file. This is a very simple configuration. Usually, lease database configuration
|
||||||
is more extensive and contains additional parameters. Note that
|
is more extensive and contains additional parameters. Note that
|
||||||
<command>lease-database</command>
|
<command>lease-database</command>
|
||||||
@@ -193,11 +193,11 @@ comma is present.</para>
|
|||||||
|
|
||||||
<para>Finally, we need to define a list of IPv6 subnets. This is the
|
<para>Finally, we need to define a list of IPv6 subnets. This is the
|
||||||
most important DHCPv6 configuration structure as the server uses that
|
most important DHCPv6 configuration structure as the server uses that
|
||||||
information to process clients' requests. It defines all subnets that
|
information to process clients' requests. It defines all subnets from
|
||||||
the server is expected to receive DHCP requests from. The subnets are
|
which the server is expected to receive DHCP requests. The subnets are
|
||||||
specified with the <command>subnet6</command> parameter. It is a list,
|
specified with the <command>subnet6</command> parameter. It is a list,
|
||||||
so it starts and ends with square brackets. Each subnet definition in
|
so it starts and ends with square brackets. Each subnet definition in
|
||||||
the list has several attributes associated with it, so is a structure
|
the list has several attributes associated with it, so it is a structure
|
||||||
and is opened and closed with braces. At minimum, a subnet definition
|
and is opened and closed with braces. At minimum, a subnet definition
|
||||||
has to have at least two parameters: <command>subnet</command> (that
|
has to have at least two parameters: <command>subnet</command> (that
|
||||||
defines the whole subnet) and <command>pool</command> (which is a list of
|
defines the whole subnet) and <command>pool</command> (which is a list of
|
||||||
@@ -327,7 +327,7 @@ JSON validator is available at <ulink url="http://jsonviewer.stack.hu/"/>.
|
|||||||
access the database should be set:
|
access the database should be set:
|
||||||
<screen>
|
<screen>
|
||||||
"Dhcp6": { "lease-database": { <userinput>"user": "<replaceable>user-name</replaceable>"</userinput>,
|
"Dhcp6": { "lease-database": { <userinput>"user": "<replaceable>user-name</replaceable>"</userinput>,
|
||||||
<userinput>"password" "<replaceable>password</replaceable>"</userinput>,
|
<userinput>"password": "<replaceable>password</replaceable>"</userinput>,
|
||||||
... },
|
... },
|
||||||
... }
|
... }
|
||||||
</screen>
|
</screen>
|
||||||
@@ -360,7 +360,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<section id="ipv6-subnet-id">
|
<section id="ipv6-subnet-id">
|
||||||
<title>IPv6 Subnet Identifier</title>
|
<title>IPv6 Subnet Identifier</title>
|
||||||
<para>
|
<para>
|
||||||
Subnet identifier is a unique number associated with a particular subnet.
|
The subnet identifier is a unique number associated with a particular subnet.
|
||||||
In principle, it is used to associate clients' leases with respective subnets.
|
In principle, it is used to associate clients' leases with respective subnets.
|
||||||
When the subnet identifier is not specified for a subnet being configured, it will
|
When the subnet identifier is not specified for a subnet being configured, it will
|
||||||
be automatically assigned by the configuration mechanism. The identifiers
|
be automatically assigned by the configuration mechanism. The identifiers
|
||||||
@@ -370,17 +370,17 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<para>
|
<para>
|
||||||
If there are multiple subnets configured with auto-generated identifiers and
|
If there are multiple subnets configured with auto-generated identifiers and
|
||||||
one of them is removed, the subnet identifiers may be renumbered. For example:
|
one of them is removed, the subnet identifiers may be renumbered. For example:
|
||||||
if there are 4 subnets and 3rd is removed the last subnet will be assigned
|
if there are four subnets and the third is removed the last subnet will be assigned
|
||||||
identifier that the 3rd subnet had before removal. As a result, the leases
|
the identifier that the third subnet had before removal. As a result, the leases
|
||||||
stored in the lease database for subnet 3 are now associated with the
|
stored in the lease database for subnet 3 are now associated with
|
||||||
subnet 4, which may have unexpected consequences. In the future it is planned
|
subnet 4, which may have unexpected consequences. In the future it is planned
|
||||||
to implement the mechanism to preserve auto-generated subnet ids upon removal
|
to implement a mechanism to preserve auto-generated subnet ids upon removal
|
||||||
of one of the subnets. Currently, the only remedy for this issue is to
|
of one of the subnets. Currently, the only remedy for this issue is to
|
||||||
manually specify the unique subnet identifier for each subnet.
|
manually specify a unique subnet identifier for each subnet.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The following configuration will assign the arbitrary subnet
|
The following configuration will assign the specified subnet
|
||||||
identifier to the newly configured subnet:
|
identifier to the newly configured subnet:
|
||||||
|
|
||||||
<screen>
|
<screen>
|
||||||
@@ -403,16 +403,16 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<section id="dhcp6-unicast">
|
<section id="dhcp6-unicast">
|
||||||
<title>Unicast traffic support</title>
|
<title>Unicast traffic support</title>
|
||||||
<para>
|
<para>
|
||||||
When DHCPv6 server starts up, by default it listens to the DHCP traffic
|
When the DHCPv6 server starts, by default it listens to the DHCP traffic
|
||||||
sent to multicast address ff02::1:2 on each interface that it is
|
sent to multicast address ff02::1:2 on each interface that it is
|
||||||
configured to listen on (see <xref linkend="dhcp6-interface-selection"/>).
|
configured to listen on (see <xref linkend="dhcp6-interface-selection"/>).
|
||||||
In some cases it is useful to configure a server to handle incoming
|
In some cases it is useful to configure a server to handle incoming
|
||||||
traffic sent to the global unicast addresses as well. The most common
|
traffic sent to the global unicast addresses as well. The most common
|
||||||
reason for that is to have relays send their traffic to the server
|
reason for that is to have relays send their traffic to the server
|
||||||
directly. To configure server to listen on specific unicast address, a
|
directly. To configure the server to listen on a specific unicast address, the
|
||||||
notation to specify interfaces has been extended. Interface name can be
|
notation to specify interfaces has been extended. An interface name can be
|
||||||
optionally followed by a slash, followed by global unicast address that
|
optionally followed by a slash, followed by the global unicast address on which
|
||||||
server should listen on. That will be done in addition to normal
|
the server should listen. This will be done in addition to normal
|
||||||
link-local binding + listening on ff02::1:2 address. The sample commands
|
link-local binding + listening on ff02::1:2 address. The sample commands
|
||||||
listed below show how to listen on 2001:db8::1 (a global address)
|
listed below show how to listen on 2001:db8::1 (a global address)
|
||||||
configured on the eth1 interface.
|
configured on the eth1 interface.
|
||||||
@@ -424,7 +424,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
...
|
...
|
||||||
}</screen>
|
}</screen>
|
||||||
|
|
||||||
When configuration gets committed, the server will start to listen on
|
When this configuration gets committed, the server will start to listen on
|
||||||
eth1 on link-local address, multicast group (ff02::1:2) and 2001:db8::1.
|
eth1 on link-local address, multicast group (ff02::1:2) and 2001:db8::1.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
@@ -435,8 +435,8 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<para>
|
<para>
|
||||||
Care should be taken to specify proper unicast addresses. The server will
|
Care should be taken to specify proper unicast addresses. The server will
|
||||||
attempt to bind to those addresses specified, without any additional checks.
|
attempt to bind to those addresses specified, without any additional checks.
|
||||||
That approach is selected on purpose, so in the software can be used to
|
This approach is selected on purpose, so the software can be used to
|
||||||
communicate over uncommon addresses if the administrator desires so.
|
communicate over uncommon addresses if the administrator so desires.
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -471,14 +471,14 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
is specified.</para>
|
is specified.</para>
|
||||||
|
|
||||||
<para>Each <command>pool</command> is a structure that contains the
|
<para>Each <command>pool</command> is a structure that contains the
|
||||||
parameters th describe a single pool. Currently there is only one
|
parameters that describe a single pool. Currently there is only one
|
||||||
parameter, <command>pool</command>, which gives the range of addresses
|
parameter, <command>pool</command>, which gives the range of addresses
|
||||||
in the pool. Additional parameters will be added in future releases of
|
in the pool. Additional parameters will be added in future releases of
|
||||||
Kea.</para>
|
Kea.</para>
|
||||||
|
|
||||||
<para>It is possible to define more than one pool in a
|
<para>It is possible to define more than one pool in a
|
||||||
subnet: continuing the previous example, further assume that
|
subnet: continuing the previous example, further assume that
|
||||||
2001:db8:1:0:5::/80 should be also be managed by the server. It could be written as
|
2001:db8:1:0:5::/80 should also be managed by the server. It could be written as
|
||||||
2001:db8:1:0:5:: to 2001:db8:1::5:ffff:ffff:ffff, but typing so many 'f's
|
2001:db8:1:0:5:: to 2001:db8:1::5:ffff:ffff:ffff, but typing so many 'f's
|
||||||
is cumbersome. It can be expressed more simply as 2001:db8:1:0:5::/80. Both
|
is cumbersome. It can be expressed more simply as 2001:db8:1:0:5::/80. Both
|
||||||
formats are supported by Dhcp6 and can be mixed in the pool list.
|
formats are supported by Dhcp6 and can be mixed in the pool list.
|
||||||
@@ -521,16 +521,16 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
...
|
...
|
||||||
]
|
]
|
||||||
}</screen>
|
}</screen>
|
||||||
In this example, we allow server to
|
In this example, we allow the server to
|
||||||
dynamically assign all addresses available in the whole subnet. Although
|
dynamically assign all addresses available in the whole subnet. Although
|
||||||
rather wasteful, it is certainly a valid configuration to dedicate the
|
rather wasteful, it is certainly a valid configuration to dedicate the
|
||||||
whole /64 subnet for that purpose. Note that the Kea server does not preallocate
|
whole /64 subnet for that purpose. Note that the Kea server does not preallocate
|
||||||
the leases, so there is no danger of using gigantic address pools.
|
the leases, so there is no danger in using gigantic address pools.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
When configuring a DHCPv6 server using prefix/length notation, please pay
|
When configuring a DHCPv6 server using prefix/length notation, please pay
|
||||||
attention to the boundary values. When specifying that the server should use
|
attention to the boundary values. When specifying that the server can use
|
||||||
a given pool, it will be able to allocate also first (typically network
|
a given pool, it will also be able to allocate the first (typically network
|
||||||
address) address from that pool. For example for pool 2001:db8:2::/64 the
|
address) address from that pool. For example for pool 2001:db8:2::/64 the
|
||||||
2001:db8:2:: address may be assigned as well. If you want to avoid this,
|
2001:db8:2:: address may be assigned as well. If you want to avoid this,
|
||||||
use the "min-max" notation.
|
use the "min-max" notation.
|
||||||
@@ -546,8 +546,9 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
A subnet may have one or more prefix delegation pools. Each pool has
|
A subnet may have one or more prefix delegation pools. Each pool has
|
||||||
a prefixed address, which is specified as a prefix and a prefix length,
|
a prefixed address, which is specified as a prefix and a prefix length,
|
||||||
as well as a delegated prefix length. <command>delegated-len</command>
|
as well as a delegated prefix length. <command>delegated-len</command>
|
||||||
must not be shorter (numerically greater) than
|
must not be shorter (that is it must be numerically greater or equal)
|
||||||
<command>prefix-len</command>. If both <command>delegated-len</command>
|
than <command>prefix-len</command>.
|
||||||
|
If both <command>delegated-len</command>
|
||||||
and <command>prefix-len</command> are equal, the server will be able to
|
and <command>prefix-len</command> are equal, the server will be able to
|
||||||
delegate only one prefix. A sample configuration is shown below:
|
delegate only one prefix. A sample configuration is shown below:
|
||||||
<screen>
|
<screen>
|
||||||
@@ -572,13 +573,13 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<section id="dhcp6-std-options">
|
<section id="dhcp6-std-options">
|
||||||
<title>Standard DHCPv6 options</title>
|
<title>Standard DHCPv6 options</title>
|
||||||
<para>
|
<para>
|
||||||
One of the major features of DHCPv6 server is to provide configuration
|
One of the major features of a DHCPv6 server is to provide configuration
|
||||||
options to clients. Although there are several options that require
|
options to clients. Although there are several options that require
|
||||||
special behavior, most options are sent by the server only if the client
|
special behavior, most options are sent by the server only if the client
|
||||||
explicitly requested them. The following example shows how to
|
explicitly requests them. The following example shows how to
|
||||||
configure DNS servers, which is one of the most frequently used
|
configure DNS servers, which is one of the most frequently used
|
||||||
options. Numbers in the first column are added for easier reference and
|
options. Numbers in the first column are added for easier reference and
|
||||||
will not appear on screen. Options specified in this way are considered
|
will not appear on screen. Options specified in this way are considered
|
||||||
global and apply to all configured subnets.
|
global and apply to all configured subnets.
|
||||||
|
|
||||||
<screen>
|
<screen>
|
||||||
@@ -598,26 +599,28 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
The first line creates new entry in option-data table. It contains
|
The <command>option-data></command> line creates a new entry in
|
||||||
|
the option-data table. This table contains
|
||||||
information on all global options that the server is supposed to configure
|
information on all global options that the server is supposed to configure
|
||||||
in all subnets. The second line specifies option name. For a complete list
|
in all subnets. The <command>name</command> line specifies the option name.
|
||||||
|
(For a complete list
|
||||||
of currently supported names, see <xref
|
of currently supported names, see <xref
|
||||||
linkend="dhcp6-std-options-list"/>. The third line specifies option code,
|
linkend="dhcp6-std-options-list"/>.) The next line specifies the option code,
|
||||||
which must match one of the values from that list. Line beginning with
|
which must match one of the values from that list. The line beginning with
|
||||||
<command>space</command> specifies option space, which must always be set
|
<command>space</command> specifies the option space, which must always be set
|
||||||
to "dhcp6" as these are standard DHCPv6 options. For other name spaces,
|
to "dhcp6" as these are standard DHCPv6 options. For other name spaces,
|
||||||
including custom option spaces, see <xref
|
including custom option spaces, see <xref
|
||||||
linkend="dhcp6-option-spaces"/>. The fifth line specifies the format in
|
linkend="dhcp6-option-spaces"/>. The next line specifies the format in
|
||||||
which the data will be entered: use of CSV (comma separated values) is
|
which the data will be entered: use of CSV (comma separated values) is
|
||||||
recommended. The sixth line gives the actual value to be sent to
|
recommended. The <command>data</command> line gives the actual value to be sent to
|
||||||
clients. Data is specified as a normal text, with values separated by
|
clients. Data is specified as normal text, with values separated by
|
||||||
commas if more than one value is allowed.
|
commas if more than one value is allowed.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Options can also be configured as hexadecimal values. If csv-format is
|
Options can also be configured as hexadecimal values. If "csv-format" is
|
||||||
set to false, the option data must be specified as a string of hexadecimal
|
set to false, the option data must be specified as a string of hexadecimal
|
||||||
numbers. The
|
numbers. The
|
||||||
following commands configure the DNS-SERVERS option for all
|
following commands configure the DNS-SERVERS option for all
|
||||||
subnets with the following addresses: 2001:db8:1::cafe and
|
subnets with the following addresses: 2001:db8:1::cafe and
|
||||||
2001:db8:1::babe.
|
2001:db8:1::babe.
|
||||||
@@ -639,7 +642,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
|
|
||||||
The value for the setting of the "data" element is split across two
|
The value for the setting of the "data" element is split across two
|
||||||
lines in this document for clarity: when entering the command, the
|
lines in this document for clarity: when entering the command, the
|
||||||
whole string should be entered on the same line. Care should be taken
|
whole string should be entered on the same line. Care should be taken
|
||||||
to use proper encoding when using hexadecimal format as Kea's ability
|
to use proper encoding when using hexadecimal format as Kea's ability
|
||||||
to validate data correctness in hexadecimal is limited.
|
to validate data correctness in hexadecimal is limited.
|
||||||
</para>
|
</para>
|
||||||
@@ -702,7 +705,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<para>
|
<para>
|
||||||
Some options are designated as arrays, which means that more than one
|
Some options are designated as arrays, which means that more than one
|
||||||
value is allowed in such an option. For example the option dns-servers
|
value is allowed in such an option. For example the option dns-servers
|
||||||
allows the specification of more than one IPv6 address, so allowing
|
allows the specification of more than one IPv6 address, allowing
|
||||||
clients to obtain the addresses of multiple DNS servers.
|
clients to obtain the addresses of multiple DNS servers.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@@ -718,8 +721,8 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
a server administrator must create a definition as described in
|
a server administrator must create a definition as described in
|
||||||
<xref linkend="dhcp6-custom-options"/> in the 'dhcp6' option space. This
|
<xref linkend="dhcp6-custom-options"/> in the 'dhcp6' option space. This
|
||||||
definition should match the option format described in the relevant
|
definition should match the option format described in the relevant
|
||||||
RFC but configuration mechanism would allow any option format as it has
|
RFC but the configuration mechanism would allow any option format as it has
|
||||||
no means to validate it at the moment.
|
no means to validate the format at the moment.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
|
|
||||||
@@ -831,7 +834,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
"Dhcp6": {
|
"Dhcp6": {
|
||||||
"option-data": [
|
"option-data": [
|
||||||
{
|
{
|
||||||
<userinput>name "foo",
|
<userinput>"name": "foo",
|
||||||
"code": 100,
|
"code": 100,
|
||||||
"space": "dhcp6",
|
"space": "dhcp6",
|
||||||
"csv-format": true,
|
"csv-format": true,
|
||||||
@@ -895,7 +898,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
<para>In general case, boolean values are specified as <command>true</command> or
|
<para>In the general case, boolean values are specified as <command>true</command> or
|
||||||
<command>false</command>, without quotes. Some specific boolean parameters may
|
<command>false</command>, without quotes. Some specific boolean parameters may
|
||||||
accept also <command>"true"</command>, <command>"false"</command>,
|
accept also <command>"true"</command>, <command>"false"</command>,
|
||||||
<command>0</command>, <command>1</command>, <command>"0"</command> and
|
<command>0</command>, <command>1</command>, <command>"0"</command> and
|
||||||
@@ -973,14 +976,14 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<title>Nested DHCPv6 options (custom option spaces)</title>
|
<title>Nested DHCPv6 options (custom option spaces)</title>
|
||||||
<para>It is sometimes useful to define completely new option
|
<para>It is sometimes useful to define completely new option
|
||||||
spaces. This is useful if the user wants his new option to
|
spaces. This is useful if the user wants his new option to
|
||||||
convey sub-options that use separate numbering scheme, for
|
convey sub-options that use a separate numbering scheme, for
|
||||||
example sub-options with codes 1 and 2. Those option codes
|
example sub-options with codes 1 and 2. Those option codes
|
||||||
conflict with standard DHCPv6 options, so a separate option
|
conflict with standard DHCPv6 options, so a separate option
|
||||||
space must be defined.
|
space must be defined.
|
||||||
</para>
|
</para>
|
||||||
<para>Note that it is not required to create new option space when
|
<para>Note that it is not required to create a new option space when
|
||||||
defining sub-options for a standard option because it is by
|
defining sub-options for a standard option because it is
|
||||||
default created if the standard option is meant to convey
|
created by default if the standard option is meant to convey
|
||||||
any sub-options (see <xref linkend="dhcp6-vendor-opts"/>).
|
any sub-options (see <xref linkend="dhcp6-vendor-opts"/>).
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
@@ -1036,8 +1039,8 @@ should include options from the isc option space:
|
|||||||
|
|
||||||
The name of the option space in which the sub-options are defined is set in
|
The name of the option space in which the sub-options are defined is set in
|
||||||
the <command>encapsulate</command> field. The <command>type</command> field
|
the <command>encapsulate</command> field. The <command>type</command> field
|
||||||
is set to <command>empty</command> which imposes that this option does not
|
is set to <command>empty</command> which limits this option to only carrying
|
||||||
carry any data other than sub-options.
|
data in sub-options.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Finally, we can set values for the new options:
|
Finally, we can set values for the new options:
|
||||||
@@ -1095,19 +1098,19 @@ should include options from the isc option space:
|
|||||||
<para>
|
<para>
|
||||||
The DHCPv6 server may receive requests from local (connected to the
|
The DHCPv6 server may receive requests from local (connected to the
|
||||||
same subnet as the server) and remote (connecting via relays) clients.
|
same subnet as the server) and remote (connecting via relays) clients.
|
||||||
As server may have many subnet configurations defined, it must select
|
As the server may have many subnet configurations defined, it must select
|
||||||
appropriate subnet for a given request.
|
an appropriate subnet for a given request.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The server can not assume which of configured subnets are local. It is
|
The server can not assume which of the configured subnets are local. In IPv4
|
||||||
possible in IPv4, where there is reasonable expectation that the
|
it is possible as there is a reasonable expectation that the
|
||||||
server will have a (global) IPv4 address configured on the interface,
|
server will have a (global) IPv4 address configured on the interface,
|
||||||
and can use that information to detect whether a subnet is local or
|
and can use that information to detect whether a subnet is local or
|
||||||
not. That assumption is not true in IPv6, as the DHCPv6 must be able
|
not. That assumption is not true in IPv6, the DHCPv6 server must be able
|
||||||
to operate with having link-local addresses only. Therefore an optional
|
to operate while only having link-local addresses. Therefore an optional
|
||||||
"interface" parameter is available within a subnet definition
|
"interface" parameter is available within a subnet definition
|
||||||
to designate that a given subnet is local, i.e. reachable directly over
|
to designate that a given subnet is local, i.e. reachable directly over
|
||||||
specified interface. For example the server that is intended to serve
|
the specified interface. For example the server that is intended to serve
|
||||||
a local subnet over eth0 may be configured as follows:
|
a local subnet over eth0 may be configured as follows:
|
||||||
<screen>
|
<screen>
|
||||||
"Dhcp6": {
|
"Dhcp6": {
|
||||||
@@ -1132,7 +1135,7 @@ should include options from the isc option space:
|
|||||||
<title>DHCPv6 Relays</title>
|
<title>DHCPv6 Relays</title>
|
||||||
<para>
|
<para>
|
||||||
A DHCPv6 server with multiple subnets defined must select the
|
A DHCPv6 server with multiple subnets defined must select the
|
||||||
appropriate subnet when it receives a request from client. For clients
|
appropriate subnet when it receives a request from a client. For clients
|
||||||
connected via relays, two mechanisms are used:
|
connected via relays, two mechanisms are used:
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
@@ -1209,11 +1212,11 @@ should include options from the isc option space:
|
|||||||
</note>
|
</note>
|
||||||
<para>In certain cases it is useful to differentiate between different types
|
<para>In certain cases it is useful to differentiate between different types
|
||||||
of clients and treat them differently. The process of doing classification
|
of clients and treat them differently. The process of doing classification
|
||||||
is conducted in two steps. The first step is to assess incoming packet and
|
is conducted in two steps. The first step is to assess an incoming packet and
|
||||||
assign it to zero or more classes. This classification is currently simple,
|
assign it to zero or more classes. This classification is currently simple,
|
||||||
but is expected to grow in capability soon. Currently the server checks whether
|
but is expected to grow in capability soon. Currently the server checks whether
|
||||||
incoming packet has vendor class option (16). If it has, content
|
the incoming packet includes vendor class option (16). If it has, the content
|
||||||
of that option is prepended with "VENDOR_CLASS_" interpreted as a
|
of that option is prepended with "VENDOR_CLASS_" then it is interpreted as a
|
||||||
class. For example, modern cable modems will send this option with value
|
class. For example, modern cable modems will send this option with value
|
||||||
"docsis3.0" and as a result the packet will belong to class
|
"docsis3.0" and as a result the packet will belong to class
|
||||||
"VENDOR_CLASS_docsis3.0".
|
"VENDOR_CLASS_docsis3.0".
|
||||||
@@ -1230,7 +1233,7 @@ should include options from the isc option space:
|
|||||||
This is particularly useful for cases where two types of devices share the
|
This is particularly useful for cases where two types of devices share the
|
||||||
same link and are expected to be served from two different subnets. The
|
same link and are expected to be served from two different subnets. The
|
||||||
primary use case for such a scenario are cable networks. There are two
|
primary use case for such a scenario are cable networks. There are two
|
||||||
classes of devices: cable modem itself, which should be handled a lease
|
classes of devices: the cable modem itself, which should be handed a lease
|
||||||
from subnet A and all other devices behind modems that should get a lease
|
from subnet A and all other devices behind modems that should get a lease
|
||||||
from subnet B. That segregation is essential to prevent overly curious
|
from subnet B. That segregation is essential to prevent overly curious
|
||||||
users from playing with their cable modems. For details on how to set up
|
users from playing with their cable modems. For details on how to set up
|
||||||
@@ -1243,7 +1246,7 @@ should include options from the isc option space:
|
|||||||
<title>Limiting access to IPv6 subnet to certain classes</title>
|
<title>Limiting access to IPv6 subnet to certain classes</title>
|
||||||
<para>
|
<para>
|
||||||
In certain cases it beneficial to restrict access to certain subnets
|
In certain cases it beneficial to restrict access to certain subnets
|
||||||
only to clients that belong to a given subnet. For details on client
|
only to clients that belong to a given class. For details on client
|
||||||
classes, see <xref linkend="dhcp6-client-classifier"/>. This is an
|
classes, see <xref linkend="dhcp6-client-classifier"/>. This is an
|
||||||
extension of a previous example from <xref linkend="dhcp6-address-config"/>.
|
extension of a previous example from <xref linkend="dhcp6-address-config"/>.
|
||||||
|
|
||||||
@@ -1273,7 +1276,7 @@ should include options from the isc option space:
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Care should be taken with client classification as it is easy to prevent
|
Care should be taken with client classification as it is easy for
|
||||||
clients that do not meet class criteria to be denied any service altogether.
|
clients that do not meet class criteria to be denied any service altogether.
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
@@ -1283,7 +1286,7 @@ should include options from the isc option space:
|
|||||||
<title>Configuring DHCPv6 for DDNS</title>
|
<title>Configuring DHCPv6 for DDNS</title>
|
||||||
<para>
|
<para>
|
||||||
As mentioned earlier, kea-dhcp6 can be configured to generate requests to
|
As mentioned earlier, kea-dhcp6 can be configured to generate requests to
|
||||||
the DHCP-DDNS server (referred to here as the "D2" server) to update
|
the DHCP-DDNS server (referred to here as "D2") to update
|
||||||
DNS entries. These requests are known as NameChangeRequests or NCRs.
|
DNS entries. These requests are known as NameChangeRequests or NCRs.
|
||||||
Each NCR contains the following information:
|
Each NCR contains the following information:
|
||||||
<orderedlist>
|
<orderedlist>
|
||||||
@@ -1352,7 +1355,7 @@ should include options from the isc option space:
|
|||||||
</simpara></listitem>
|
</simpara></listitem>
|
||||||
<listitem><simpara>
|
<listitem><simpara>
|
||||||
<command>sender-port</command> - port which kea-dhcp6 should use to send requests to D2. The
|
<command>sender-port</command> - port which kea-dhcp6 should use to send requests to D2. The
|
||||||
default value of 0 instructs kea-dhcp6 to select suitable port.
|
default value of 0 instructs kea-dhcp6 to select a suitable port.
|
||||||
</simpara></listitem>
|
</simpara></listitem>
|
||||||
<listitem><simpara>
|
<listitem><simpara>
|
||||||
<command>max-queue-size</command> - maximum number of requests allowed to queue waiting to
|
<command>max-queue-size</command> - maximum number of requests allowed to queue waiting to
|
||||||
@@ -1360,7 +1363,7 @@ should include options from the isc option space:
|
|||||||
uncontrollably if they are being generated faster than they can be
|
uncontrollably if they are being generated faster than they can be
|
||||||
delivered. If the number of requests queued for transmission reaches
|
delivered. If the number of requests queued for transmission reaches
|
||||||
this value, DDNS updating will be turned off until the queue backlog has
|
this value, DDNS updating will be turned off until the queue backlog has
|
||||||
been sufficiently reduced. The intent is allow kea-dhcp6 to
|
been sufficiently reduced. The intent is to allow kea-dhcp6 to
|
||||||
continue lease operations. The default value is 1024.
|
continue lease operations. The default value is 1024.
|
||||||
</simpara></listitem>
|
</simpara></listitem>
|
||||||
<listitem><simpara>
|
<listitem><simpara>
|
||||||
@@ -1373,7 +1376,7 @@ should include options from the isc option space:
|
|||||||
in future releases.
|
in future releases.
|
||||||
</simpara></listitem>
|
</simpara></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
By default, D2 is assumed to running on the same machine as kea-dhcp6, and
|
By default, kea-dhcp-ddns is assumed to running on the same machine as kea-dhcp6, and
|
||||||
all of the default values mentioned above should be sufficient.
|
all of the default values mentioned above should be sufficient.
|
||||||
If, however, D2 has been configured to listen on a different address or
|
If, however, D2 has been configured to listen on a different address or
|
||||||
port, these values must altered accordingly. For example, if D2 has been
|
port, these values must altered accordingly. For example, if D2 has been
|
||||||
@@ -1516,9 +1519,9 @@ should include options from the isc option space:
|
|||||||
The third row in the table above describes the case in which the client
|
The third row in the table above describes the case in which the client
|
||||||
requests that no DNS updates be done. The parameter, "override-no-update",
|
requests that no DNS updates be done. The parameter, "override-no-update",
|
||||||
can be used to instruct the server to disregard the client's wishes. When
|
can be used to instruct the server to disregard the client's wishes. When
|
||||||
this parameter is true, kea-dhcp6 will generate DDNS update request to D2
|
this parameter is true, kea-dhcp6 will generate DDNS update requests to
|
||||||
even if the client requests no updates be done. The N-S-O flags in the
|
kea-dhcp-ddns even if the client requests no updates be done. The N-S-O
|
||||||
server's response to the client will be 0-1-1.
|
flags in the server's response to the client will be 0-1-1.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
To override client delegation, issue the following commands:
|
To override client delegation, issue the following commands:
|
||||||
@@ -1548,7 +1551,7 @@ should include options from the isc option space:
|
|||||||
FQDN using a configurable prefix and suffix.
|
FQDN using a configurable prefix and suffix.
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
Otherwise, using is the domain name value from the client FQDN option as
|
Otherwise, using the domain name value from the client FQDN option as
|
||||||
the candidate name:
|
the candidate name:
|
||||||
<orderedlist>
|
<orderedlist>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
@@ -1622,7 +1625,7 @@ should include options from the isc option space:
|
|||||||
some-computer.example.com.
|
some-computer.example.com.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
When generating a the entire name, kea-dhcp6 will construct name of the
|
When generating the entire name, kea-dhcp6 will construct name of the
|
||||||
format:
|
format:
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
@@ -1631,7 +1634,8 @@ should include options from the isc option space:
|
|||||||
<para>
|
<para>
|
||||||
where address-text is simply the lease IP address converted to a
|
where address-text is simply the lease IP address converted to a
|
||||||
hyphenated string. For example, if lease address is 3001:1::70E and
|
hyphenated string. For example, if lease address is 3001:1::70E and
|
||||||
assuming default values for generated-prefix and qualifying-suffix, the
|
default values are used for
|
||||||
|
<command>generated-prefix</command> and <command>qualifying-suffix</command>, the
|
||||||
generated FQDN would be:
|
generated FQDN would be:
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
@@ -1673,16 +1677,16 @@ should include options from the isc option space:
|
|||||||
<para>
|
<para>
|
||||||
The relay has to have an interface connected to the link on which
|
The relay has to have an interface connected to the link on which
|
||||||
the clients are being configured. Typically the relay has a global IPv6
|
the clients are being configured. Typically the relay has a global IPv6
|
||||||
address configured on that interface that belongs to the subnet that
|
address configured on the interface that belongs to the subnet from which
|
||||||
the server will assign addresses from. In such typical case, the
|
the server will assign addresses. In the typical case, the
|
||||||
server is able to use IPv6 address inserted by the relay (in link-addr
|
server is able to use the IPv6 address inserted by the relay (in the link-addr
|
||||||
field in RELAY-FORW message) to select appropriate subnet.
|
field in RELAY-FORW message) to select the appropriate subnet.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
However, that is not always the case. The relay
|
However, that is not always the case. The relay
|
||||||
address may not match the subnet in certain deployments. This
|
address may not match the subnet in certain deployments. This
|
||||||
usually means that there is more than one subnet allocated for a given
|
usually means that there is more than one subnet allocated for a given
|
||||||
link. Two most common examples where this is the case are long lasting
|
link. The two most common examples where this is the case are long lasting
|
||||||
network renumbering (where both old and new address space is still being
|
network renumbering (where both old and new address space is still being
|
||||||
used) and a cable network. In a cable network both cable modems and the
|
used) and a cable network. In a cable network both cable modems and the
|
||||||
devices behind them are physically connected to the same link, yet
|
devices behind them are physically connected to the same link, yet
|
||||||
@@ -1724,7 +1728,7 @@ should include options from the isc option space:
|
|||||||
In certain cases, it is useful to mix relay address information,
|
In certain cases, it is useful to mix relay address information,
|
||||||
introduced in <xref linkend="dhcp6-relay-override"/> with client
|
introduced in <xref linkend="dhcp6-relay-override"/> with client
|
||||||
classification, explained in <xref linkend="dhcp6-subnet-class"/>.
|
classification, explained in <xref linkend="dhcp6-subnet-class"/>.
|
||||||
One specific example is cable network, where typically modems
|
One specific example is a cable network, where typically modems
|
||||||
get addresses from a different subnet than all devices connected
|
get addresses from a different subnet than all devices connected
|
||||||
behind them.
|
behind them.
|
||||||
</para>
|
</para>
|
||||||
|
@@ -310,7 +310,7 @@ Debian and Ubuntu:
|
|||||||
<para>
|
<para>
|
||||||
For additional instructions concerning the building and installation of
|
For additional instructions concerning the building and installation of
|
||||||
Kea for various databases, see <xref linkend="dhcp-install-configure"/>.
|
Kea for various databases, see <xref linkend="dhcp-install-configure"/>.
|
||||||
For additional instructions concerning configuration backends, see
|
For additional instructions concerning the configuration backends, see
|
||||||
<xref linkend="dhcp-config-backend" />.
|
<xref linkend="dhcp-config-backend" />.
|
||||||
</para>
|
</para>
|
||||||
</note>
|
</note>
|
||||||
@@ -389,7 +389,7 @@ Debian and Ubuntu:
|
|||||||
<section id="dhcp-config-backend">
|
<section id="dhcp-config-backend">
|
||||||
<title>Selecting the Configuration Backend</title>
|
<title>Selecting the Configuration Backend</title>
|
||||||
<para>Kea 0.9 introduces configuration backends that are
|
<para>Kea 0.9 introduces configuration backends that are
|
||||||
switchable during compilation phase. The backend is chosen using
|
switchable during the compilation phase. The backend is chosen using
|
||||||
the --with-kea-config switch when running the configure script. It
|
the --with-kea-config switch when running the configure script. It
|
||||||
currently supports two values: BUNDY and JSON. JSON is the default.
|
currently supports two values: BUNDY and JSON. JSON is the default.
|
||||||
</para>
|
</para>
|
||||||
@@ -415,8 +415,8 @@ Debian and Ubuntu:
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>JSON</term>
|
<term>JSON</term>
|
||||||
<listitem>
|
<listitem>
|
||||||
<simpara>JSON is a new default configuration backend
|
<simpara>JSON is the new default configuration backend
|
||||||
that causes Kea to read JSON configuration file from
|
that causes Kea to read JSON configuration files from
|
||||||
disk. It does not require any framework and thus is
|
disk. It does not require any framework and thus is
|
||||||
considered more lightweight. It will allow dynamic
|
considered more lightweight. It will allow dynamic
|
||||||
on-line reconfiguration, but will lack remote capabilities
|
on-line reconfiguration, but will lack remote capabilities
|
||||||
|
@@ -107,7 +107,7 @@ kea_verbose=no
|
|||||||
<para>
|
<para>
|
||||||
By default, Kea servers managed by <command>keactrl</command> are
|
By default, Kea servers managed by <command>keactrl</command> are
|
||||||
located in <filename>[kea-install-dir]/sbin</filename>. This
|
located in <filename>[kea-install-dir]/sbin</filename>. This
|
||||||
should work for most of the installations. If the default
|
should work for most installations. If the default
|
||||||
location needs to be altered for any reason, the paths
|
location needs to be altered for any reason, the paths
|
||||||
specified with the <parameter>dhcp4_srv</parameter>,
|
specified with the <parameter>dhcp4_srv</parameter>,
|
||||||
<parameter>dhcp6_srv</parameter> and <parameter>dhcp_ddns_srv</parameter>
|
<parameter>dhcp6_srv</parameter> and <parameter>dhcp_ddns_srv</parameter>
|
||||||
|
@@ -264,7 +264,7 @@
|
|||||||
|
|
||||||
Each logger can have zero or more
|
Each logger can have zero or more
|
||||||
<option>output_options</option>. These specify where log
|
<option>output_options</option>. These specify where log
|
||||||
messages are sent to. These are explained in detail below.
|
messages are sent. These are explained in detail below.
|
||||||
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@@ -583,7 +583,7 @@ file be created.</para>
|
|||||||
<varlistentry>
|
<varlistentry>
|
||||||
<term>KEA_LOCKFILE_DIR</term>
|
<term>KEA_LOCKFILE_DIR</term>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
Specifies a directory where logging system should create its
|
Specifies a directory where the logging system should create its
|
||||||
lock file. If not specified, it is
|
lock file. If not specified, it is
|
||||||
<replaceable>prefix</replaceable>/var/run/kea, where
|
<replaceable>prefix</replaceable>/var/run/kea, where
|
||||||
<replaceable>prefix</replaceable> defaults to /usr/local.
|
<replaceable>prefix</replaceable> defaults to /usr/local.
|
||||||
|
@@ -61,7 +61,7 @@ $ <userinput>./configure [your extra parameters]</userinput></screen>
|
|||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Edit configuration file which is by default installed in
|
<para>Edit the configuration file which by default is installed in
|
||||||
<filename>[kea-install-dir]/etc/kea/kea.conf</filename> and contains
|
<filename>[kea-install-dir]/etc/kea/kea.conf</filename> and contains
|
||||||
configuration for all Kea services. Configuration choices for DHCPv4
|
configuration for all Kea services. Configuration choices for DHCPv4
|
||||||
and DHCPv6 services are described in <xref linkend="dhcp4-configuration"/> and <xref linkend="dhcp6-configuration"/>, respectively.</para>
|
and DHCPv6 services are described in <xref linkend="dhcp4-configuration"/> and <xref linkend="dhcp6-configuration"/>, respectively.</para>
|
||||||
|
Reference in New Issue
Block a user