2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-29 21:18:02 +00:00

[#71,!314] Added CB section for the DHCPv6 server.

This commit is contained in:
Marcin Siodelski 2019-05-22 13:06:56 +02:00
parent e6330c948e
commit 1c008c4aba
2 changed files with 142 additions and 2 deletions

View File

@ -5589,7 +5589,7 @@ autogenerated IDs are not stable across configuration changes.</para>
section focuses on the usage of the CB with the DHCPv4 server. It lists
the supported parameters, describes limitations and gives examples of the
DHCPv4 server configuration to take advantage of the CB. Please also refer
to the sibling section <xref linkend="dhcp6-config-backend"/> for the
to the sibling section <xref linkend="dhcp6-cb"/> for the
DHCPv6 specific usage of the CB.
</para>
@ -5630,7 +5630,7 @@ autogenerated IDs are not stable across configuration changes.</para>
<para>
<table frame="all" xml:id="dhcp4-cb-parameters">
<title>List of DHCPv4 Options Supported by the Configuration Backend</title>
<title>List of DHCPv4 Parameters Supported by the Configuration Backend</title>
<tgroup cols="5">
<colspec colname="parameter"/>
<colspec colname="global" align="center"/>

View File

@ -5643,4 +5643,144 @@ autogenerated IDs are not stable across configuration changes.
</section>
<section id="dhcp6-cb">
<title>Configuration Backend in DHCPv6</title>
<para>
In the <xref linkend="config-backend"/> section we have introduced the
Configuration Backend feature, its applicability and limitations. This
section focuses on the usage of the CB with the DHCPv6 server. It lists
the supported parameters, describes limitations and gives examples of the
DHCPv6 server configuration to take advantage of the CB. Please also refer
to the sibling section <xref linkend="dhcp4-cb"/> for the
DHCPv4 specific usage of the CB.
</para>
<section id="dhcp6-cb-parameters">
<title>Supported Parameters</title>
<para>The ultimate goal for the CB is to serve as a central configuration
repository for one or multiple Kea servers connected to the database.
In the future it will be possible to store the most of the server configuration
in the database and it will be possible to reduce the configuration file
to a minimum, i.e. the only mandatory part of the configuration file will be
the <command>config-control</command> parameter which specifies the
neccessary information to connect to the database. In the Kea 1.6.0 release,
however, only the subset of the DHCPv6 server parameters can be stored
in the database. All other parameters must be specified in the JSON
configuration file, if required.</para>
<para>The following table lists DHCPv6 specific parameters supported by
the Configuration Backend with an indication on which level of the
hierarchy it is currently supported. The "n/a" tag is used in cases
when the particular parameter is not applicable on the particular
level of the hierarchy on in cases when the parameter is not supported
by the server on this level of hierarchy. The "no" tag is used when
the parameter is supported by the server on the particular level of
hierarchy but is not configurable via the Configuration Backend.
</para>
<para>All supported parameters can be configured via <command>cb_cmds</command>
hooks library described in the <xref linkend="cb-cmds-library"/>. The
general rule is that the scalar global parameters are set using the
<command>remote-global-parameter6-set</command>. The shared network
specific parameters are set using the <command>remote-network6-set</command>.
Finally, the subnet and pool level parameters are set using the
<command>remote-subnet6-set</command>. Whenever there is an exception from
this general rule, it is highlighted in the table. The non-scalar global
parameters have dedicated commands, e.g. modifying the global DHCPv6 options
(<command>option-data</command>) is performed using the
<command>remote-option6-global-set</command>.</para>
<para>
<table frame="all" xml:id="dhcp6-cb-parameters">
<title>List of DHCPv6 Parameters Supported by the Configuration Backend</title>
<tgroup cols="6">
<colspec colname="parameter"/>
<colspec colname="global" align="center"/>
<colspec colname="shared network" align="center"/>
<colspec colname="subnet" align="center"/>
<colspec colname="pool" align="center"/>
<colspec colname="pd-pool" align="center"/>
<thead>
<row>
<entry>Parameter</entry>
<entry>Global</entry>
<entry>Shared Network</entry>
<entry>Subnet</entry>
<entry>Pool</entry>
<entry>Prefix Delegation Pool</entry>
</row>
</thead>
<tbody
> <row><entry>calculate-tee-times</entry><entry>yes</entry><entry>yes</entry><entry>yes</entry><entry>n/a</entry><entry>n/a</entry></row>
<row><entry>client-class</entry><entry>n/a</entry><entry>yes</entry><entry>yes</entry><entry>no</entry><entry>no</entry></row>
<row><entry>decline-probation-period</entry><entry>yes</entry><entry>n/a</entry><entry>n/a</entry><entry>n/a</entry><entry>n/a</entry></row>
<row><entry>dhcp4o6-port</entry><entry>yes</entry><entry>n/a</entry><entry>n/a</entry><entry>n/a</entry><entry>n/a</entry></row>
<row><entry>interface</entry><entry>n/a</entry><entry>yes</entry><entry>yes</entry><entry>n/a</entry><entry>n/a</entry></row>
<row><entry>interface-id</entry><entry>n/a</entry><entry>yes</entry><entry>yes</entry><entry>n/a</entry><entry>n/a</entry></row>
<row><entry>option-data</entry><entry>yes (via remote-option6-global-set)</entry><entry>yes</entry><entry>yes</entry><entry>yes</entry><entry>yes</entry></row>
<row><entry>option-def</entry><entry>yes (via remote-option-def6-set)</entry><entry>n/a</entry><entry>n/a</entry><entry>n/a</entry><entry>n/a</entry></row>
<row><entry>preferred-lifetime</entry><entry>yes</entry><entry>yes</entry><entry>yes</entry><entry>n/a</entry><entry>n/a</entry></row>
<row><entry>rapid-commit</entry><entry>yes</entry><entry>yes</entry><entry>yes</entry><entry>n/a</entry><entry>n/a</entry></row>
<row><entry>rebind-timer</entry><entry>yes</entry><entry>yes</entry><entry>yes</entry><entry>n/a</entry><entry>n/a</entry></row>
<row><entry>relay</entry><entry>n/a</entry><entry>yes</entry><entry>yes</entry><entry>n/a</entry><entry>n/a</entry></row>
<row><entry>renew-timer</entry><entry>yes</entry><entry>yes</entry><entry>yes</entry><entry>n/a</entry><entry>n/a</entry></row>
<row><entry>require-client-classes</entry><entry>n/a</entry><entry>yes</entry><entry>yes</entry><entry>no</entry><entry>no</entry></row>
<row><entry>reservation-mode</entry><entry>yes</entry><entry>yes</entry><entry>yes</entry><entry>n/a</entry><entry>n/a</entry></row>
<row><entry>t1-percent</entry><entry>yes</entry><entry>yes</entry><entry>yes</entry><entry>n/a</entry><entry>n/a</entry></row>
<row><entry>t2-percent</entry><entry>yes</entry><entry>yes</entry><entry>yes</entry><entry>n/a</entry><entry>n/a</entry></row>
<row><entry>valid-lifetime</entry><entry>yes</entry><entry>yes</entry><entry>yes</entry><entry>n/a</entry><entry>n/a</entry></row>
<row><entry></entry><entry></entry><entry></entry><entry></entry><entry></entry><entry></entry></row>
<row><entry></entry><entry></entry><entry></entry><entry></entry><entry></entry><entry></entry></row>
</tbody>
</tgroup>
</table>
</para>
</section>
<section id="dhcp6-cb-json">
<title>Enabling Configuration Backend</title>
<para>
The following configuration snippet demonstrates how to enable the MySQL
Configuration Backend for the DHCPv6 server:
<screen>
{
"Dhcp6": {
"config-control": {
"config-databases": [
{
"type": "mysql",
"name": "kea",
"user": "kea",
"password": "kea",
"host": "2001:db8:1::1",
"port": 3302
}
],
"config-fetch-wait-time": 30
},
"hooks-libraries": [
{
"library": "/usr/local/lib/kea/hooks/libdhcp_mysql_cb.so"
},
{
"library": "/usr/local/lib/kea/hooks/libdhcp_cb_cmds.so"
}
],
...
}
}
</screen>
</para>
<para>
The configuration structure is almost identical as for the DHCPv4
server (see <xref linkend="dhcp4-cb-json"/> for the detailed description).
</para>
</section>
</section>
</chapter>