]> git.ipfire.org Git - thirdparty/kea.git/commitdiff
[4273] Added dhcp4o6-port and DHCPv4-over-DHCPv6 sections to dhcp4 and dhcp6 guides
authorFrancis Dupont <fdupont@isc.org>
Fri, 1 Jul 2016 19:20:33 +0000 (21:20 +0200)
committerFrancis Dupont <fdupont@isc.org>
Fri, 1 Jul 2016 19:20:33 +0000 (21:20 +0200)
doc/guide/dhcp4-srv.xml
doc/guide/dhcp6-srv.xml

index a0f422e37c9f7d7fe5e85643691dca031b4af708..f0ae17587d7c2ebeec1cb416ed8167a7fbcba60b 100644 (file)
@@ -90,9 +90,9 @@ strings <userinput>path</userinput>/kea-dhcp4 | sed -n 's/;;;; //p'
       </para>
 
       <para>
-           When running in a console, the server can be shut down by
-           pressing ctrl-c. It detects the key combination and shuts
-           down gracefully.
+            When running in a console, the server can be shut down by
+            pressing ctrl-c. It detects the key combination and shuts
+            down gracefully.
       </para>
 
       <para>
@@ -154,6 +154,7 @@ strings <userinput>path</userinput>/kea-dhcp4 | sed -n 's/;;;; //p'
     "valid-lifetime": 4000,
     "renew-timer": 1000,
     "rebind-timer": 2000,
