# Kea 2.3.1, September 28 2022, Release Notes Welcome to Kea 2.3.1, the second 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. This month the Kea team was focused on bug fixes and improving our build process. The following bugfixes and features have been implemented since the previous release, version 2.3.0: 1. **Bug fixes**: Fixed 32 bit compatibility issue with PostgreSQL time. [#2532] 2. **Lease Commands**: The lease_cmds hook library supports two new commands, `lease4-write` and `lease6-write`. These should help recovery in emergency situations e.g. when the disk is full, by writing the memory lease database into a CSV file. They are supported by the memfile backend only. The lease_cmds hook library returns a new "conflict" status code indicating an issue with a lease update due to a mismatch between the received lease and the server's configuration or state. The HA hook library differentiates between this new status and a general error and avoids transitioning to the partner-down state when conflicts occur. The new `max-rejected-lease-updates` parameter sets a limit for the maximum number of conflicts before the server terminates the HA service.[#1654][#2408] 3. **Bug fixes**: Enforce length limits on host identifier (20 bytes for hardware address, 128 bytes for DUID and other types). [#2557] 4. **Documentation**: Fixed broken example and documentation for long DHCPv4 options in the ARM. [#2545] 5. **Build improvements**: Improved build compatibility in Kea between g++ and Boost libraries. The compilation error that was fixed was reported to occur with g++ 8 and boost 1.75. [#2519] 6. **Logging improvements** If Kea fails to start because of an invalid configuration, now the log message about the configuration error will be saved in the logfile. [#1955] 7. **Packaging changes** Debian package names have changed: `isc-kea-dhcp4-server` was changed to `isc-kea-dhcp4`, `isc-kea-dhcp6-server` to `isc-kea-dhcp6`, and `isc-kea-dhcp-ddns-server` to `isc-kea-dhcp-ddns`. This change was required to use `dist-upgrade` to install new packages. All package types (rpm, deb and apk) now have the meta package `isc-kea` that contains all components making it easier to install, while retaining the flexibility to install individual packages separately. The Control Agent service is no longer started every time when dhcp4, dhcp6, or ddns is started, but when active it will start on system boot up. ## Notable Changes The lease_cmds hook library returns a new "conflict" status code (4) indicating an issue with a lease update due to a mismatch between the received lease and the server's configuration or state. ## Incompatible Changes Some `lease_cmds` return result code "4" with additional text description instead of code "1" in conflict errors. This could break some automation customers have that uses lease commands. ## 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 an 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 since the 2.3.0 release for Kea core: 2064. [build] mgodzina The library version numbers have been bumped for the Kea 2.3.1 development release. (Gitlab #2576) 2063. [bug] fdupont Fixed 32 bit compatibility issue with PostgreSQL time. (Gitlab #2532) 2062. [func] fdupont The lease_cmds hook library supports two new commands "lease4-write" and "lease6-write" which should help to recover emergency situations e.g. full disk space by writing the memory lease database into a CSV file. They are supported only by the memfile backend. (Gitlab #1654) 2061. [bug]* fdupont Enforce length limits on host identifier (20 bytes for hardware address, 128 bytes for DUID and other types). (Gitlab #2557) 2060. [build] andrei Two scripts that are used for checking YANG modules now automatically detect the location of the yanglint tool and its libraries based on the values passed to the configure script. "make check" should now pass uninterrupted on some delicate systems like Alpine and RPM-based. Also, reinstall.sh, used to install YANG modules, now detects sysrepoctl automatically. (Gitlab #2558) 2059. [func] marcin The lease_cmds hook library returns a new "conflict" status code indicating an issue with a lease update due to a mismatch between the received lease and the server's configuration or state. The HA hook library differentiates between this new status and a general error and avoids transitioning to the partner-down state when conflicts occur. The new "max-rejected-lease-updates" parameter sets a limit for the maximum number of conflicts before the server terminates the HA service. (Gitlab #2408) 2058. [build] fdupont kea-lfc is now built just after libraries. (Gitlab #2526) 2057. [doc] marcin Fixed broken example and documentation for long DHCPv4 options in the ARM. (Gitlab #2545) 2056. [build] andrei Improved build compatibility in Kea between g++ and Boost libraries. The compilation error that was fixed was reported to occur with g++ 8 and boost 1.75. The fix consists of passing callbacks directly to boost::asio::io_service::post and not indirectly through a functor. Thanks to rski for reporting the error and suggesting the fix! (Gitlab #2519) 2055. [func] andrei When Kea starts with an erroneous file configuration, if the logging is viable and is configured to log at least at ERROR level, it will log the errors according to the configured logging. Previously, it would log them in stderr which made gathering of the errors more difficult. A final log message is still logged at stderr just as before. (Gitlab #1955) And for Kea premium: 156. [bug] fdupont Reservation get commands no longer throw on host entries with too long host identifiers. (Gitlab #2557) 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.