[Kea-announce] Kea 1.9.2, a new development release of Kea, is now available

Cathy Almond cathya at isc.org
Wed Nov 25 15:16:09 UTC 2020

Internet Systems Consortium is pleased to announce the release of Kea 1.9.2.

                                 -  -  -

# Kea 1.9.2, November 25th 2020, Release Notes

Welcome to Kea 1.9.2, the third monthly release of the 1.9 development
branch. As with any other development release, use this with caution:
development releases are not recommended for production use. This
development release tackles an assortment of feature improvements and
bug fixes.

The most significant changes introduced in this version are:

1. **Global and subnet reservations**. Earlier Kea versions had a single
configuration parameter called `reservation-mode` that governed whether
host reservations were global (out-of-pool) or subnet-level (in pool),
and it was not possible to use different reservation types at the same
time. However, in some deployments there is a need to use several types
at the same time. As a result, the `reservation-mode` parameter is now
deprecated and replaced by three separate boolean parameters:
`reservations-global`, `reservations-in-subnet`, and
`reservations-out-of-pool`, each of which can be controlled
independently. This gives users more flexibility in their configuration.
Caution is recommended as enabling more lookups has performance
implications. The older parameters will still work in this version, with
a warning, but will be removed after Kea 2.0. #1405, #1550

2. **Fix for the `lease4-update` command in multi-threaded DHCPv4**. A
bug has been discovered in the `lease4-update` command when the DHCPv4
server is running in multi-threaded mode. This command is used in HA
scenarios. The bug caused the server to fail to update the lease
properly, while reporting incorrectly that the update was successful.
This has now been fixed. A patch for 1.8.0 and 1.8.1 is attached to
https://gitlab.isc.org/isc-projects/kea/-/issues/1542; the maintenance
release of 1.8.2 that will include this fix is expected in December
2020. #1542

3. **Authentication hook points**. New `auth` and `response` hook points
have been implemented in the Control Agent (CA). It is now possible to
develop a hook that processes incoming HTTP requests and performs access
control and audit logging on them. This is a preparation step for a new
hook library that will provide Access Control (RBAC). #1421

