If the file already exists and contains the PID of a live process,
the server will issue a DHCP4_ALREADY_RUNNING log message and exit. It
is possible, though unlikely, that the file is a remnant of a system crash
- and the process to which the PID belongs is unrelated to Kea. In such a
+ and the process to which the PID belongs is unrelated to Kea. In such a
case it would be necessary to manually delete the PID file.
</para>
</section>
<section id="dhcp4-ddns-config">
- <title>Configuring DHCPv4 for DDNS</title>
+ <title>DDNS for DHCPv4</title>
<para>
As mentioned earlier, kea-dhcp4 can be configured to generate requests to the
DHCP-DDNS server (referred to here as "D2" ) to update DNS entries. These requests are known as
<command>"override-client-update": false</command>
</simpara></listitem>
<listitem><simpara>
- <command>"replace-client-name": false</command>
+ <command>"replace-client-name": "never"</command>
</simpara></listitem>
<listitem><simpara>
<command>"generated-prefix": "myhost"</command>
supply a portion or all of that name based upon what it receives from
the client in the DHCP REQUEST.</para>
<para>
- The rules for determining the FQDN option are as follows:
+ The basic rules for constructing the FQDN that will be used for DNS
+ entries are:
<orderedlist>
<listitem><para>
- If configured to do, so ignore the DHCPREQUEST contents and generate a
- FQDN using a configurable prefix and suffix.
+ If the DHCPREQUEST contains the client FQDN option, the candidate name
+ is taken from there, otherwise it is taken from the Host Name option.
</para></listitem>
<listitem><para>
- If the DHCPREQUEST contains the client FQDN option, the candidate
- name is taken from there, otherwise it is taken from the Host Name option.
- The candidate name may then be modified:
- <orderedlist>
- <listitem><para>
- If the candidate name is a fully qualified domain name, use it.
+ If the candidate name is a partial (i.e. unqualified) name then add a
+ configurable suffix to the name and use the result as the FQDN.
</para></listitem>
<listitem><para>
- If the candidate name is a partial (i.e. unqualified) name then
- add a configurable suffix to the name and use the result as the FQDN.
+ If the candidate name provided is empty, generate a FQDN using a
+ configurable prefix and suffix.
</para></listitem>
<listitem><para>
- If the candidate name is a empty, generate a FQDN using a
- configurable prefix and suffix.
+ If the client provided neither option, then no DNS action will be taken.
</para></listitem>
</orderedlist>
+ These rules can amended by setting the
+ <command>replace-client-name</command> parameter which provides the
+ following modes of behavior:
+ <itemizedlist>
+ <listitem><para>
+ <command>never</command> - Use the name the client sent. If the client
+ sent no name, do not generate one. This is the default mode.
</para></listitem>
- </orderedlist>
- To instruct kea-dhcp4 to always generate the FQDN for a client, set the
- parameter <command>replace-client-name</command> to true as follows:
+ <listitem><para>
+ <command>always</command> - Replace the name the client sent. If the
+ client sent no name, generate one for them.
+ </para></listitem>
+ <listitem><para>
+ <command>when_present</command> - Replace the name the client sent.
+ If the client sent no name, do not generate one.
+ </para></listitem>
+ <listitem><para>
+ <command>when_not_present</command> - Use the name the client sent.
+ If the client sent no name, generate one for them.
+ </para></listitem>
+ </itemizedlist>
+ <note>
+ Note that formerly, this parameter was a boolean and permitted only values
+ of <command>true</command> and <command>false</command>. Boolean values
+ will still be accepted but may eventually be deprecated. A value of
+ <command>true</command> equates to <command>when_present</command>,
+ <command>false</command> equates to <command>never</command>.
+ </note>
+
+ For example, To instruct kea-dhcp4 to always generate the FQDN for a
+ client, set the parameter <command>replace-client-name</command> to
+ <command>always</command> as follows:
</para>
<screen>
"Dhcp4": {
"dhcp-ddns": {
- <userinput>"replace-client-name": true</userinput>,
+ <userinput>"replace-client-name": "always"</userinput>,
...
},
...
</section>
<section id="dhcp6-ddns-config">
- <title>Configuring DHCPv6 for DDNS</title>
+ <title>DDNS for DHCPv6</title>
<para>
As mentioned earlier, kea-dhcp6 can be configured to generate requests to
the DHCP-DDNS server (referred to here as "D2") to update
<command>"override-client-update": false</command>
</simpara></listitem>
<listitem><simpara>
- <command>"replace-client-name": false</command>
+ <command>"replace-client-name": "never"</command>
</simpara></listitem>
<listitem><simpara>
<command>"generated-prefix": "myhost"</command>
<section id="dhcpv6-fqdn-name-generation">
<title>kea-dhcp6 name generation for DDNS update requests</title>
- <para>Each NameChangeRequest must of course include the fully qualified 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 receives from
- the client in the DHCP REQUEST.</para>
-
- <para>The rules for determining the FQDN option are as follows:
+ <para>Each NameChangeRequest must of course include the fully qualified
+ 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
+ receives from the client in the DHCP REQUEST.</para>
+ <para>
+ The basic rules for constructing the FQDN that will be used for DNS
+ entries are:
<orderedlist>
<listitem><para>
- If configured to do so ignore the REQUEST contents and generate a
- FQDN using a configurable prefix and suffix.
+ If the DHCPREQUEST contains the client FQDN option, the candidate name
+ is taken from there.
</para></listitem>
<listitem><para>
- Otherwise, using the domain name value from the client FQDN option as
- the candidate name:
- <orderedlist>
- <listitem><para>
- If the candidate name is a fully qualified domain name then use it.
+ If the candidate name is a partial (i.e. unqualified) name then add a
+ configurable suffix to the name and use the result as the FQDN.
</para></listitem>
<listitem><para>
- If the candidate name is a partial (i.e. unqualified) name then
- add a configurable suffix to the name and use the result as the FQDN.
+ If the candidate name provided is empty, generate a FQDN using a
+ configurable prefix and suffix.
</para></listitem>
<listitem><para>
- If the candidate name is a empty then generate a FQDN using a
- configurable prefix and suffix.
+ If the client provided neither option, then no DNS action will be taken.
</para></listitem>
</orderedlist>
+ These rules can amended by setting the
+ <command>replace-client-name</command> parameter which provides the
+ following modes of behavior:
+ <itemizedlist>
+ <listitem><para>
+ <command>never</command> - Use the name the client sent. If the client
+ sent no name, do not generate one. This is the default mode.
</para></listitem>
- </orderedlist>
- To instruct kea-dhcp6 to always generate a FQDN, set the parameter
- "replace-client-name" to true:
+ <listitem><para>
+ <command>always</command> - Replace the name the client sent. If the
+ client sent no name, generate one for them.
+ </para></listitem>
+ <listitem><para>
+ <command>when_present</command> - Replace the name the client sent.
+ If the client sent no name, do not generate one.
+ </para></listitem>
+ <listitem><para>
+ <command>when_not_present</command> - Use the name the client sent.
+ Supply the name if the client did not.
+ </para></listitem>
+ </itemizedlist>
+ <note>
+ Note that formerly, this parameter was a boolean and permitted only values
+ of <command>true</command> and <command>false</command>. Boolean values
+ will still be accepted but may eventually be deprecated. A value of
+ <command>true</command> equates to <command>when_present</command>,
+ <command>false</command> equates to <command>never</command>.
+ </note>
+
+ For example, To instruct kea-dhcp6 to always generate the FQDN for a
+ client, set the parameter <command>replace-client-name</command> to
+ <command>always</command> as follows:
</para>
<screen>
"Dhcp6": {
"dhcp-ddns": {
- <userinput>"replace-client-name": true</userinput>,
+ <userinput>"replace-client-name": "always"</userinput>,
...
},
...
},
{
"item_name": "replace-client-name",
- "item_type": "boolean",
+ "item_type": "string",
"item_optional": true,
- "item_default": false,
+ "item_default": "never",
"item_description": "Should server replace the domain-name supplied by the client"
},
{
},
{
"item_name": "replace-client-name",
- "item_type": "boolean",
+ "item_type": "string",
"item_optional": true,
- "item_default": false,
+ "item_default": "never",
"item_description": "Should server replace the domain-name supplied by the client"
},
{
-# Copyright (C) 2012-2015 Internet Systems Consortium, Inc. ("ISC")
+# Copyright (C) 2012-2016 Internet Systems Consortium, Inc. ("ISC")
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this