[kea-announce] Kea 2.3.5, a new development release of Kea, is now available
Everett B. Fulton
ebf at isc.org
Wed Feb 22 17:59:53 UTC 2023
Internet Systems Consortium is pleased to announce the release of Kea 2.3.5.
Releases in the Kea 2.3.x sequence are part of the Kea 2.3 development
branch, where new features are provided for testing and evaluation
before the branch is designated stable and recommended for production use.
The current stable branch of Kea is Kea 2.2 and its most recent release
is 2.2.0
Kea source tarball are available from cloudsmith.io:
https://dl.cloudsmith.io/public/isc/kea-2-2/raw/versions/2.2.0/kea-2.2.0.tar.gz
https://dl.cloudsmith.io/public/isc/kea-2-3/raw/versions/2.3.5/kea-2.3.5.tar.gz
And from the ISC download page:
https://www.isc.org/download
---
# Kea 2.3.5 Release Notes, February 22 2023
Welcome to Kea 2.3.5, the sixth monthly release of the 2.3 development
series. As with any other development release, use this with caution:
development releases are not recommended for production use.
Kea is a DHCP implementation developed by Internet Systems Consortium
(ISC) that features DHCPv4 and DHCPv6 servers with DNS updating and a
REST API; optional database support (MySQL and PostgreSQL); optional
RADIUS, Kerberos, and YANG/NETCONF support; and much more. Kea provides
extensive management capabilities, including but not limited to: TLS
support, run-time configuration monitoring and updates via a REST API,
host reservations, client classification, and more.
The text below references issue numbers. For more details, visit the Kea
GitLab page at https://gitlab.isc.org/isc-projects/kea/issues.
The following features and bug fixes have been implemented since the
previous release, version 2.3.4:
1. **Multi-threading (MT) enabled by default**: Multi-threading was
implemented several years ago in Kea, but starting with this release, MT
is enabled by default. If you still prefer to use single-threaded mode,
it is easy to flip the `enable-multi-threading` switch back to `false`.
See "Multi-Threading Settings" in the DHCPv4 and DHCPv6 sections of the
Kea ARM for details. [#2402].
2. **Bulk Leasequery for DHCPv4/memfile**: An experimental
implementation of Bulk Leasequery for DHCPv4 (RFC 6926) is now
available. This capability is implemented and working in some cases, but
our internal testing so far has been somewhat limited so please consider
this feature experimental. This feature is available in a
subscriber-only hook library [#2586, #2738, #2746].
3. **Global reservation improvements**: Global reservations are
generally not recommended to be used with address reservations. However,
when they are, an additional safety net is required and it has now been
implemented. An address reserved in a global reservation must now lie
within the range of the subnet or shared-network selected by Kea. If it
does not, the server will attempt to allocate an address dynamically.
This change applies to both kea-dhcp4 and kea-dhcp6. Previously, the
servers would grant a lease for any globally reserved address without
regard to its inclusion in the selected subnet. Thanks to Kyle Birkeland
for reporting the issue and contributing the patch [#2631, #2632].
4. **Empty host reservations**: It is now possible to add an "empty"
host reservation without any attribute (e.g. no address, no options, no
hostname, no client classes, etc.). This is useful to determine the
KNOWN class [#2723].
5. **Better support for older PostgreSQL versions**. A previous Kea
release added a `tcp-user-timeout` option that prevented Kea from
hanging if a database connection broke while processing a query.
However, this option is not supported by PostgreSQL versions 11 or
earlier. Kea no longer attempts to use `tcp-user-timeout` when working
with an old version of PostgreSQL [#2734].
6. **Usability**: Kea DHCPv4 and DHCPv6 servers are now consistent when
logging client class evaluation results [#2720]. In a typical
deployment, the `renew-timer` (T1) value is always smaller than
`rebind-timer` (T2), so the client first tries to renew with the
original server; only if that fails does it attempt to rebind with other
servers. However, in some rare cases, users want to configure T1 values
larger than T2. Previously, Kea rejected such configurations; now it
prints a warning, but accepts the configuration [#2677].
7. **Stability**: We fixed several thread sanitizer warnings reported on
macOS [#2704]. Several memory leaks reported by address sanitizer and
one ODR violation were addressed [#2702]. A bug was corrected which
allowed poorly defined options to be added to themselves as suboptions
[#2538]. We fixed a bug which was causing the Kea server to crash when
using the high-availability hooks library and running reconfigure
commands. Thanks to Caciano Machado for reporting this bug and providing
detailed steps on how to replicate it [#2575]. We added logic to
kea-dhcp4 and kea-dhcp6 to catch and log database connection errors that
occur during lease reclamation. Previously, such errors caused the
reclamation timer not to get rescheduled [#2682]. A bug was fixed that
caused a response to a `config-get` command to lack the configured
`read-timeout`, `write-timeout`, and `tcp-user-timeout` parameters
[#2741].
8. **Build improvements**: It is now possible to run `make distcheck`
without running tests. This capability is mostly helpful for our QA
team, which now runs distcheck in two modes: fast and extended. It may
be also used for external package maintainers who are looking to speed
up their Kea building processes [#2742]. Race conditions on the hammer
build process were fixed [#2696]. A bug was fixed in the way the
`--with-site-packages` compilation parameter worked when installing
Python packages [#2669].
9. **Documentation**: We have updated recommendations about database
performance tuning [#2710]. Several missing commas in DHCPv6 server
examples were fixed [#2494]. The Kea ARM has been clarified with regards
to packet lookups which can be used multiple times in a single client
classification expression. This is useful for doing consistency checks
for incoming packets [#2664].
## Incompatible Changes
1. **Multi-threading enabled by default**. See above for details.
2. **Addresses reserved in global reservations**. If reserved in a
global reservation, earlier Kea versions assigned the address as is,
regardless of whether it made sense topologically. This behavior has
changed. See above for details.
3. **Addresses reserved in RADIUS**. The global address reservation
change has affected the way the RADIUS hook library behaves as well. It
had a dedicated flag called `reselect-subnet-address` to deal with
out-of-subnet address reservations. Despite having it set to `false`,
RADIUS still reselects the subnet if the client was assigned to a shared
network. See #2761 for details.
## License
This version of Kea is released under the Mozilla Public License,
version 2.0.
https://www.mozilla.org/en-US/MPL/2.0
The premium and subscriber-only hook libraries are provided under the
terms of a Kea Hooks Basic Commercial End User License Agreement.
## Download
Pre-built ISC packages for current versions of the most popular Linux
operating systems are available at:
https://cloudsmith.io/\~isc/repos/
The Kea source and PGP signature for this release may be downloaded from:
https://www.isc.org/download
as well as from the Cloudsmith repository.
The signature was generated with the ISC code signing key, which is
available at:
https://www.isc.org/pgpkey
ISC provides detailed documentation, including installation instructions
and usage tutorials, in the Kea Administrator Reference Manual.
Documentation is included with the installation or at
https://kea.readthedocs.io/en/latest/index.html.
Limitations and known issues with this release can be found at
https://gitlab.isc.org/isc-projects/kea/wikis/known-issues-list.
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 maintenance is 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.
## Changes
The following summarizes changes and important upgrade notes for core
Kea since the previous release, version 2.3.4:
2104. [build] andrei
The library version numbers have been bumped up for the Kea 2.3.5
development release.
(Gitlab #2768)
2103. [perf] andrei
When not explicitly configured, multi-threading is now enabled by
default for the core Kea DHCP service ("enable-multi-threading"
set to true). For now, HA+MT is still disabled by default
("enable-multi-threading" and "http-dedicated-listener" both
still set to false in the high-availability library parameters).
(Gitlab #2402)
2102. [func]* tmark
The logger to which kea-dhcp4 now logs EVAL_RESULT log
messages issued during packet classification has been
changed from "options4" to "dhcp4". This corrects an
inconsistency between kea-dhcp6 and kea-dhcp4 behavior.
(Gitlab #2720)
2101. [build] andrei
Shell tests and python tests no longer run if gtest is disabled.
This provides the ability to run distcheck without tests.
(Gitlab #2742)
2100. [doc] Kevin P. Fleming
Fixed several JSON examples in the Kea ARM.
(Gitlab #2494)
2099. [func]* tmark
An address reserved in a global reservation must now lie
within the range of the subnet or shared-network selected
by Kea. If it does not, the server will attempt to allocate an
address dynamically. This change applies to both kea-dhcp4 and
kea-dhcp6. Previously, the servers would grant a lease for any
globally reserved address without regard for its feasibility
within the selected subnet. Thanks to Kyle Birkeland for
reporting the issue and contributing the patch.
(Gitlab #2631, #2632)
2098. [doc] razvan
Updated client classification examples in the ARM with a case
where both operands of the evaluated expression are computed at
runtime.
(Gitlab #2664)
2097. [func] tmark
kea-dhcp4 and kea-dhcp6 will now accept renew-timer values that
exceed rebind-timer values but will ignore them and issue a
warning. Previously, the servers treated those values as a fatal
configuration error.
(Gitlab #2677)
2096. [bug] [tmark]
Fixed a bug which allowed options to be added to themselves
as suboptions.
(Gitlab #2538)
2095. [bug] marcin, tmark
Added a compile-time check of whether the PostgreSQL version
supports the "tcp-user-timeout" parameter. This parameter
is available in PostgreSQL version 12 and later. It is now
ignored for earlier versions and a suitable warning message
is issued.
(Gitlab #2734)
2094. [bug] razvan
Fixed a bug which caused the Kea server to crash when
using the high-availability hooks library and running reconfigure
commands. Thanks to Caciano Machado for reporting this bug and
providing detailed steps on how to replicate it.
(Gitlab #2575)
2093. [func] fdupont
It is now possible to add an "empty" host reservation without any
attribute (e.g. no address, no hostname, no client classes,
etc.). This is useful for determining the KNOWN class.
(Gitlab #2723)
2092. [bug] fdupont
Added logic to kea-dhcp4 and kea-dhcp6 to catch and log
database connection errors that occur during lease
reclamation. Previously, such errors caused the
reclamation timer to not get rescheduled.
(Gitlab #2682)
2091. [bug] marcin
Fixed a bug that caused a response to a config-get command
to lack the configured read-timeout, write-timeout, and
tcp-user-timeout parameters.
(Gitlab #2741)
2090. [build] andrei
Fixed the --with-site-packages configure flag, which previously
had no effect.
(Gitlab #2669)
And for Kea premium:
163. [func] fdupont
The lease_query hook library now supports most bulk
lease query requirements for DHCPv4 (RFC 6926). It is
currently only supported with memfile lease storage.
(Gitlab #2746)
See https://gitlab.isc.org/isc-projects/kea/-/wikis/Release-Notes for a
complete list of release notes.
Thank you again to everyone who assisted us in making this release
possible.
We look forward to receiving your feedback.
--
Everett B. Fulton
ISC Support
More information about the kea-announce
mailing list