# Kea 2.7.1 Release Notes, July 31st, 2024

Welcome to Kea 2.7.1, the second monthly release of the 2.7 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. 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, version 2.7.0:

1. **IPv6-only preferred**: Kea now supports truly `v6-only-preferred` 
mode, as described in RFC8925. When a dual-stack device visits a v6-only 
network, it still attempts to obtain IPv4 configuration using DHCPv4. 
The RFC8925 mechanism allows the network operator to set up a minimal 
DHCPv4 server that basically says "there's no IPv4 service here, stop 
asking." This is what `v6-only-preferred` communicates. Until recently, 
however, Kea sent back the option and assigned the IPv4 address at the 
same time; this is now fixed. Kea is now able to send back the option 
and send 0.0.0.0 to further indicate there's no address being assigned 
[#3094].

2. **High Availability**: We fixed a potential problem with HA, where 
the remote `dhcp-disable` state was not cleared after the 
`config-reload` or `config-set` commands. Also, the `dhcp-state` is now 
included in the `status-get` command; it indicates whether the dhcp 
service is enabled or the reason why it is disabled (user command, HA 
command, or database connection failure) [#3446].

3. **Security**: All permissions for other users are now removed from 
configuration files created by Kea agents and servers [#3050].

4. **Bug fixes**: We corrected an issue with overlapping enum values for 
the option definition data type stored in the Config Backend (CB). This 
was causing option definitions of type "record", created via CB 
commands, to not load properly when fetched from the backend. This 
change updates DB schemas for both PostgreSQL and MySQL [#3476]. We 
addressed a CB issue when upgrading from 2.4.0 to 2.6.0 [#3472]. We 
corrected a bug in storing and fetching encapsulated DHCP options from 
the CB; these options were sometimes not returned when they were 
specified at the subnet, shared-network, or client-class level [#3481]. 
The `remote-class6-get` command now returns the lifetime values properly 
[#3469]. The encoding of long options in DHCPv4 (RFC3396) was fixed 
[#2917, #3440]. We fixed a file descriptor leak in the High Availability 
hook library [#3449].

5. **Two malfunctioning options removed**: The 
`control-socket.socket-name` and `control-socket.socket-type` parameters 
were removed from the CB; they were broken and never functioned properly 
[#3479].

6. **Build improvements**: A script was added that detects and flags 
duplicate and unused messages [#1723]. The upgrade scripts for schema 
version 23 are now included [#3480].

7. **Testing**: We adapted the database script checking for the CI job 
to accept minor schema version numbers [#3497]. Much effort was spent on 
making our fuzzing environment more robust. A crash was investigated in 
the fuzzing framework and fixed [#3233]. 

## Incompatible Changes

1. The `control-socket.socket-name` and `control-socket.socket-type` 
parameters were removed from the Config Backend (CB).


## Other


## 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 changes and important upgrades since the 2.7.0 
release.


2268.	[build]		ravan
	The library version numbers have been bumped up for the Kea 2.7.1
	development release.
	(Gitlab #3515)

2267.	[bug]		tmark
	Corrected an issue in MySQL config back end that
	causes preferred life time values to be overwritten
	when updating client classes via remote-set-class6.
	command.
	(Gitlab #3469)

2266.	[bug]		fdupont
	Improved the code handling multiple instances of
	the same v4 option according to RFC 3396.
	(Gitlab #3440)

2265.	[bug]*		fdupont
	The 'control-socket' ('control-socket.socket-name' and
	'control-socket.socket-type') was removed from the global maps
	which can be managed by the config backend because in fact if
	it is possible to change values they are not applied.
	(Gitlab #3479)

2264.	[bug]*		tmark
	Corrected an issue with overlapping enum values
	for option definition data type.  This was causing
	option definitions of type "record", created via
	config backend commands, to not load properly when
	fetched from the back end.
	(Gitlab #3476)

2263.	[func]		fdupont
	RFC 8925 "IPv6-Only Preferred Option for DHCPv4" is now
	fully implemented: 0.0.0.0 address can be offerred.
	(Gitlab #3094)

2262.	[bug]		marcin
	Corrected a bug in storing and fetching the encapsulated DHCP
	options from the configuration backend. These options were
	sometimes not returned when they were specified at the subnet,
	shared network or client class level.
	(Gitlab #3481)

2261.	[bug]		razvan
	Reset the local and remote disabled state when applying
	configuration. The dhcp-state is now included in the 'status-get'
	command. It indicates if the dhcp service is enabled or the
	reason why it is disabled (user command, HA command or database
	connection failure).
	(Gitlab #3446)

2260.	[bug]		razvan
	Fixed a file descriptor leak in the High Availability hook
	library.
	(Gitlab #3449)

2259.	[func]		fdupont
	All permissions for other users are now removed from files
	created by Kea agents and servers.
	(Gitlab #3050)


And for Kea premium:


202.	[bug]*		fdupont
	The control-socket was removed from the global maps
	which can be managed by the config backend because
	in fact if it is possible to change values they
	are not applied.
	(Gitlab #3479)


Thank you again to everyone who assisted us in making this release 
possible.

We look forward to receiving your feedback.