# Kea 2.3.0, August 31 2022, Release Notes Welcome to Kea 2.3.0, the first 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 bugfixes and features have been implemented since the previous release, version 2.2.0: 1. **Broadcast MAC address in DHCPv4 reply**: If the broadcast flag is set in the DHCPREPLY, the MAC address is also set to the broadcast value [#2211, #2542]. 2. **Multiple v6 vendor options**: Support has been added for multiple instances of the DHCPv6 vendor-class (code 16) and vendor-opts (code 17) options. Kea now supports specifying multiple options with different enterprise numbers; however, this feature has only been lightly tested so it is considered experimental [#2517]. 3. **Logger inheritance**: If using multiple loggers that have a relationship, e.g. `kea-dhcp4` and `kea-dhcp4.packets`, the omitted logger configuration entries in the child are now properly inherited from the root logger, as stated in the ARM [#2537]. 4. **RBAC**: The ARM section about RBAC has been expanded and extra examples were added [#2450]. 5. **REST API**: The `reservation-get` and `reservation-get-all` API commands now return the `subnet-id` field [#2471]. 6. **Bulk Leasequery**: We have started to implement Bulk Leasequery; it will take several months to complete. In this release, support for new options defined in RFC 6926 has been added; however, the logic to use those options is not yet implemented [#2527]. 7. **Documentation**: A template for using High Availability (HA) with multi-threading (MT) and some other nice features, such as TLS security, has been added [#2441], and two DHCPv6 examples were corrected. Thanks to Kevin Fleming for reporting and providing a patch [#2494]. The Sphinx generator has been corrected, so the Kea ARM no longer uses smart quotes. Effectively, this allows copying many examples as they are without the need to change the quote characters [#2513]. 8. **Build improvements**: `make distcheck` now uses all major enabled features specified during the configure phase [#2071, #2511]; the Hammer tool now exports the FreeRADIUS client packages used while building packages [#2510]; the `bump_lib_version` script has been updated [#2528]; and Hammer now sets up the environment and builds Kea properly on FreeBSD 13.0, and should be able to support any future Python updates [#2534]. Hammer was updated to build Kea on CentOS 9 Stream [#2516]. Packages for Alpine 3.16 are now building properly and unit tests pass [#2503]. 9. **Performance**: A more performant data structure was implemented for faster relay lookup. This should improve performance slightly in cases where relay-based data is used for subnet selection [#2401]. 10. **Hooks**: Hook libraries are no longer loaded by an incorrect daemon. Mistakes where DHCP-specific hooks were loaded by Control Agent should be a thing of the past [#2235]. 11. **Testing**: A `wipe_data.sh` script was corrected. It no longer refers to a nonexistent path [#2541]. ## Notable Changes * Kea will now set a broadcast MAC address when sending back responses set with the broadcast flag on. This in general should not cause any problems and, in fact, should improve compatibility with various devices. * Several API commands (`reservation-get`, `reservation-get-all`) now include the `subnet-id` field in the responses. See #2471. ## 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.2.0 release for Kea core: 2054. [build] razvan The library version numbers have been bumped for the Kea 2.3.0 development release. (Gitlab #2546) 2053. [doc] razvan A new appendix for configuration templates added to Kea ARM. which include High Availability with multi-threading and secure connections using TLS. (Gitlab #2441) 2052. [func] andrei Omitted logger configuration entries are now properly inherited from the root logger as the ARM suggests. (Gitlab #2537) 2051. [func] razvan Added support for bulk lease query options defined in RFC 6926. The bulk lease query functionality has not been implemented yet. (Gitlab #2527) 2050. [build] andrei, tomek Fixed problem with preparing system using hammer on FreeBSD 13.0. The available sphinx and python versions are now detected dynamically. This should prevent future package upgrades (e.g. to python 3.10) from breaking our builds again. (Gitlab #2534) 2049. [build] razvan, fdupont The distcheck rule is able to compile and run unittests for database backends, GSS-TSIG and Sysrepo/NETCONF. (Gitlab #2071) 2048. [bug] fdupont Set broadcast MAC destination address in DHCPv4 replies when the IP address is broadcast. Thanks to Joost Bekkers for reporting the issue and contributing the patch. This improves Kea's compatibility with Cisco Small Business switches. (Gitlab #2211) 2047. [func] fdupont Added support of multiple instances of the DHCPv6 "vendor-class" (code 16) and "vendor-opts" (code 17) options: specifying multiple options with different enterprise numbers is now supported by Kea. 2046. [doc] andrei Disabled smart quotes in Sphinx configuration to leave quotes unchanged. Prior to this change, quotes were converted into left-quotes and right-quotes. This made it difficult for users to copy and use chunks of configuration directly from the ARM. (Gitlab #2513) And for Kea premium: 155. [bug] fdupont A subnet-id is returned in response to the reservation-get and reservation-get-all commands. (Gitlab #2471) 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.