mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-09-01 06:25:34 +00:00
Update dhcp6-srv.xml to incorporate Stephen's comments
This commit is contained in:
committed by
Tomek Mrugalski
parent
2f63203465
commit
c6b3dbfc1a
@@ -39,7 +39,7 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<simpara>
|
<simpara>
|
||||||
<command>-p <replaceable>server-port</replaceable></command> -
|
<command>-p <replaceable>server-port</replaceable></command> -
|
||||||
specifies the UDP local port on which the server will listen.
|
specifies the local UDP port on which the server will listen.
|
||||||
This is only useful during testing, as a DHCPv6 server
|
This is only useful during testing, as a DHCPv6 server
|
||||||
listening on ports other than the standard ones will not
|
listening on ports other than the standard ones will not
|
||||||
be able to handle regular DHCPv6 queries.</simpara>
|
be able to handle regular DHCPv6 queries.</simpara>
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
<listitem>
|
<listitem>
|
||||||
<simpara>
|
<simpara>
|
||||||
<command>-P <replaceable>client-port</replaceable></command> -
|
<command>-P <replaceable>client-port</replaceable></command> -
|
||||||
specifies the UDP remote port to which the server will send
|
specifies the remote UDP port to which the server will send
|
||||||
all responses. This is only useful during testing, as a
|
all responses. This is only useful during testing, as a
|
||||||
DHCPv6 server sending responses to ports other than the
|
DHCPv6 server sending responses to ports other than the
|
||||||
standard ones will not be able to handle regular DHCPv6
|
standard ones will not be able to handle regular DHCPv6
|
||||||
@@ -55,15 +55,13 @@
|
|||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<simpara>
|
<simpara>
|
||||||
<command>-t <replaceable>file</replaceable></command> -
|
<command>-t <replaceable>file</replaceable></command> - specifies a
|
||||||
specifies the configuration file to be tested. Kea-dhcp6
|
configuration file to be tested. Kea-dhcp6 will load it, check it, and
|
||||||
will attempt to load it and will conduct sanity
|
exit. During the test, log messages are printed to standard output and
|
||||||
checks. Note that certain checks are possible only while
|
error messages to standard error. The result of the test is reported
|
||||||
running the actual server. The actual status is reported
|
through the exit code (0 = configuration looks ok, 1 = error
|
||||||
with an exit code (0 = configuration looks ok, 1 = error
|
encountered). The check is not comprehensive; certain checks are
|
||||||
encountered). Kea prints out log messages to standard
|
possible only when running the server.</simpara>
|
||||||
output and errors to standard error when testing the
|
|
||||||
configuration.</simpara>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<simpara>
|
<simpara>
|
||||||
@@ -88,18 +86,6 @@
|
|||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
<para>
|
|
||||||
The <filename>config.report</filename> may also be accessed more
|
|
||||||
directly, via the following command. The binary <userinput>path</userinput> may be found
|
|
||||||
in the install directory or in the <filename>.libs</filename>
|
|
||||||
subdirectory in the source tree. For example:
|
|
||||||
<filename>kea/src/bin/dhcp6/.libs/kea-dhcp6</filename>.
|
|
||||||
|
|
||||||
<screen>
|
|
||||||
strings <userinput>path</userinput>/kea-dhcp6 | sed -n 's/;;;; //p'
|
|
||||||
</screen>
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
On startup, the server will detect available network interfaces
|
On startup, the server will detect available network interfaces
|
||||||
and will attempt to open UDP sockets on all interfaces
|
and will attempt to open UDP sockets on all interfaces
|
||||||
@@ -116,7 +102,7 @@ strings <userinput>path</userinput>/kea-dhcp6 | sed -n 's/;;;; //p'
|
|||||||
<simpara><command>localstatedir</command>: The value as passed into the
|
<simpara><command>localstatedir</command>: The value as passed into the
|
||||||
build configure script; it defaults to "/usr/local/var". Note
|
build configure script; it defaults to "/usr/local/var". Note
|
||||||
that this value may be overridden at runtime by setting the environment
|
that this value may be overridden at runtime by setting the environment
|
||||||
variable KEA_PIDFILE_DIR. This is intended primarily for testing purposes.
|
variable KEA_PIDFILE_DIR, although this is intended primarily for testing purposes.
|
||||||
</simpara>
|
</simpara>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
@@ -210,7 +196,7 @@ In the example above this object is called <command>Dhcp6</command>.
|
|||||||
of multiple modules within a single configuration file, but this is not
|
of multiple modules within a single configuration file, but this is not
|
||||||
recommended. The
|
recommended. The
|
||||||
only object, besides the one specifying module configuration, which can be
|
only object, besides the one specifying module configuration, which can be
|
||||||
(and usually is) included in the same file, is <command>Logging</command>.
|
(and usually is) included in the same file, is the <command>Logging</command> object.
|
||||||
However, we don't include this object in the example above for clarity.
|
However, we don't include this object in the example above for clarity.
|
||||||
</para>
|
</para>
|
||||||
</note>
|
</note>
|
||||||
@@ -239,9 +225,9 @@ define some global parameters. <command>valid-lifetime</command>
|
|||||||
defines how long the addresses (leases) given out by the server are valid. If
|
defines how long the addresses (leases) given out by the server are valid. If
|
||||||
nothing changes, a client that got an 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, i.e. 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
|
connections. <command>renew-timer</command> and
|
||||||
<command> rebind-timer</command> are values that define T1 and T2 timers that
|
<command> rebind-timer</command> are values that define T1 and T2 timers that
|
||||||
govern when the client will begin the renewal and rebind procedures.</para>
|
govern when the client will begin the renewal and rebind procedures.</para>
|
||||||
|
|
||||||
@@ -308,7 +294,7 @@ In some cases in may be preferable to use more compact notation.
|
|||||||
<para>After all parameters are specified, we have two contexts open:
|
<para>After all parameters are specified, we have two contexts open:
|
||||||
global and Dhcp6, so we need two closing curly brackets to close them.
|
global and Dhcp6, so we need two closing curly brackets to close them.
|
||||||
In a real-life configuration file there most likely would be additional
|
In a real-life configuration file there most likely would be additional
|
||||||
components defined such as Logging, so the closing brace would be followed
|
components defined such as Logging, so the first closing brace would be followed
|
||||||
by a comma and another object definition.</para>
|
by a comma and another object definition.</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -387,14 +373,14 @@ by a comma and another object definition.</para>
|
|||||||
This configuration selects the <filename>/tmp/kea-leases6.csv</filename> as
|
This configuration selects the <filename>/tmp/kea-leases6.csv</filename> as
|
||||||
the storage for lease information and enables persistence (writing lease updates
|
the storage for lease information and enables persistence (writing lease updates
|
||||||
to this file). It also configures the backend to perform a periodic cleanup
|
to this file). It also configures the backend to perform a periodic cleanup
|
||||||
of the lease files, executed every 30 minutes.
|
of the lease file every 30 minutes.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>It is important to know how the lease file contents are organized
|
<para>It is important to know how the lease file contents are organized
|
||||||
to understand why the periodic lease file cleanup is needed. Every time
|
to understand why the periodic lease file cleanup is needed. Every time
|
||||||
the server updates a lease or creates a new lease for the client, the new
|
the server updates a lease or creates a new lease for the client, the new
|
||||||
lease information must be recorded in the lease file. For performance reasons,
|
lease information must be recorded in the lease file. For performance reasons,
|
||||||
the server does not update the existing client's lease in the file, as it would
|
the server does not update the existing client's lease in the file, as this would
|
||||||
potentially require rewriting the entire file. Instead, it simply appends the new lease
|
potentially require rewriting the entire file. Instead, it simply appends the new lease
|
||||||
information to the end of the file; the previous lease entries for the
|
information to the end of the file; the previous lease entries for the
|
||||||
client are not removed. When the server loads leases from the lease file, e.g.
|
client are not removed. When the server loads leases from the lease file, e.g.
|
||||||
@@ -412,9 +398,9 @@ by a comma and another object definition.</para>
|
|||||||
is configurable, and it should be selected according to the frequency of lease
|
is configurable, and it should be selected according to the frequency of lease
|
||||||
renewals initiated by the clients. The more frequent the renewals, the smaller
|
renewals initiated by the clients. The more frequent the renewals, the smaller
|
||||||
the value of <command>lfc-interval</command> should be. Note, however, that the
|
the value of <command>lfc-interval</command> should be. Note, however, that the
|
||||||
LFC takes time and thus it is possible (although unlikely) that a new cleanup
|
LFC takes time and thus it is possible (although unlikely) that, if the
|
||||||
may be started while the previous cleanup instance is still running, if the
|
<command>lfc-interval</command> is too short, a new cleanup
|
||||||
<command>lfc-interval</command> is too short. The server would recover from
|
may be started while the previous one is still running. The server would recover from
|
||||||
this by skipping the new cleanup when it detects that the previous cleanup
|
this by skipping the new cleanup when it detects that the previous cleanup
|
||||||
is still in progress. But it implies that the actual cleanups will be
|
is still in progress. But it implies that the actual cleanups will be
|
||||||
triggered more rarely than configured. Moreover, triggering a new cleanup
|
triggered more rarely than configured. Moreover, triggering a new cleanup
|
||||||
@@ -521,7 +507,7 @@ The default value for Cassandra is 2000 ms.
|
|||||||
|
|
||||||
<note>
|
<note>
|
||||||
<para>
|
<para>
|
||||||
Automatic reconnect to database backends is configured individually per backend.
|
Automatic reconnection to database backends is configured individually per backend.
|
||||||
This allows you to tailor the recovery parameters to each backend you use.
|
This allows you to tailor the recovery parameters to each backend you use.
|
||||||
We do suggest that you enable it either for all backends or no backends so you
|
We do suggest that you enable it either for all backends or no backends so you
|
||||||
have consistent behavior. Losing connectivity to a backend for which reconnect
|
have consistent behavior. Losing connectivity to a backend for which reconnect
|
||||||
@@ -532,14 +518,14 @@ The default value for Cassandra is 2000 ms.
|
|||||||
</note>
|
</note>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Note that host parameter is used by MySQL and PostgreSQL
|
<note>Note that host parameter is used by MySQL and PostgreSQL
|
||||||
backends. Cassandra has a concept of contact points that could be
|
backends. Cassandra has a concept of contact points that could be
|
||||||
used to contact the cluster, instead of a single IP or
|
used to contact the cluster, instead of a single IP or
|
||||||
hostname. It takes a list of comma-separated IP addresses, which may be specified as:
|
hostname. It takes a list of comma-separated IP addresses, which may be specified as:
|
||||||
<screen>
|
<screen>
|
||||||
"Dhcp6": { "lease-database": { <userinput>"contact-points" : "192.0.2.1,192.0.2.2"</userinput>, ... }, ... }
|
"Dhcp6": { "lease-database": { <userinput>"contact-points" : "192.0.2.1,192.0.2.2"</userinput>, ... }, ... }
|
||||||
</screen>
|
</screen>
|
||||||
</para>
|
</note></para>
|
||||||
|
|
||||||
<para>Finally, the credentials of the account under which the server will
|
<para>Finally, the credentials of the account under which the server will
|
||||||
access the database should be set:
|
access the database should be set:
|
||||||
@@ -581,11 +567,11 @@ linkend="cassandra-database-configuration4"/> for details.</para>
|
|||||||
from the configuration file are checked first and external storage is checked
|
from the configuration file are checked first and external storage is checked
|
||||||
later, if necessary.</para>
|
later, if necessary.</para>
|
||||||
|
|
||||||
<para>Kea extends the host storage to multiple storages. Operations
|
<para>In fact, host information can be placed in multiple stores. Operations
|
||||||
are performed on host storages in the configuration order with a special
|
are performed on the stores in the order they are defined in the configuration
|
||||||
case for addition; read-only storages must be configured after a
|
file, although this leads to a restriction in ordering in the case of a host
|
||||||
required read-write storage, or host reservation addition will
|
reservation addition; read-only stores must be configured after a (required)
|
||||||
always fail.</para>
|
read-write store, or the addition will fail.</para>
|
||||||
|
|
||||||
<section xml:id="hosts-databases-configuration6">
|
<section xml:id="hosts-databases-configuration6">
|
||||||
<title>DHCPv6 Hosts Database Configuration</title>
|
<title>DHCPv6 Hosts Database Configuration</title>
|
||||||
@@ -641,7 +627,7 @@ The default value for Cassandra is 2000 ms.
|
|||||||
|
|
||||||
<note>
|
<note>
|
||||||
<para>
|
<para>
|
||||||
Automatic reconnect to database backends is configured individually per backend.
|
Automatic reconnection to database backends is configured individually per backend.
|
||||||
This allows you to tailor the recovery parameters to each backend you use.
|
This allows you to tailor the recovery parameters to each backend you use.
|
||||||
We do suggest that you enable it either for all backends or no backends so you
|
We do suggest that you enable it either for all backends or no backends so you
|
||||||
have consistent behavior. Losing connectivity to a backend for which reconnect
|
have consistent behavior. Losing connectivity to a backend for which reconnect
|
||||||
@@ -662,7 +648,7 @@ The default value for Cassandra is 2000 ms.
|
|||||||
If there is no password to the account, set the password to the empty string
|
If there is no password to the account, set the password to the empty string
|
||||||
"". (This is also the default.)</para>
|
"". (This is also the default.)</para>
|
||||||
|
|
||||||
<para>The multiple storage extension uses a similar syntax; a configuration
|
<para>The multiple store extension uses a similar syntax; a configuration
|
||||||
is placed into a "hosts-databases" list instead of into a "hosts-database"
|
is placed into a "hosts-databases" list instead of into a "hosts-database"
|
||||||
entry as in:
|
entry as in:
|
||||||
<screen>
|
<screen>
|
||||||
@@ -747,7 +733,7 @@ It is anticipated that this form of usage will only be used when it is desired t
|
|||||||
temporarily override a list of interface names and listen on all interfaces.
|
temporarily override a list of interface names and listen on all interfaces.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>For the DHCPv4 server, binding to specific addresses and
|
<para>As with the DHCPv4 server, binding to specific addresses and
|
||||||
disabling re-detection of interfaces are supported. But
|
disabling re-detection of interfaces are supported. But
|
||||||
<command>dhcp-socket-type</command> is not because DHCPv6 uses
|
<command>dhcp-socket-type</command> is not because DHCPv6 uses
|
||||||
UDP/IPv6 sockets only. The following example shows how to disable the
|
UDP/IPv6 sockets only. The following example shows how to disable the
|
||||||
@@ -766,8 +752,8 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
|
|
||||||
<para>The loopback interfaces (i.e. the "lo" or "lo0" interface)
|
<para>The loopback interfaces (i.e. the "lo" or "lo0" interface)
|
||||||
are not configured by default, unless explicitely mentioned in
|
are not configured by default, unless explicitely mentioned in
|
||||||
the configuration. Note that Kea requires a link-local address which does
|
the configuration. Note that Kea requires a link-local address (which does
|
||||||
not exist on all systems, or a specified unicast address as in:
|
not exist on all systems), or a specified unicast address as in:
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<screen>
|
<screen>
|
||||||
@@ -837,7 +823,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
traffic sent to global unicast addresses as well. The most common
|
traffic sent to global unicast addresses as well. The most common
|
||||||
reason for this is to have relays send their traffic to the server
|
reason for this is to have relays send their traffic to the server
|
||||||
directly. To configure the server to listen on a specific unicast address,
|
directly. To configure the server to listen on a specific unicast address,
|
||||||
nn interface name can be
|
the interface name can be
|
||||||
optionally followed by a slash, followed by the global unicast address on which
|
optionally followed by a slash, followed by the global unicast address on which
|
||||||
the server should listen. The server listens to this address in addition to normal
|
the server should listen. The server listens to this address in addition to normal
|
||||||
link-local binding and listening on the ff02::1:2 address. The sample configuration
|
link-local binding and listening on the ff02::1:2 address. The sample configuration
|
||||||
@@ -993,7 +979,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
(<command>prefix</command>) and a prefix length
|
(<command>prefix</command>) and a prefix length
|
||||||
(<command>prefix-len</command>), as well as a delegated prefix length
|
(<command>prefix-len</command>), as well as a delegated prefix length
|
||||||
(<command>delegated-len</command>). The delegated length must not be
|
(<command>delegated-len</command>). The delegated length must not be
|
||||||
shorter than (that is, it must be numerically greater or equal to) the
|
shorter than (that is, it must be numerically greater than or equal to) the
|
||||||
prefix length. If both the delegated and prefix lengths are equal, the
|
prefix length. If both the delegated and prefix lengths are equal, the
|
||||||
server will be able to delegate only one prefix. The delegated prefix
|
server will be able to delegate only one prefix. The delegated prefix
|
||||||
does not have to match the subnet prefix.
|
does not have to match the subnet prefix.
|
||||||
@@ -1058,12 +1044,12 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<section xml:id="dhcp6-std-options">
|
<section xml:id="dhcp6-std-options">
|
||||||
<title>Standard DHCPv6 Options</title>
|
<title>Standard DHCPv6 Options</title>
|
||||||
<para>
|
<para>
|
||||||
One of the major features of a DHCPv6 server is to provide configuration
|
One of the major features of a DHCPv6 server is the ability 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 requests them. The following example shows how to
|
explicitly requests them. The following example shows how to
|
||||||
configure DNS servers, one of the most frequently used
|
configure one of the most frequently used options, which supplies the
|
||||||
options. Options specified in this way are considered
|
address of DNS servers. Options specified in this way are considered
|
||||||
global and apply to all configured subnets.
|
global and apply to all configured subnets.
|
||||||
|
|
||||||
<screen>
|
<screen>
|
||||||
@@ -1154,7 +1140,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
}
|
}
|
||||||
</screen>
|
</screen>
|
||||||
Defined options are added to the response when the client requests them,
|
Defined options are added to the response when the client requests them,
|
||||||
at a few exceptions which are always added. To enforce the addition
|
as well as a few options that are always added. To enforce the addition
|
||||||
of a particular option set the always-send flag to true as in:
|
of a particular option set the always-send flag to true as in:
|
||||||
<screen>
|
<screen>
|
||||||
"Dhcp6": {
|
"Dhcp6": {
|
||||||
@@ -1208,9 +1194,8 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
same values of a given option, you should use global options; you
|
same values of a given option, you should use global options; you
|
||||||
can then override specific values for a small number of subnets.
|
can then override specific values for a small number of subnets.
|
||||||
On the other hand, if you use different values in each subnet,
|
On the other hand, if you use different values in each subnet,
|
||||||
it does not make sense to specify global option values
|
it does not make sense to specify global option values; rather, you should
|
||||||
(Dhcp6/option-data); instead, you should set only subnet-specific values
|
set only subnet-specific ones.
|
||||||
(Dhcp6/subnet[X]/option-data[Y]).
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@@ -1281,7 +1266,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
</screen>
|
</screen>
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
Options can also be specified in class of host reservation scope.
|
Options can also be specified in a class of host reservation scope.
|
||||||
The current Kea options precedence order is (from most important):
|
The current Kea options precedence order is (from most important):
|
||||||
host reservation, pool, subnet, shared network, class, global.
|
host reservation, pool, subnet, shared network, class, global.
|
||||||
</para>
|
</para>
|
||||||
@@ -1289,13 +1274,13 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
The currently supported standard DHCPv6 options are
|
The currently supported standard DHCPv6 options are
|
||||||
listed in <xref linkend="dhcp6-std-options-list"/>.
|
listed in <xref linkend="dhcp6-std-options-list"/>.
|
||||||
"Name" and "Code"
|
"Name" and "Code"
|
||||||
are the values that should be used as a name in the option-data
|
are the values that should be used as a name/code in the option-data
|
||||||
structures. "Type" designates the format of the data; the meanings of
|
structures. "Type" designates the format of the data; the meanings of
|
||||||
the various types is given in <xref linkend="dhcp-types"/>.
|
the various types is given in <xref linkend="dhcp-types"/>.
|
||||||
</para>
|
</para>
|
||||||
<para>When a data field is a string, and that string contains
|
<para>When a data field is a string, and that string contains
|
||||||
the comma (,; U+002C) character, the comma must be escaped with a double
|
the comma (,; U+002C) character, the comma must be escaped with double
|
||||||
reverse solidus character (\; U+005C). This double escape is
|
backslashes (\; U+005C). This double escape is
|
||||||
required, because both the routine splitting CSV data into fields
|
required, because both the routine splitting CSV data into fields
|
||||||
and JSON use the same escape character; a single escape (\,) would
|
and JSON use the same escape character; a single escape (\,) would
|
||||||
make the JSON invalid. For example, the string
|
make the JSON invalid. For example, the string
|
||||||
@@ -1327,7 +1312,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 it allows
|
allows the specification of more than one IPv6 address, enabling
|
||||||
clients to obtain the addresses of multiple DNS servers.
|
clients to obtain the addresses of multiple DNS servers.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@@ -1336,8 +1321,8 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
|
|
||||||
<para>
|
<para>
|
||||||
<xref linkend="dhcp6-custom-options"/> describes the configuration
|
<xref linkend="dhcp6-custom-options"/> describes the configuration
|
||||||
syntax to create custom option definitions (formats). It is generally not
|
syntax to create custom option definitions (formats). Creation of custom
|
||||||
allowed to create custom definitions for standard options, even if the
|
definitions for standard options is generally not permitted, even if the
|
||||||
definition being created matches the actual option format defined in the
|
definition being created matches the actual option format defined in the
|
||||||
RFCs. There is an exception to this rule for standard options for which
|
RFCs. There is an exception to this rule for standard options for which
|
||||||
Kea currently does not provide a definition. In order to use such options,
|
Kea currently does not provide a definition. In order to use such options,
|
||||||
@@ -1473,8 +1458,8 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
<para>
|
<para>
|
||||||
S46 container options group rules and optional port parameters
|
S46 container options group rules and optional port parameters
|
||||||
for a specified domain. There are three container options specified
|
for a specified domain. There are three container options specified
|
||||||
in the "dhcp6" (top-level) option space: MAP-E Container option,
|
in the "dhcp6" (top-level) option space: the MAP-E Container option,
|
||||||
MAP-T Container option, and S46 Lightweight 4over6 Container option.
|
the MAP-T Container option, and the S46 Lightweight 4over6 Container option.
|
||||||
These options only contain encapsulated options specified below;
|
These options only contain encapsulated options specified below;
|
||||||
they do not include any data fields.
|
they do not include any data fields.
|
||||||
</para>
|
</para>
|
||||||
@@ -1675,7 +1660,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
value(s).
|
value(s).
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>The <command>name</command>, <command>code</command>, and
|
<para>Only the <command>name</command>, <command>code</command>, and
|
||||||
<command>type</command> parameters are required; all others are
|
<command>type</command> parameters are required; all others are
|
||||||
optional. The <command>array</command> default value is
|
optional. The <command>array</command> default value is
|
||||||
<command>false</command>. The <command>record-types</command>
|
<command>false</command>. The <command>record-types</command>
|
||||||
@@ -1732,7 +1717,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
list in the <command>record-types</command> field and should be ones from those listed in <xref linkend="dhcp-types"/>.
|
list in the <command>record-types</command> field and should be ones from those listed in <xref linkend="dhcp-types"/>.
|
||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
The values of the option are set as follows:
|
The values of the options are set in a <command>option-data</command> statement as follows:
|
||||||
<screen>
|
<screen>
|
||||||
"Dhcp6": {
|
"Dhcp6": {
|
||||||
"option-data": [
|
"option-data": [
|
||||||
@@ -1797,7 +1782,7 @@ temporarily override a list of interface names and listen on all interfaces.
|
|||||||
Information option (code 17). The following examples show how to
|
Information option (code 17). The following examples show how to
|
||||||
define an option "foo" with code 1 that consists of an IPv6 address,
|
define an option "foo" with code 1 that consists of an IPv6 address,
|
||||||
an unsigned 16-bit integer, and a string. The "foo" option is
|
an unsigned 16-bit integer, and a string. The "foo" option is
|
||||||
conveyed in a Vendor-Specific Information option. This option
|
conveyed in a Vendor-Specific Information option, which
|
||||||
comprises a single uint32 value that is set to "12345".
|
comprises a single uint32 value that is set to "12345".
|
||||||
The sub-option "foo" follows the data field holding this value.
|
The sub-option "foo" follows the data field holding this value.
|
||||||
<screen>
|
<screen>
|
||||||
@@ -1989,18 +1974,18 @@ should include options from the new option space:
|
|||||||
<simpara><command>code</command> - the server requires an option name or
|
<simpara><command>code</command> - the server requires an option name or
|
||||||
option code to identify an option. This parameter may be left unspecified if
|
option code to identify an option. This parameter may be left unspecified if
|
||||||
the <command>name</command> parameter is specified. However, this also
|
the <command>name</command> parameter is specified. However, this also
|
||||||
requires that the particular option has its definition (it is either a
|
requires that the particular option have a definition (either as a
|
||||||
standard option or an administrator created a definition for the option
|
standard option or an administrator-created definition for the option
|
||||||
using an 'option-def' structure), as the option definition associates an
|
using an 'option-def' structure), as the option definition associates an
|
||||||
option with a particular name. It is possible to configure an option
|
option with a particular name. It is possible to configure an option
|
||||||
for which there is no definition (unspecified option format).
|
for which there is no definition (unspecified option format).
|
||||||
Configuration of such options requires the use of option code.
|
Configuration of such options requires the use of the option code.
|
||||||
</simpara>
|
</simpara>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<simpara><command>space</command> - if the option space is unspecified it
|
<simpara><command>space</command> - if the option space is unspecified it
|
||||||
will default to 'dhcp6', which is an option space holding DHCPv6 standard
|
will default to 'dhcp6', which is an option space holding standard DHCPv6
|
||||||
options.
|
options.
|
||||||
</simpara>
|
</simpara>
|
||||||
</listitem>
|
</listitem>
|
||||||
@@ -2010,7 +1995,7 @@ should include options from the new option space:
|
|||||||
defaults to an empty value. The empty value is mostly used for the
|
defaults to an empty value. The empty value is mostly used for the
|
||||||
options which have no payload (boolean options), but it is legal to specify
|
options which have no payload (boolean options), but it is legal to specify
|
||||||
empty values for some options which carry variable-length data and which
|
empty values for some options which carry variable-length data and which
|
||||||
spec allows for the length of 0. For such options, the data parameter
|
the specification allows a length of 0. For such options, the data parameter
|
||||||
may be omitted in the configuration.</simpara>
|
may be omitted in the configuration.</simpara>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
@@ -2068,8 +2053,7 @@ should include options from the new option space:
|
|||||||
<title>Rapid Commit</title>
|
<title>Rapid Commit</title>
|
||||||
<para>The Rapid Commit option, described in
|
<para>The Rapid Commit option, described in
|
||||||
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://tools.ietf.org/html/rfc8415">RFC 8415</link>, is supported
|
<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://tools.ietf.org/html/rfc8415">RFC 8415</link>, is supported
|
||||||
by the Kea DHCPv6 server. However, support is disabled by default for
|
by the Kea DHCPv6 server. However, support is disabled by default. It can be enabled on a per-subnet basis using the
|
||||||
all subnets. It can be enabled for a particular subnet using the
|
|
||||||
<command>rapid-commit</command> parameter as shown below:
|
<command>rapid-commit</command> parameter as shown below:
|
||||||
<screen>
|
<screen>
|
||||||
"Dhcp6": {
|
"Dhcp6": {
|
||||||
@@ -2179,7 +2163,7 @@ should include options from the new option space:
|
|||||||
<para>There are certain conditions that must be met for the option to be
|
<para>There are certain conditions that must be met for the option to be
|
||||||
included. First, the server must not provide the option itself; in
|
included. First, the server must not provide the option itself; in
|
||||||
other words, if both relay and server provide an option, the server always
|
other words, if both relay and server provide an option, the server always
|
||||||
takes precedence. Second, the option must be RSOO-enabled. IANA maintains a
|
takes precedence. Second, the option must be RSOO-enabled. (RSOO is the "Relay Supplied Options option.") IANA maintains a
|
||||||
list of RSOO-enabled options <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xhtml#options-relay-supplied">here</link>.
|
list of RSOO-enabled options <link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.iana.org/assignments/dhcpv6-parameters/dhcpv6-parameters.xhtml#options-relay-supplied">here</link>.
|
||||||
However, there may be cases when system administrators want to echo other
|
However, there may be cases when system administrators want to echo other
|
||||||
options. Kea can be instructed to treat other options as RSOO-enabled.
|
options. Kea can be instructed to treat other options as RSOO-enabled.
|
||||||
@@ -2192,7 +2176,7 @@ should include options from the new option space:
|
|||||||
}
|
}
|
||||||
</screen>
|
</screen>
|
||||||
</para>
|
</para>
|
||||||
<para>As of March 2015, only option 65 is RSOO-enabled by IANA. This
|
<para>As of February 2019, only option 65 is RSOO-enabled by IANA. This
|
||||||
option will always be treated as such, so there is no need to explicitly
|
option will always be treated as such, so there is no need to explicitly
|
||||||
mark it. Also, when enabling standard options, it is possible to use their
|
mark it. Also, when enabling standard options, it is possible to use their
|
||||||
names, rather than option code, e.g. use
|
names, rather than option code, e.g. use
|
||||||
@@ -2260,16 +2244,16 @@ should include options from the new option space:
|
|||||||
The process of classification is conducted in five steps.
|
The process of classification is conducted in five steps.
|
||||||
The first step is to assess an incoming packet and assign it to
|
The first step is to assess an incoming packet and assign it to
|
||||||
zero or more classes.
|
zero or more classes.
|
||||||
The second step is to choose a subnet, possibly based on the
|
Next, a subnet is chosen, possibly based on the
|
||||||
class information.
|
class information.
|
||||||
The next step is to evaluate class expressions depending on the
|
After that, class expressions are evaluated depending on the
|
||||||
built-in "KNOWN"/"UNKNOWN" classes after host reservation lookup,
|
built-in "KNOWN"/"UNKNOWN" classes after host reservation lookup,
|
||||||
using them for pool/pd-pool selection and assigning classes from host
|
using them for pool/pd-pool selection and assigning classes from host
|
||||||
reservations.
|
reservations.
|
||||||
The list of required classes is then built and each class of the list
|
The list of required classes is then built and each class of the list
|
||||||
has its expression evaluated; when it returns "true" the packet is added
|
has its expression evaluated; when it returns "true" the packet is added
|
||||||
as a member of the class.
|
as a member of the class.
|
||||||
The last step is to assign options, again possibly based on the class
|
Finally, options are assigned, again possibly based on the class
|
||||||
information.
|
information.
|
||||||
More complete and detailed information is available in
|
More complete and detailed information is available in
|
||||||
<xref linkend="classify"/>.
|
<xref linkend="classify"/>.
|
||||||
@@ -2333,8 +2317,8 @@ should include options from the new option space:
|
|||||||
<para>
|
<para>
|
||||||
This example shows a configuration using an automatically generated
|
This example shows a configuration using an automatically generated
|
||||||
"VENDOR_CLASS_" class. The administrator of the network has
|
"VENDOR_CLASS_" class. The administrator of the network has
|
||||||
decided that addresses from range 2001:db8:1::1 to 2001:db8:1::ffff are
|
decided that addresses in the range 2001:db8:1::1 to 2001:db8:1::ffff are
|
||||||
managed by the Dhcp6 server and only clients belonging to the
|
to be managed by the DHCP6 server and that only clients belonging to the
|
||||||
eRouter1.0 client class are allowed to use that pool.
|
eRouter1.0 client class are allowed to use that pool.
|
||||||
|
|
||||||
<screen>
|
<screen>
|
||||||
@@ -2437,7 +2421,7 @@ should include options from the new option space:
|
|||||||
<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 "D2") 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 Name Change Requests or NCRs.
|
||||||
Each NCR contains the following information:
|
Each NCR contains the following information:
|
||||||
<orderedlist>
|
<orderedlist>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
@@ -2448,7 +2432,7 @@ should include options from the new option space:
|
|||||||
DNS updates (PTR records), or both
|
DNS updates (PTR records), or both
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
<listitem><para>
|
<listitem><para>
|
||||||
The FQDN, lease address, and DHCID
|
The Fully Qualified Domain Name (FQDN), lease address, and DHCID (information identifying the client associated with the FQDN)
|
||||||
</para></listitem>
|
</para></listitem>
|
||||||
</orderedlist>
|
</orderedlist>
|
||||||
The parameters controlling the generation of NCRs for submission to D2
|
The parameters controlling the generation of NCRs for submission to D2
|
||||||
@@ -2728,7 +2712,7 @@ should include options from the new option space:
|
|||||||
</section>
|
</section>
|
||||||
<section xml:id="dhcpv6-fqdn-name-generation">
|
<section xml:id="dhcpv6-fqdn-name-generation">
|
||||||
<title>kea-dhcp6 Name Generation for DDNS Update Requests</title>
|
<title>kea-dhcp6 Name Generation for DDNS Update Requests</title>
|
||||||
<para>Each NameChangeRequest must of course include the fully qualified
|
<para>Each Name Change Request must of course include the fully qualified
|
||||||
domain name whose DNS entries are to be affected. kea-dhcp6 can be
|
domain name whose DNS entries are to be affected. kea-dhcp6 can be
|
||||||
configured to supply a portion or all of that name, based upon what it
|
configured to supply a portion or all of that name, based upon what it
|
||||||
receives from the client in the DHCPREQUEST.</para>
|
receives from the client in the DHCPREQUEST.</para>
|
||||||
@@ -2774,7 +2758,7 @@ should include options from the new option space:
|
|||||||
</para></listitem>
|
</para></listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
<note>
|
<note>
|
||||||
Note that formerly, this parameter was a boolean and permitted only values
|
Note that in early versions of Kea, this parameter was a boolean and permitted only values
|
||||||
of <command>true</command> and <command>false</command>. Boolean values
|
of <command>true</command> and <command>false</command>. Boolean values
|
||||||
have been deprecated and are no longer accepted. If you are currently using
|
have been deprecated and are no longer accepted. If you are currently using
|
||||||
booleans, you must replace them with the desired mode name. A value of
|
booleans, you must replace them with the desired mode name. A value of
|
||||||
@@ -3032,18 +3016,17 @@ should include options from the new option space:
|
|||||||
to tolerate certain inconsistent data. For example, a network
|
to tolerate certain inconsistent data. For example, a network
|
||||||
administrator that temporarily removed a subnet from a configuration
|
administrator that temporarily removed a subnet from a configuration
|
||||||
wouldn't want all the leases associated with it disappear from the
|
wouldn't want all the leases associated with it disappear from the
|
||||||
lease database. Kea has a mechanism to better control sanity
|
lease database. Kea has a mechanism to control sanity
|
||||||
checks such as this.
|
checks for situations such as this.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
Kea now supports a new configuration scope called
|
Kea supports a configuration scope called
|
||||||
<command>sanity-checks</command>. It currently allows only a
|
<command>sanity-checks</command>. It currently allows only a
|
||||||
single parameter called <command>lease-checks</command>. It
|
single parameter called <command>lease-checks</command>, which
|
||||||
governs the verification that is done when a new lease is
|
governs the verification carried out when a new lease is
|
||||||
loaded from a lease file. With the introduction of the
|
loaded from a lease file. This mechanism permits Kea to
|
||||||
sanity-checks mechanism, it is now possible to tell Kea to
|
attempt to correct inconsistent data.
|
||||||
try to correct inconsistent data.
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@@ -3079,8 +3062,7 @@ should include options from the new option space:
|
|||||||
<listitem>
|
<listitem>
|
||||||
<simpara><command>warn</command> - if problems are detected, a
|
<simpara><command>warn</command> - if problems are detected, a
|
||||||
warning will be displayed, but the lease data will be accepted
|
warning will be displayed, but the lease data will be accepted
|
||||||
anyway. This is the default value. If not explicitly configured to
|
anyway. This is the default value.</simpara>
|
||||||
some other value, this level will be used.</simpara>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem>
|
<listitem>
|
||||||
<simpara><command>fix</command> - If data inconsistency is
|
<simpara><command>fix</command> - If data inconsistency is
|
||||||
@@ -3108,17 +3090,6 @@ should include options from the new option space:
|
|||||||
<screen>
|
<screen>
|
||||||
"Dhcp6": {
|
"Dhcp6": {
|
||||||
"sanity-checks": {
|
"sanity-checks": {
|
||||||
// This parameter determines what to do when a new lease appears in the
|
|
||||||
// system (i.e. either is read from disk during memfile startup or is
|
|
||||||
// added via lease commands). There are five modes supported:
|
|
||||||
// none - do nothing, accept them as is
|
|
||||||
// warn - if subnet-id problems are detected, print a warning, but
|
|
||||||
// otherwise load the lease as is. This is the default value.
|
|
||||||
// fix - attempt to fix the lease by finding appropriate subnet-id value.
|
|
||||||
// if there is no suitable subnet, the lease is loaded as is.
|
|
||||||
// fix-del - attempt to fix the lease by findind appropriate subnet-id
|
|
||||||
// value. If there is no suitable subnet, the lease is deleted.
|
|
||||||
// del - delete leases that have incorrect subnet-id values.
|
|
||||||
<userinput>"lease-checks": "fix-del"</userinput>
|
<userinput>"lease-checks": "fix-del"</userinput>
|
||||||
},
|
},
|
||||||
...
|
...
|
||||||
@@ -3138,8 +3109,11 @@ should include options from the new option space:
|
|||||||
a per-host basis. The most obvious one is to reserve a specific, static IPv6
|
a per-host basis. The most obvious one is to reserve a specific, static IPv6
|
||||||
address or/and prefix for exclusive use by a given client (host); the returning
|
address or/and prefix for exclusive use by a given client (host); the returning
|
||||||
client will get the same address or/and prefix every time, and other clients will
|
client will get the same address or/and prefix every time, and other clients will
|
||||||
never get that address.</para>
|
never get that address. Another example when host reservations are applicable is when a host
|
||||||
|
has specific requirements, e.g. a printer that needs additional DHCP options
|
||||||
|
or a cable modem that needs specific parameters. Yet another possible use case
|
||||||
|
is to define unique names for hosts.</para>
|
||||||
|
|
||||||
<para>Note that there may be cases when a
|
<para>Note that there may be cases when a
|
||||||
new reservation has been made for a client for the address or prefix
|
new reservation has been made for a client for the address or prefix
|
||||||
currently in use by another client. We call this situation a "conflict." The
|
currently in use by another client. We call this situation a "conflict." The
|
||||||
@@ -3147,12 +3121,7 @@ should include options from the new option space:
|
|||||||
sections. Once the conflict is resolved, the client will keep receiving the reserved
|
sections. Once the conflict is resolved, the client will keep receiving the reserved
|
||||||
configuration when it renews.</para>
|
configuration when it renews.</para>
|
||||||
|
|
||||||
<para>Another example when host reservations are applicable is when a host
|
<para>Host reservations are defined as parameters for each subnet. Each host
|
||||||
has specific requirements, e.g. a printer that needs additional DHCP options
|
|
||||||
or a cable modem that needs specific parameters. Yet another possible use case
|
|
||||||
is to define unique names for hosts.</para>
|
|
||||||
|
|
||||||
<para>Hosts reservations are defined as parameters for each subnet. Each host
|
|
||||||
must be identified by either DUID or its hardware/MAC address. See
|
must be identified by either DUID or its hardware/MAC address. See
|
||||||
<xref linkend="mac-in-dhcpv6"/> for details. There is an optional
|
<xref linkend="mac-in-dhcpv6"/> for details. There is an optional
|
||||||
<command>reservations</command> array in the
|
<command>reservations</command> array in the
|
||||||
@@ -3238,7 +3207,7 @@ should include options from the new option space:
|
|||||||
both for the same host is considered a configuration error.
|
both for the same host is considered a configuration error.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>Adding host reservation incurs a performance penalty. In principle,
|
<para>Adding host reservations incurs a performance penalty. In principle,
|
||||||
when a server that does not support host reservation responds to a query,
|
when a server that does not support host reservation responds to a query,
|
||||||
it needs to check whether there is a lease for a given address being
|
it needs to check whether there is a lease for a given address being
|
||||||
considered for allocation or renewal. The server that also supports host
|
considered for allocation or renewal. The server that also supports host
|
||||||
@@ -3560,9 +3529,9 @@ should include options from the new option space:
|
|||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><simpara> <command>all</command> - enables both in-pool
|
<listitem><simpara> <command>all</command> - enables both in-pool
|
||||||
and out-of-pool host reservation types. This is the default value. This
|
and out-of-pool host reservation types. This setting is the default value, and
|
||||||
setting is the safest and the most flexible. As all checks are conducted,
|
is the safest and most flexible. However, as all checks are conducted,
|
||||||
it is also the slowest. This does not check against global reservations.
|
it is also the slowest. It does not check against global reservations.
|
||||||
</simpara></listitem>
|
</simpara></listitem>
|
||||||
|
|
||||||
<listitem><simpara> <command>out-of-pool</command> - allows only out of
|
<listitem><simpara> <command>out-of-pool</command> - allows only out of
|
||||||
@@ -3580,7 +3549,7 @@ should include options from the new option space:
|
|||||||
host reservations. With this setting in place, the server searches for
|
host reservations. With this setting in place, the server searches for
|
||||||
reservations for a client only among the defined global reservations.
|
reservations for a client only among the defined global reservations.
|
||||||
If an address is specified, the server will skip the reservation checks
|
If an address is specified, the server will skip the reservation checks
|
||||||
done when dealing in other modes, thus improving performance.
|
carried out when dealing in other modes, thus improving performance.
|
||||||
Caution is advised when using this setting; Kea does not sanity-check
|
Caution is advised when using this setting; Kea does not sanity-check
|
||||||
the reservations when <command>global</command> and
|
the reservations when <command>global</command> and
|
||||||
misconfiguration may cause problems.
|
misconfiguration may cause problems.
|
||||||
@@ -3644,7 +3613,7 @@ should include options from the new option space:
|
|||||||
|
|
||||||
<para>Another aspect of the host reservations is the different types of
|
<para>Another aspect of the host reservations is the different types of
|
||||||
identifiers. Kea currently supports two types of identifiers
|
identifiers. Kea currently supports two types of identifiers
|
||||||
in DHCPv6: hw-address and duid. This is beneficial from a
|
in DHCPv6: hardware address and DUID. This is beneficial from a
|
||||||
usability perspective; however, there is one drawback. For each incoming
|
usability perspective; however, there is one drawback. For each incoming
|
||||||
packet Kea has to to extract each identifier type and then query the
|
packet Kea has to to extract each identifier type and then query the
|
||||||
database to see if there is a reservation by this particular
|
database to see if there is a reservation by this particular
|
||||||
@@ -3692,7 +3661,7 @@ If not specified, the default value is:
|
|||||||
the client's current location. To facilitate such a need, a global
|
the client's current location. To facilitate such a need, a global
|
||||||
reservation mechanism has been implemented. The idea behind it is that
|
reservation mechanism has been implemented. The idea behind it is that
|
||||||
regular host reservations are tied to specific subnets, by using a specific
|
regular host reservations are tied to specific subnets, by using a specific
|
||||||
subnet-id. Kea can now specify a global
|
subnet-id. Kea can specify a global
|
||||||
reservation that can be used in every subnet that has global reservations
|
reservation that can be used in every subnet that has global reservations
|
||||||
enabled.</para>
|
enabled.</para>
|
||||||
|
|
||||||
@@ -3708,7 +3677,7 @@ If not specified, the default value is:
|
|||||||
of the network that is covered by 2001:db8:ffff::/48, it will get an IP
|
of the network that is covered by 2001:db8:ffff::/48, it will get an IP
|
||||||
address 2001:db8:ffff::1, which will be outside of the prefix announced
|
address 2001:db8:ffff::1, which will be outside of the prefix announced
|
||||||
by its local router using Router Advertisements. Such a configuration
|
by its local router using Router Advertisements. Such a configuration
|
||||||
would be unusable or at the very least riddled with issues, such as
|
would be unusable or, at the very least, riddled with issues, such as
|
||||||
downlink traffic not reaching the device.</para>
|
downlink traffic not reaching the device.</para>
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
@@ -3775,7 +3744,7 @@ If not specified, the default value is:
|
|||||||
being deployed on the same physical link. The need to understand
|
being deployed on the same physical link. The need to understand
|
||||||
that two or more subnets are used on the same link requires additional logic
|
that two or more subnets are used on the same link requires additional logic
|
||||||
in the DHCP server. This capability is
|
in the DHCP server. This capability is
|
||||||
called "shared networks" in Kea and ISC DHCP projects. It is sometimes also
|
called "shared networks" in Kea and ISC DHCP configurations. It is sometimes also
|
||||||
called "shared subnets." In Microsoft's nomenclature it is called "multinet."
|
called "shared subnets." In Microsoft's nomenclature it is called "multinet."
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@@ -3786,7 +3755,7 @@ If not specified, the default value is:
|
|||||||
delegated prefixes within a subnet. Another IPv6-specific example
|
delegated prefixes within a subnet. Another IPv6-specific example
|
||||||
is an experiment with an addressing scheme. With the advent of IPv6 deployment
|
is an experiment with an addressing scheme. With the advent of IPv6 deployment
|
||||||
and a vast address space, many organizations split the address space into
|
and a vast address space, many organizations split the address space into
|
||||||
subnets, then deploy it and after a while discover that they want to split it
|
subnets, deploy it, and then after a while discover that they want to split it
|
||||||
differently. In the transition period, they want both old and new addressing
|
differently. In the transition period, they want both old and new addressing
|
||||||
to be available. Thus the need for more than one subnet on the same physical
|
to be available. Thus the need for more than one subnet on the same physical
|
||||||
link.</para>
|
link.</para>
|
||||||
@@ -3815,9 +3784,9 @@ If not specified, the default value is:
|
|||||||
</para>
|
</para>
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
<para>It is strongly discouraged for Kea deployments to assume that the
|
<para>Deployments should not assume that Kea waits until it has
|
||||||
server doesn't allocate leases from other subnets until it uses all
|
allocated all the addresses from the first subnet in a shared network
|
||||||
the leases from the first subnet in the shared network.</para>
|
before allocating addresses from other subnets.</para>
|
||||||
</note>
|
</note>
|
||||||
|
|
||||||
<para>In order to define a shared network an additional configuration scope
|
<para>In order to define a shared network an additional configuration scope
|
||||||
@@ -3831,7 +3800,7 @@ If not specified, the default value is:
|
|||||||
// and it must be unique among all shared networks.
|
// and it must be unique among all shared networks.
|
||||||
"name": "ipv6-lab-1",
|
"name": "ipv6-lab-1",
|
||||||
|
|
||||||
// Subnet selector can be specifed on the shared network level.
|
// The subnet selector can be specifed on the shared network level.
|
||||||
// Subnets from this shared network will be selected for clients
|
// Subnets from this shared network will be selected for clients
|
||||||
// communicating via relay agent having the specified IP address.
|
// communicating via relay agent having the specified IP address.
|
||||||
"relay": {
|
"relay": {
|
||||||
@@ -4204,7 +4173,7 @@ desired outcome if one wishes to provide service only to clients with known prop
|
|||||||
</screen>
|
</screen>
|
||||||
</para>
|
</para>
|
||||||
<para>It is worth noting that Kea conducts additional checks when processing a
|
<para>It is worth noting that Kea conducts additional checks when processing a
|
||||||
packet if shared networks are defined. First, instead of simply checking whether
|
packet if shared networks are defined. Instead of simply checking whether
|
||||||
there's a reservation for a given client in its initially selected subnet, it
|
there's a reservation for a given client in its initially selected subnet, it
|
||||||
looks through all subnets in a shared network for a reservation. This is
|
looks through all subnets in a shared network for a reservation. This is
|
||||||
one of the reasons why defining a shared network may impact performance. If
|
one of the reasons why defining a shared network may impact performance. If
|
||||||
@@ -4327,7 +4296,7 @@ autogenerated IDs are not stable across configuration changes.
|
|||||||
which indicates that the server should use ANY value for these
|
which indicates that the server should use ANY value for these
|
||||||
components. If the server already uses a DUID-LLT it will use the
|
components. If the server already uses a DUID-LLT it will use the
|
||||||
values from this DUID; if the server uses a DUID of a different type
|
values from this DUID; if the server uses a DUID of a different type
|
||||||
or doesn't use any DUID yet, it will generate these values.
|
or doesn't yet use any DUID, it will generate these values.
|
||||||
Similarly, if the "identifier" is assigned an empty string, the
|
Similarly, if the "identifier" is assigned an empty string, the
|
||||||
value of the identifier will be generated. Omitting any of these
|
value of the identifier will be generated. Omitting any of these
|
||||||
parameters is equivalent to setting them to those special values.
|
parameters is equivalent to setting them to those special values.
|
||||||
@@ -4349,7 +4318,7 @@ autogenerated IDs are not stable across configuration changes.
|
|||||||
indicates that the server should use ANY link-layer address and
|
indicates that the server should use ANY link-layer address and
|
||||||
hardware type. If the server is already using DUID-LLT, it will
|
hardware type. If the server is already using DUID-LLT, it will
|
||||||
use the link-layer address and hardware type from the existing DUID.
|
use the link-layer address and hardware type from the existing DUID.
|
||||||
If the server is not using any DUID yet, it will use the link-layer
|
If the server is not yet using any DUID, it will use the link-layer
|
||||||
address and hardware type from one of the available network
|
address and hardware type from one of the available network
|
||||||
interfaces. The server will use an explicit value of time; if it
|
interfaces. The server will use an explicit value of time; if it
|
||||||
is different than a time value present in the currently used
|
is different than a time value present in the currently used
|
||||||
@@ -4492,7 +4461,9 @@ autogenerated IDs are not stable across configuration changes.
|
|||||||
"name": "dns-servers",
|
"name": "dns-servers",
|
||||||
"data": "2001:db8::1, 2001:db8::2"
|
"data": "2001:db8::1, 2001:db8::2"
|
||||||
} ]</userinput>,
|
} ]</userinput>,
|
||||||
"lease-database": { "type": "memfile" }
|
"lease-database": {
|
||||||
|
"type": "memfile"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</screen>
|
</screen>
|
||||||
This very simple configuration will provide DNS server information
|
This very simple configuration will provide DNS server information
|
||||||
@@ -4833,7 +4804,7 @@ autogenerated IDs are not stable across configuration changes.
|
|||||||
misconfigured device is not resolved, the duplicate-address
|
misconfigured device is not resolved, the duplicate-address
|
||||||
scenario will repeat. If reconfigured correctly, this mechanism provides an
|
scenario will repeat. If reconfigured correctly, this mechanism provides an
|
||||||
opportunity to recover from such an event automatically, without
|
opportunity to recover from such an event automatically, without
|
||||||
any sysadmin intervention.</para>
|
any system administrator intervention.</para>
|
||||||
|
|
||||||
<para>To configure the decline probation period to a value other
|
<para>To configure the decline probation period to a value other
|
||||||
than the default, the following syntax can be used:
|
than the default, the following syntax can be used:
|
||||||
|
Reference in New Issue
Block a user