# Kea 3.1.8 Release Notes, April 29, 2026 Welcome to Kea 3.1.8, a release of the 3.1 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, YANG/NETCONF, and Kerberos 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. For details about Docker issues, visit the page at https://gitlab.isc.org/isc-projects/kea-docker/-/issues/. For details about packaging, visit the page at https://gitlab.isc.org/isc-projects/kea-packaging/-/issues/. The following bug fixes and features have been implemented since the previous release: 1. **Control Agent (CA) removal**: The CA has been deprecated since late in the Kea 2.7 branch, and it has now been removed. Users who still use CA are advised to migrate their configurations to use native HTTP/HTTPS control sockets in the respective daemons [#3448]. The default configs now have control-socket examples [#4412]. 2. **Shared Free Leases Queue (FLQ)**: The FLQ allocator is an allocation strategy that is well suited for deployments that are often running with high pool utilization, but until recently it was not suitable for shared database scenarios. This problem is now addressed with shared FLQ, which can be used on MySQL or PostgreSQL databases. Support for this feature is experimental [#4373, #4405, #4417, #4425, #4441, #4447, #4475, #4446]. 3. **Socket starvation**: Earlier Kea versions could not handle significant traffic incoming on multiple interfaces; due to some coding logic, the first interface specified in the configuration was favored. If Kea received constant high traffic, the other interfaces could be under-serviced or starved. A new algorithm was implemented to handle multiple interfaces fairly. There are still limits to how much traffic any given Kea deployment can handle, but at least the handled traffic will be distributed more evenly [#4218, #4212, #4454]. 4. **Configuration**: Kea is now more strict when parsing the control-sockets configuration and will reject useless parameters, such as specifying any TLS parameters on non-TLS control sockets. The intention is to remove the false impression that some features, such as TLS, are enabled when they are not [#3970]. 5. **Bug fixes**: When reconfiguring Kea daemons after `config-set` while under heavy load, the high availability (HA) listener could fail to shut down properly and cause the new listener to not be fully operational. This is now fixed [#4448]. The DDNS update now properly logs time-to-live (TTL) instead of lease length [#4376]. The code now properly handles the lease allocation if a client-reserved lease is not available because the hook has decided to skip the lease [#4434]. We fixed spurious warnings emitted when attempting to close already closed HTTP sockets [#4344]. A problem reported by fuzzing was fixed [#4367]. We fixed a problem where an interface created while retrying sockets was used unfiltered [#3062]. The extended config checking using the -T command-line argument now properly uses the "persist" value from the tested configuration [#4363]. 6. **Removed JSON check in databases**: Auto-detection of JSON support in MySQL and PostgreSQL databases has been removed. All database versions with active support should now include JSON support [#4342]. 7. **Documentation**: The ARM documentation is now clearly labeled with the `-git` suffix if being built from git sources rather than release tarballs [#3985]. We made minor spelling corrections [#4304]. The RFC references have been updated throughout the Kea ARM [#4340]. The NETCONF RFC reference was updated [#4208]. The developer's guide was updated and now covers how to run fuzzing locally [#3636]. An example for the NTP DHCPv6 option was added [#4314]. A mistake was corrected in the Kea ARM regarding incorrect EFI x86-64 architecture type [#4154]. Changelog formatting was fixed [#4473]. 8. **Build system**: The release procedure was updated slightly [#4330, #4381]. We removed a build check for an obsolete Boost header [#4410]. The hammer build tool was updated after the CA was removed [#4467]. A problem was fixed with the kea-msg-compiler being installed but unusable [#4160]. 9. **Testing**: We implemented better handling of test cases where the socket path was too long [#4432]. ## Incompatible Changes The following incompatible changes were introduced: 1. **CA removed**: The CA has been deprecated for a year now. Anyone who is still using it should change their configuration to use native HTTP or HTTPS control sockets. For details, see Section 19.9 of the ARM (https://kea.readthedocs.io/en/kea-3.1.7/arm/ctrl-channel.html#migration- from-the-control-agent). 2. **JSON check removed**: If a database is used, it must support JSON; Kea no longer checks whether it is supported. Since all current PostgreSQL, MySQL, and MariaDB versions support it already, this change should not affect anyone. Users of outdated databases may see an error; in that case, please upgrade to a recent database version. ## 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](https://www.isc.org/kea-premium-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/ Pre-built Docker images, as well as Docker files, are available. For details, see: https://gitlab.isc.org/isc-projects/kea-docker 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 the changes since the previous release. 2461. [bug] fdupont Fixed spurious warnings emitted when attempting to close already closed HTTP sockets. (Gitlab #4344) 2460. [func] fdupont More bad Unix control socket configuration parameters are now rejected, before they were silently ignored. For instance it is now forbidden to configure HTTP or TLS parameters on not HTTP nor HTTPS control sockets. (Gitlab #3970) 2459. [func] tmark Added an experimental allocator type, 'shared-flq'. It implements a free lease queue mechanism for MySQL and Postgresql lease back ends. It is intended for use in configurations that share lease data between multiple servers (i.e. shared lease backends). (Gitlab #4336, #4373, #4405, #4417, #4425, #4441, #4447) 2458. [func]* fdupont The deprecated control agent has been removed. (Gitlab #3448) 2457. [bug] mgodzina Corrected "Lease Length" label in logged DHCPSRV_DHCP_DDNS_NCR_SENT to "TTL". (Gitlab #4376) 2456. [func] tmark Auto detection of JSON support in MySQL and PostgreSQL databases has been removed. All database versions with active support should now include JSON support. (Gitlab #4342) 2455. [build] razvan The library version numbers have been bumped up for the Kea 3.1.8 development release. (Gitlab #4472) 2454. [bug] razvan Properly handle high availability listener shutdown on hook unload under heavy load. (Gitlab #4448) 2453. [bug] razvan Properly handle lease allocation if client reserved lease is not available because the hook has decided to skip the lease. (Gitlab #4434) Thank you again to everyone who assisted us in making this release possible. We look forward to receiving your feedback.