# Kea 2.5.2 Release Notes, September 27, 2023 Welcome to Kea 2.5.2, the third monthly release of the 2.5 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 update and a REST API; optional database support (MySQL and PostgreSQL); optional RADIUS, Kerberos, YANG/NETCONF, and GSS-TSIG support; and much more. Kea provides extensive management capabilities, including but not limited to: TLS support, Role-Based Access Control, run-time configuration monitoring and updates via a REST API, host reservations, and client classification. 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 bugfixes and features have been implemented since the previous release, version 2.5.1: 1. **RADIUS**: An effort is underway to implement a new RADIUS hook. The existing hook has been renamed to `old_radius`. If you are a RADIUS user, please update your configuration. You need to change the hook name in your configuration from `radius` to the`old_radius`. In the coming releases, the new radius (`radius` hook) is expected to fully replace the old RADIUS functionality. The new `radius` hook is not functional yet [#3069]. Support for RADIUS attributes added [#3043]. Radcli, a potential replacement for the FreeRADIUS-client, was evaluated but rejected [#404]. Misuse of Framed-IPv6-Prefix in RADIUS hook was fixed [#2998]. 2. **Ping-check**: A new hook library is under development. While the solution is not usable yet, much progress has been made in this release. A design for the new hook was written and reviewed [#3008]. A skeleton hook was implemented [#3012] with several important classes (PingContext, PingContextStore) were implemented [#3054]. Also, ICMP socket support was added [#3053]. A new hook point `lease4-offer` was implemented [#3063, #3038] and documented [#3067]. 3. **output-options**: The old syntax (`output_options`) has been replaced with `output-options`. Please see the incompatible changes for more details [#3004]. 4. **Upper, lower case in expressions**: A mechanism to convert strings to upper (`ucase`) and lower (`lcase`) case in expressions has been implemented [#3048]. 5. **Forensic logging**: The information about DHCPv6 clients is now also logged on the secondary server in a HA configuration [#2967]. 6. **Host Cache Hook**: The Host Cache hook is now multi-threading capable. Sadly, there is no feasible way to take advantage of this yet, as it only works with RADIUS which is not yet multi-threading capable [#2023]. 7. **Build improvements**: The `--enable-debug` compilation option now enables more debugging features [#1520]. The hammer tool has been improved to better handle packages for CentOS 7. The CentOS 7 itself is no longer supported, but it might be useful when using hammer from this release to build older Kea releases [#3060]. The `flto` (link-time optimization) was disabled on RHEL packages. This optimization caused Kea to crash in some rare circumstances [#3058]. Fedora 38 compilation fixed [#3031]. 8. **Documentation**: Added examples for Secure Zero Touch Provisioning options [#3002]. Added a note about PXE DHCPv6 clients [#181]. CentOS 7 references removed from the documentation. It's no longer supported [#2980]. ARM section about log message format clarified [#2591, #3011]. 9. **Bugs**: A problem with DHCP4_CLASSES_ASSIGNED being logged twice was fixed [#2591, #3009]. ## Incompatible Changes 1. **RADIUS hook renamed**: The existing RADIUS hook has been renamed to `old_radius`. If you are using RADIUS, please make sure to update your hook configuration [#3069]. 2. **output_options renamed to output-options**: The `output_options` parameter used in configuring logging was the only parameter than used underscore. To maintain consistency with hundreds of other options, it has been update to `output-option`. The old spelling is still supported when reading configuration or when setting configuration using `config-set`. However, when retrieving (`config-get`) or storing (`config-write`) configuration, the new syntax will be used. [#3004]. ## License This version of Kea is released under the Mozilla Public License, version 2.0. https://www.mozilla.org/en-US/MPL/2.0 Some Kea hook libraries are provided under the MPL 2.0; others are licensed with the Kea Hooks Basic Commercial End User License. The source for each hook library includes the applicable license. ## 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 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 in HTML, PDF, or EPUB formats. ISC maintains a public open source code tree, wiki, issue tracking system, milestone planner, and roadmap at https://gitlab.isc.org/isc-projects/kea. 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 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 https://gitlab.isc.org/isc-projects/kea/-/issues. ## Changes The following summarizes changes and important upgrades since the 2.5.1 release. 2182. [build] razvan The library version numbers have been bumped up for the Kea 2.5.2 development release. (Gitlab #3085) 2181. [func] razvan Added additional tokens which evaluate string expressions: "lcase" which converts to lower case and "ucase" which converts to upper case. (Gitlab #3048) 2180. [build] andrei Apart from enabling log4cplus's own logging, and adding more sanity checks in DNS code, the --enable-debug configure flag now also makes the compiler produce more abundant debugging information that can be read by a debugger. (Gitlab #1520) 2179. [doc] piotrek Updated Developer's Guide with information about new hook point "lease4_offer". (Gitlab #3067) 2178. [doc] andrei Clarified in the ARM that DHCPv6 clients with unstable DUIDs can be handled using the flex-id library. The configuration examples that can help with that are found in the flex-id documentation. (Gitlab #181) 2177. [func] piotrek Implemented new DHCPv4 hook point "lease4_offer". The callout is executed after the server has received the DHCPDISCOVER and the DHCPOFFER has been constructed but not yet sent to the client. (Gitlab #3038, #3063) 2176. [doc] piotrek, razvan Updated ARM docs with new configuration key "output-options" and alias "output_options". All config examples, where previous "output_options" key appeared, were updated. (Gitlab #2904, #3004) And for Kea premium: 182. [build] fdupont, andrei The RADIUS client is being refactored. Until that work is done, the callouts of libdhcp_radius.so are disabled. The library will have no effect when loaded in a Kea server. libdhcp_old_radius.so provides the former features until then. (Gitlab #3043, #3069) 181. [bug] razvan Fixed an issue where lease updates coming from the High Availability hook library for DHCPv6 or from lease6-bulk-apply command were not logged by forensic log hook library. (Gitlab #2967) 180. [func] fdupont Made the host_cache hook library compatible with multi-threading. (Gitlab #2023) 179. [build] fdupont Now PW_DELEGATED_IPV6_PREFIX must be defined (it is not supported in very old FreeRADIUS client libraries) to build the RADIUS hook library. (Gitlab #2998) Thank you again to everyone who assisted us in making this release possible. We look forward to receiving your feedback.