2
0
mirror of https://gitlab.isc.org/isc-projects/kea synced 2025-08-29 21:18:02 +00:00

[#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"
This commit is contained in:
Thomas Markwalder 2022-05-11 10:14:56 -04:00
parent 6cf6fc9426
commit 5c08e702f2
4 changed files with 59 additions and 4 deletions

View File

@ -1,3 +1,9 @@
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

View File

@ -1,10 +1,11 @@
.. _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" ]
}]
}

View File

@ -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

View File

@ -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>