]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[#71,!314] Added CB section for the DHCPv6 server.
authorMarcin Siodelski <marcin@isc.org>
Wed, 22 May 2019 11:06:56 +0000 (13:06 +0200)
committerMarcin Siodelski <marcin@isc.org>
Mon, 27 May 2019 13:23:50 +0000 (15:23 +0200)
doc/guide/dhcp4-srv.xml
doc/guide/dhcp6-srv.xml

index 887d300e6f2e12efad2968cf3662f74d03773784..066336c0de26d6a98e2e838ef9bea55455e3742c 100644 (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"/>
index ec0610dabfa6866be816e4c815347c138ebe2a72..a383bd3e32d86ccb60a2ba8522bf611cf92c2647 100644 (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>