Commit 5c08e702 authored by Thomas Markwalder's avatar Thomas Markwalder
Browse files

[#2354] Added built-in class "SKIP_DDNS"

Added ChangeLog entry

doc/sphinx/arm/hooks-ddns-tuning.rst
doc/sphinx/arm/hooks.rst
    Updated ARM

src/lib/dhcpsrv/client_class_def.cc
    Added built-in class "SKIP_DDNS"
parent 6cf6fc94
2019. [func] tmark
Added new built-in class "SKIP_DDNS" which may be used in
conjunction with the ddns-tuning hook library to to skip
performing DDNS updates for a given client.
(Gitlab #2354)
2018. [func] razvan
The kea-dhcp4 server now supports portions of RFC 3396,
allowing it to send and receive DHCP options longer than 255
......
.. _hooks-ddns-tuning:
``ddns_tuning``: Tuning DNS updates
===================================
``ddns_tuning``: Tuning DDNS updates
====================================
This hook library adds support for fine tuning various DNS update aspects.
Currently it supports procedural host name generation. The DDNS Tuning hook
Currently it supports procedural host name generation and the ability to
skip performing DDNS updates for select clients. The DDNS Tuning hook
is a premium feature.
The library, which was added in Kea 2.1.5, can be loaded by the ``kea-dhcp4``
......@@ -148,3 +149,40 @@ response to a client query (e.g. SOLICIT, REQUEST, RENEW, REBIND) is as follows:
6. If the value calculated by the hook is not an empty string and is different than
the host name formed in the prior steps (1 or 2), the calculated value becomes the
final host name.
Skipping DDNS Updates
~~~~~~~~~~~~~~~~~~~~~
The ddns-tuning library also provides the ability to skip DDNS updates on a per
client basis. The library recognizes a special client class, "SKIP_DDNS". When a
client is matched to this class, kea servers (kea-dhcp4 and kea-dhcp6) will not
send DDNS update requests (NCRs) to kea-dhcp-ddns. A common use-case would be
to skip DDNS updates for fixed-address host reservations. This is done easily by
simply assiging the class to the host reservation as shown below:
.. code-block:: javascript
{
"reservations": [
{
"hw-address": "01:02:03:04:05:06",
"ip-address": "192.0.2.1",
"client-classes": [ "SKIP_DDNS", "foo", "bar" ]
}]
}
The ddns-tuning library will spot the presence of the "SKIP_DDNS" class in the
client's class list each time the client requests, renews, or releases its lease,
and instruct kea-dhcp4 to bypass sending DDNS updates. A similar work flow is
supported for kea-dhcp6:
.. code-block:: javascript
{
"reservations": [
{
"duid": "01:02:03:04:05:06",
"ip-address": "2001:db8::1",
"client-classes": [ "SKIP_DDNS", "foo", "bar" ]
}]
}
......@@ -427,6 +427,12 @@ loaded by the correct process per the table below.
| Backend | |a repository for the Kea configuration information. Kea |
| | |servers use this library to fetch their configurations. |
+-----------------+---------------+------------------------------------------------------------+
| PostgreSQL | Kea open |This hook library is an implementation of the Kea |
| Configuration | source |Configuration Backend for PostgreSQL. It uses a PostgreSQL |
| Backend | |database as a repository for the Kea configuration |
| | |information. Kea servers use this library to fetch their |
| | |configurations. |
+-----------------+---------------+------------------------------------------------------------+
| Configuration | ISC support |This hook |
| Backend | customers |library implements a collection of commands to manage |
| Commands | |Kea configuration information in a |
......@@ -454,6 +460,10 @@ loaded by the correct process per the table below.
| | customers |(kea-ctrl-agent) for Role Based Access Control filtering |
| | |of commands. |
+-----------------+---------------+------------------------------------------------------------+
| DDNS-Tuning | ISC support |This hook library adds support for fine tuning various DDNS |
| | customers |update aspects such as generating hostnames via expressions |
| | |and skipping DDNS updates for select cients. |
+-----------------+---------------+------------------------------------------------------------+
ISC hopes to see more hook libraries become available as time
progresses, developed both internally and externally. Since this list
......
......@@ -478,7 +478,8 @@ builtinNames = {
// In fact DROP is set from an expression as callouts can drop
// directly the incoming packet. The expression must not depend on
// KNOWN/UNKNOWN which are set far after the drop point.
"ALL", "KNOWN", "UNKNOWN", "BOOTP"
// SKIP_DDNS is used by ddns-tuning hook library.
"ALL", "KNOWN", "UNKNOWN", "BOOTP", "SKIP_DDNS"
};
std::list<std::string>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment