We are pleased to introduce the latest version of the Kea DHCP server. This release adds a major new feature, which enables an entirely new provisioning and deployment model.
The Kea Configuration Backend (abbreviated as config backend or CB) lets you manage multiple DHCPv4 and DHCPv6 server configurations from a MySQL database.
You can store most of the Kea configuration in the CB: global parameters, shared networks, subnets, pools, options, and option definitions. Instead of specifying these parameters in your local configuration, you can now put this information in the database and simply tell Kea where to find it. Kea will merge the parameters from the CB with other parameters configured locally (such as interfaces), and can periodically poll the CB and retrieve updates. This will greatly simplify automated configuration change deployments.
With this change, you can now choose to store leases, host reservations, and configurations in a database backend. MySQL, PostGreSQL, and Cassandra are all supported for lease storage; MySQL and PostGreSQL are supported for host reservations; and MySQL is supported for the configuration backend.
New Hooks Library Provides Management for the Config Backend
The CB stores data in a MySQL schema that is public. It’s possible to insert a configuration into the MySQL tables manually or automatically using SQL scripts, although this requires a reasonably good knowledge of the schema. As an alternative, ISC has developed a new hooks library that provides management commands for config backends. It simplifies many typical operations, such as listing, adding, retrieving, and deleting of global parameters, shared networks, subnets, pools, options, and option definitions. For a complete list, see commands starting with “remote-” in Appendix A of the Kea Administrator Reference Manual. The cb_cmds hooks library is available to ISC support subscribers only. If you are not a subscriber and would like access to the cb_cmds hooks library, please contact email@example.com and our sales team will be happy to assist you.
New Features Requested by Users
In addition to the configuration backend, we have also added a number of other new features requested by users. See the Release Notes for full details. Here are a few highlights:
- DROP class. Kea offers a powerful client classification mechanism to distinguish between various types of devices, and you now can use this tool to drop unwanted traffic. You simply need to define a class with a special name called DROP; if an incoming packet is assigned to this class, the packet is dropped immediately #606.
- max-lease-time, min-lease-time. Until now, Kea allowed administrators to configure a specific, fixed value for lease lifetimes. Two new optional parameters -
min-lease-time - allow you to expand this to a range. Both the DHCPv4 and DHCPv6 protocols allow clients to send hints, and these new parameters let Kea honor those hints #295.
- Improved compatibility. Kea follows RFC standards as defined by the IETF; however, there are some devices out there that are not as strict in following the standards. Nevertheless, Kea should be able to work with such devices. Kea 1.6.0 now sends the DHCPv4 message type as the first option #530, the trailing null is now stripped from received options #539, empty hostnames are handled better (#40), and it’s now possible to define sub-options with codes 0 and 255 #564.
- Control socket for DDNS. The DDNS daemon has finally gotten its control socket and can process commands. It’s now possible to update its configuration and in general interact with it while the daemon is running. The following nine commands are now supported: build-report, config-get, config-reload, config-set, config-test, config-write, list-commands, shutdown, and version-get #30.
ISC Kea Packages
Kea is adding integration with other open source products, including NETCONF (provided by Sysrepo), RADIUS (based on the FreeRADIUS client), and Cassandra. That flexibility comes at a price, as it is getting more difficult to install Kea with those optional dependencies enabled. We also noticed that some OS distributions lag behind in packaging the latest Kea releases. To help alleviate both of those problems, ISC has begun providing our own native (DEB and RPM) packages for several popular distributions. We are providing packages for current versions of CentOS, Debian, Fedora, and Ubuntu. The binary packages cover DHCPv4, DHCPv6, DDNS, Control Agent, and all three (MySQL, PostgreSQL, and Cassandra) backends. ISC subscription customers will also be given an option to conveniently install hooks as separate packages. In the future we plan to experiment with packaging NETCONF with Sysrepo and all its necessary dependencies.
Find these packages at ISC’s Cloudsmith repo.
Changes to Kea’s Release Model
Beginning with this 1.6.0 release, we plan to change the release model for Kea. We will stabilize every even-numbered minor version (where the second digit of the version number is even) for production use. Therefore, 1.6.x, 1.8.x, and 2.0.x will be stable versions. We will also begin producing development versions on every odd-numbered minor version branch, including 1.7.x, 1.9.x, and so on. For more details on the plan, see ISC’s Software Support Policy. Please note that the annual release dates projected on the chart are only approximate.
We have worked hard on Kea 1.6.0 and we hope that you will find it useful. We welcome user feedback at firstname.lastname@example.org or in our GitLab instance.