</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>
"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": {
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
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": {
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>.
</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. -->
<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>
</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>
"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": {
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
}
]
</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>
</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,