4. **Documentation updates**. Peter (#1536) and Suzanne (#1539) made
many edits to the Kea ARM. The Developer's guide has been corrected in
several places (#1516), and some examples in the ARM have been corrected
(#1457). There are also new KnowledgeBase (https://kb.isc.org/) articles
on accessing the Cloudsmith repository (#1476) and comparing Host
Reservations in Kea to the analogous mechanism in ISC DHCP. #1355

5. **Test improvements**. `perfdhcp` can now control the "secs" field in
DHCPv4 and the "elapsed time" option in DHCPv6. Both are used to
simulate clients not getting timely responses from the server, which is
essential for triggering an HA failure (#1332). A number of test issues
were fixed as reported by running unit-tests with reshuffle mode turned
on. #1442

6. **Build improvements**. The messages printed when dependencies are
missing have been reworded to make it clearer which libraries are needed
(#1492). The config.h header file is now included in all .cc files, to
ensure that the global parameters are really applied in all parts of the
code. #1453

## Known Issues

See https://gitlab.isc.org/isc-projects/kea/-/wikis/known-issues-list
for details.

## Release Model

The Kea project has a significant production deployment base with users
who are looking for stability, rather than a constant stream of new
"bleeding-edge" features. At the same time, we want to continue
developing the software and add some new powerful, but
difficult-to-implement, features. To meet both of these requirements we
have both Stable and Development branches.

Stable releases are what you would expect: stable, released
infrequently, without new features or significant changes, very
well-tested. These can be identified by an even-numbered major version
number. The current stable releases are 1.8.0, with an old stable
version of 1.6.3. If we discover important bugs that require fixing, we
may release additional maintenance versions on the 1.8 branch, but that
will be determined on a case-by-case basis. The next major stable
version will be 2.0.0.

Development releases can be easily identified by an odd major version
number: for example, 1.9.0 is a development release. We will continue
our development work with 1.9.1, then 1.9.2, and so on.

Our goal is to make the development release available on the last
Wednesday of each month. There may be exceptions (such as during
holidays), but that's the general plan.

We encourage users to test the development releases and report back
their findings.

For more details on the plan, see ISC's Software Support Policy at

## Kea overview

Kea is a DHCP implementation developed by Internet Systems Consortium,
Inc. that features fully functional DHCPv4 and DHCPv6 servers, a dynamic
DNS update daemon, a Control Agent (CA) that provides a REST API to
control the DHCP and DNS update servers, an example shell client to
connect to the CA, a daemon that is able to retrieve YANG configuration
and updates from Sysrepo, and a DHCP performance-measurement tool. Both
DHCP servers support server discovery, address assignment, renewal,
rebinding, release, decline, information request, DNS updates, client
classification, and host reservations. The DHCPv6 server also supports
prefix delegation. Lease information is stored in a CSV file by default;
it can optionally be stored in a MySQL, PostgreSQL, or Cassandra
database instead. Host reservations can be stored in a configuration
file, or in a MySQL, PostgreSQL, or Cassandra database. They can also be
retrieved from a RADIUS server, although this functionality is somewhat
limited. Kea DHCPv4 and DHCPv6 daemons provide support for YANG models,
which are stored in a Sysrepo datastore and can be configured via the
NETCONF protocol.

This text references issue numbers. For more details, visit the Kea
GitLab page at https://gitlab.isc.org/isc-projects/kea/issues.

## License

This version of Kea is released under the Mozilla Public License,
version 2.0.


The premium and subscriber-only hooks libraries are provided in source
code form, under the terms of an End User License Agreement (you will
get the source code that you can modify freely, but you are not
permitted to redistribute it).

## Download

Pre-built ISC packages for current versions of the most popular Linux
operating systems are available at:


The Kea source and PGP signature for this release may be downloaded from:


The signature was generated with the ISC code signing key which is
available at:


ISC provides detailed documentation, including installation instructions
and usage tutorials, in the Kea Administrator Reference Manual.
Documentation is included with the installation, at
https://kea.readthedocs.io/en/latest/, or via
https://kb.isc.org/docs/kea-administrator-reference-manual in HTML,
plain text, or PDF formats. ISC maintains a public open source code
tree, a wiki, an issue tracking system, milestone planning, and a
roadmap at https://gitlab.isc.org/isc-projects/kea.

Limitations and known issues with this release can be found at

We ask users of this software to please let us know how it worked for
you and what operating system you tested on. Feel free to share your
feedback on the Kea Users mailing list
(https://lists.isc.org/mailman/listinfo/kea-users). We would also like
to hear whether the documentation is adequate and accurate. Please open
tickets in the Kea GitLab project for bugs, documentation omissions and
errors, and enhancement requests. We want to hear from you even if
everything worked.

## Support

Professional support for Kea is available from ISC. We encourage all
professional users to consider this option; Kea development and
maintenance are funded with support subscriptions. For more information
on ISC's Kea and DHCP software support see https://www.isc.org/support/.

Free best-effort support is provided by our user community via a mailing
list. Information on all public email lists is available at
https://www.isc.org/community/mailing-list. If you have any comments or
questions about working with Kea, please share them to the Kea Users
List (https://lists.isc.org/mailman/listinfo/kea-users). Bugs and
feature requests may be submitted via GitLab at

## Changes

The following summarizes changes and important upgrade notes since the
previous release (1.9.1).

Kea 1.9.2 (development) released on Nov 25, 2020

1836.	[build]		razvan
	Library version numbers bumped for Kea 1.9.2 development
	(Gitlab #1555)

1835.	[doc]		peterd
	Several Kea ARM corrections.
	(Gitlab #1536)

1834.	[func]		fdupont
	Added two new callouts (hook points) in the control agent.
	The "auth" callout is executed after the basic authentication
	(if configured) and the command processing. The "response"
	callout is executed after the command processing and before
	the HTTP response is returned.
	(Gitlab #1421)

1833.	[doc]		sgoldlust
	Many documentation corrections.
	(Gitlab #1539)

1832.	[func]		tomek, wlodek
	Perfdhcp extended with functionality to gradually
	increase elapsed time in solicit and secs field in offer.
	(Gitlab #1332)

1831.	[bug]		razvan
	Fixed the DHCPv6 server implementation of the
	reservations-out-of-pool flag to match the DHCPv4 one. When the
	flag is true:
	* the server assumes that all reserved address do not belong to
	  the dynamic pool.
	* the server will not assign reserved addresses that are inside
	  the dynamic pool to the respective clients.
	* addresses matching the respective reservations from inside
	  the dynamic pools (if any) can be dynamically assigned to any
	(Gitlab #1550)

1830.	[func]		fdupont, razvan
	Added new configuration options reservations-global,
	reservations-in-subnet and reservations-out-of-pool to replace
	the old reservation-mode parameter. The new flags can be
	configured independently, adding support for new configuration
	scenarios when global and in subnet reservations are both
	(Gitlab #1405)

1829.	[bug]		fdupont, razvan
	Fixed a bug in the hasAddressReservation function which was
	causing the search for reservations to end as soon as no global
	reservation was found when configuring a subnet or shared
	network with global reservations enabled.
	(Gitlab #1405)

1828.	[bug]		andrei
	Fix trivial logic error in handling the "lease4-update" command
	manifesting itself on v4 if multi-threading is enabled.
	Notable affected environment is a HA with the
	"send-lease-updates" configuration setting explicitly set to
	true. Prior to this fix, lease updates would not go through to
	other HA nodes, even though some log lines would say they would.
	A simple workaround prior to this fix is to disable
	(Gitlab #1542)

1827.	[build]		andrei
	Add `tools/add-config-h.sh` script that can add
	`#include <config.h>` lines to non-generated source files that
	are missing it.
	(Gitlab #1453)

Thank you again to everyone who assisted us in making this release

We look forward to receiving your feedback.

More information about the Kea-announce mailing list