+    "dhcp4o6-port": 6767,
 
 # Next we setup the interfaces to be used by the server.
     "interfaces-config": {
@@ -227,7 +228,10 @@ define T1 and T2 timers that govern when the client will begin the renewal and
 rebind procedures. Note that <command>renew-timer</command> and
 <command>rebind-timer</command> are optional. If they are not specified 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>.
+<command>dhcp4o6-port</command> is used by the DHCPv4-over-DHCPv6 support
+(more in <xref linkend="dhcp4-dhcp4o6-config"/>).
+</para>
 
 <para>The <command>interfaces-config</command> map specifies the server
 configuration concerning the network interfaces, on which the server should
@@ -750,8 +754,8 @@ temporarily override a list of interface names and listen on all interfaces.
     manually specify a unique identifier for each subnet.
   </para>
       <para>
-       The following configuration will assign the specified subnet
-       identifier to the newly configured subnet:
+        The following configuration will assign the specified subnet
+        identifier to the newly configured subnet:
 
         <screen>
 "Dhcp4": {
@@ -2238,7 +2242,7 @@ It is merely echoed by the server
       which updated
       <ulink url="http://tools.ietf.org/html/rfc2131">RFC 2131</ulink>.
       That update now states that the server must
-      send client-id if the client sent it. That is the default behaviour
+      send client-id if the client sent it. That is the default behavior
       that Kea offers. However, in some cases older devices that do
       not support
       <ulink url="http://tools.ietf.org/html/rfc6842">RFC 6842</ulink>.
@@ -2419,7 +2423,103 @@ It is merely echoed by the server
 
     </section>
 
-  </section> <!-- end of configuring kea-dhcp4 server section with many subsections -->
+"    <section id="dhcp4-dhcp4o6-config">
+      <title>DHCPv4-over-DHCPv6 DHCPv4 side</title>
+      <para>
+      The support of DHCPv4-over-DHCPv6 transport
+      <ulink url="http://tools.ietf.org/html/rfc7341">RFC 7341</ulink>
+      is implemented using cooperating DHCPv4 and DHCPv6 servers.
+      This section is about the configuration of the DHCPv4 side
+      (the DHCPv6 side is described in <xref linkend="dhcp6-dhcp4o6-config"/>).
+      </para>
+      <note>
+      DHCPv4-over-DHCPv6 support is experimental and the details of
+      the inter-process communication can change: DHCPv4 and DHCPv6
+      should run the same version of Kea.
+      </note>
+      <para>
+      The <command>dhcp4o6-port</command> global parameter specifies
+      the first of the two consecutive ports of the UDP sockets used
+      for the communication between the DHCPv6 and DHCPv4 servers
+      (DHCPv4-QUERY requests from the DHCPv6 side are received on the
+      first socket, DHCPv4-RESPONSE replies are sent back on the
+      second socket to the DHCPv6 side which forwards them to
+      clients).
+      </para>
+      <para>
+      The subnet selection uses 3 specific configuration entries,
+      the presence of any of these enables the subnet for
+      DHCPv4-over-DHCPv6. These entries are:
+      <itemizedlist>
+        <listitem>
+        <simpara><command>4o6-interface</command>: Takes an interface name
+        which is matched against the incoming interface name.
+        </simpara>
+        </listitem>
+        <listitem>
+        <simpara><command>4o6-subnet</command>: Takes a prefix (i.e, an
+        IPv6 address followed by a slash and a prefix length).
+        </simpara>
+        </listitem>
+        <listitem>
+        <simpara><command>4o6-interface-id</command>: Takes a relay interface
+        ID option value.
+        </simpara>
+        </listitem>
+      </itemizedlist>
+      </para>
+      <para>
+      The following configuration was used during some tests:
+<screen>
+{
+
+# DHCPv4 conf
+"Dhcp4":
+{
+  "interfaces-config": {
+    "interfaces": [ "eno33554984" ]
+  },
+
+  "lease-database": {
+    "type": "memfile",
+    "name": "leases4"
+  },
+
+  "valid-lifetime": 4000,
+
+  "subnet4": [
+   {    "subnet": "10.10.10.0/24",
+        "4o6-interface": "eno33554984",
+        "4o6-subnet": "2001:db8:1:1::/64",
+        "pools": [ { "pool": "10.10.10.100 - 10.10.10.199" } ] }
+  ],
+
+  "dhcp4o6-port": 6767
+
+},
+
+"Logging":
+{
+  "loggers": [
+    {
+      "name": "kea-dhcp4",
+      "output_options": [
+          {
+            "output": "/tmp/kea-dhcp4.log"
+          }
+      ],
+      "severity": "DEBUG",
+      "debuglevel": 0
+    }
+  ]
+}
+
+}
+</screen>
+    </para>
+    </section>
+
+  </section> <!-- end of configuring kea-dhcp4 server section -->
 
   <!-- Host reservation is a large topic. There will be many subsections,
    so it should be a section on its own. -->
@@ -3141,10 +3241,11 @@ It is merely echoed by the server
             <entry>pkt4-nak-sent</entry>
             <entry>integer</entry>
             <entry>
-            Number of DHCPNAK packets sent. This statistic is expected to
-            grow when the server choses to not honor the address requested by a
-            client. In general, the sum of pkt4-ack-sent and pkt4-nak-sent
-            should be close to pkt4-request-received.
+            Number of DHCPNAK packets sent. This statistic is expected
+            to grow when the server chooses to not honor the address
+            requested by a client. In general, the sum of
+            pkt4-ack-sent and pkt4-nak-sent should be close to
+            pkt4-request-received.
             </entry>
             </row>
 
@@ -3283,12 +3384,12 @@ It is merely echoed by the server
       </para>
 
       <para>
-       The length of the path specified by the <command>socket-name</command>
-       parameter is restricted by the maximum length for the unix socket name
-       on your operating system, i.e. the size of the <command>sun_path</command>
-       field in the <command>sockaddr_un</command> structure, decreased by 1.
-       This value varies on different operating systems between 91 and 107
-       characters. The typical values are 107 on Linux and 103 on FreeBSD.
+        The length of the path specified by the <command>socket-name</command>
+        parameter is restricted by the maximum length for the unix socket name
+        on your operating system, i.e. the size of the <command>sun_path</command>
+        field in the <command>sockaddr_un</command> structure, decreased by 1.
+        This value varies on different operating systems between 91 and 107
+        characters. The typical values are 107 on Linux and 103 on FreeBSD.
       </para>
 
       <para>
index 2b350b8e33aeebdd07c8e9f00ac822db95c24d9d..a772b87c925514f7c7894b59a01e7191f18c9064 100644 (file)
@@ -154,6 +154,7 @@ strings <userinput>path</userinput>/kea-dhcp6 | sed -n 's/;;;; //p'
     "rebind-timer": 2000,
     "preferred-lifetime": 3000,
     "valid-lifetime": 4000,
+    "dhcp4o6-port": 6767,
 
 # Next we setup the interfaces to be used by the server.
     "interfaces-config": {
@@ -227,7 +228,10 @@ 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
 connections). <command>renew-timer</command> and <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>
+the client will begin the renewal and rebind procedures.
+<command>dhcp4o6-port</command> is used by the DHCPv4-over-DHCPv6 support
+(more in <xref linkend="dhcp6-dhcp4o6-config"/>).
+</para>
 
 <para>The <command>interfaces-config</command> map specifies the server
 configuration concerning the network interfaces, on which the server should
@@ -290,7 +294,7 @@ syntax would be used:
     }
 ]
 </screen>
-Note that indentation is optional and is used for aesthetic purposes only.
+Note that indentation is optional and is used for esthetic purposes only.
 In some cases in may be preferable to use more compact notation.
 </para>
 
@@ -2181,6 +2185,96 @@ should include options from the isc option space:
       </para>
     </section>
 
+    <section id="dhcp6-dhcp4o6-config">
+      <title>DHCPv4-over-DHCPv6 DHCPv6 side</title>
+      <para>
+      The support of DHCPv4-over-DHCPv6 transport
+      <ulink url="http://tools.ietf.org/html/rfc7341">RFC 7341</ulink>
+      is implemented using cooperating DHCPv4 and DHCPv6 servers.
+      This section is about the configuration of the DHCPv6 side
+      (the DHCPv4 side is described in <xref linkend="dhcp4-dhcp4o6-config"/>).
+      </para>
+      <note>
+      DHCPv4-over-DHCPv6 support is experimental and the details of
+      the inter-process communication can change: DHCPv4 and DHCPv6
+      should run the same version of Kea.
+      </note>
+      <para>
+      There is only one specific parameter for the DHCPv6 side:
+      <command>dhcp4o6-port</command> which specifies the first of the
+      two consecutive ports of the UDP sockets used for the communication
+      between the DHCPv6 and DHCPv4 servers (received DHCPv4-QUERY requests
+      are forwarded to the DHCPv4 side on the first socket, DHCPv4-RESPONSE
+      replies on the second socket are forwarded to clients).
+      </para>
+      <para>
+      Two other configuration entries are in general required: unicast traffic
+      support (see <xref linkend="dhcp6-unicast"/>) and DHCP 4o6 server
+      address option (name "dhcp4o6-server-addr", code  88).
+      </para>
+      <para>
+      The following configuration was used during some tests:
+<screen>
+{
+
+# DHCPv6 conf
+"Dhcp6":
+{
+  "interfaces-config": {
+    "interfaces": [ "eno33554984/2001:db8:1:1::1" ]
+  },
+
+  "lease-database": {
+    "type": "memfile",
+    "name": "leases6"
+  },
+
+  "preferred-lifetime": 3000,
+  "valid-lifetime": 4000,
+  "renew-timer": 1000,
+  "rebind-timer": 2000,
+
+  "subnet6": [
+   {   "subnet": "2001:db8:1:1::/64",
+       "interface": "eno33554984",
+       "pools": [ { "pool": "2001:db8:1:1::1:0/112" } ] }
+   ],
+
+  "dhcp4o6-port": 6767,
+
+  "option-data": [
+   {  "name": "dhcp4o6-server-addr",
+      "code": 88,
+      "space": "dhcp6",
+      "csv-format": true,
+      "data": "2001:db8:1:1::1" }
+   ]
+},
+
+"Logging":
+{
+  "loggers": [
+    {
+      "name": "kea-dhcp6",
+      "output_options": [
+          {
+            "output": "/tmp/kea-dhcp6.log"
+          }
+      ],
+      "severity": "DEBUG",
+      "debuglevel": 0
+    }
+  ]
+}
+
+}
+</screen>
+      </para>
+      <note>
+      Relayed DHCPv4-QUERY DHCPv6 messages are not yet supported.
+      </note>
+    </section>
+
    </section>
 
   <!-- Host reservation is a large topic. There will be many subsections,