Most Kea Hooks Open-sourced

Hurrah! Twelve new open source hooks in Kea 2.7.7!

With the release of Kea 2.7.7, ISC has put twelve more Kea hooks under the MPL 2.0 open source license. These twelve hook libraries were previously commercially licensed, so this is a huge addition to the open source.

This is a significant step for the Kea team, demonstrating our confidence that Kea has achieved a level of financial sustainability where we can forego the revenue we might have earned from charging for these power-user features.

What Kea hooks are now available?

These hook libraries, previously licensed under ISC’s HBCEULA, have now been relicensed under the MPL 2.0 open source license with the release of the Kea 2.7.7 development version. Kea 3.0 will be the first stable version which includes all of these hooks in the open source. (Note that these are in addition to the hooks already in the Kea open source.)

  1. Class Cmds - allows configured DHCP client classes to be added, updated, deleted, and fetched without needing to restart the DHCP server.
  2. DDNS Tuning - adds custom behaviors related to Dynamic DNS updates on a per-client basis. Its primary feature is to allow the host name used for DNS to be calculated using an expression.
  3. Flex ID - allows the administrator to specify which field to use as the unique identifier for clients.
  4. Forensic Logging - creates a configurable lease history.
  5. GSS-TSIG library is used to authenticate DDNS updates via GSS-TSIG, using Kerberos mechanisms to retrieve dynamic keys. This capability is of particular importance to Windows networks, as this is usually the only method available in an Active Directory environment.
  6. Host Cache - provides a way to cache responses from other hosts, improving performance when using the RADIUS hook.
  7. Host Cmds - enables you to store host reservations in a separate backend MySQL or PostgreSQL database, and add or remove host reservations on demand, without restarting Kea. Stork relies on this hook to provide a graphical interface for managing host reservations in Kea.
  8. Lease Query - adds support for DHCPv4 Leasequery (RFC 4388), DHCPv4 Bulk Leasequery (RFC6926), DHCPv6 Leasequery (RFC 5007), and DHCPv6 Bulk Leasequery (RFC5460).
  9. Limits - apply a limit to the rate at which packets receive a response. The limit can be applied per-client class or per-subnet.
  10. Ping-check - the kea-dhcp4 server can perform ping checks of candidate lease addresses before offering them to clients.
  11. RADIUS - provide access control or accounting integration with a RADIUS server.
  12. Subnet cmds - allows listing, adding and changing subnet configuration in Kea without restart. Stork relies on this hook to manage subnets in Kea.

Earlier versions already released will remain licensed as they were when they were released.

Some of the hook libraries listed had previously been offered for purchase on the ISC web site, and others had been reserved as a benefit for support subscribers. Two hook libraries remain under the commercial license: Configuration Backend and Role-based Access Control.

Why were these libraries commercially licensed in the first place?

We wanted to ensure a stable funding stream for the Kea team. We were cautious, because we had a lot of evidence that users didn't want or expect to contribute to development or maintenance of DHCP software, based on our experience with ISC DHCP.

We had already observed that many of our users were empowered to purchase software, but were not able to make donations. Users who wanted to help sustain the open source they used often did not have any ability to make a donation, but they could buy something from us, if we offered to sell something. So, we decided to offer some optional features for sale and as an incentive for signing up for our technical support services.

We also thought that charging a small fee for use of some of these optional features was a fair way to spread the burden of sustaining the software across a large user base. We created an online store, where we offered an option to purchase and download a package of the most popular Kea hooks for $549. We reasoned this was a fair amount for a business to pay for network infrastructure software.

How did online Kea hook sales work out?

For the benefit of others who may be considering this mechanism, we can say that it was not a massive success. A lot of companies do not buy software the way you might purchase a software game. They want a quote, an invoice, competitive bids from multiple suppliers, a vendor portal set up, etc., etc. Our little online store turned out to be anything but hands-off, worry-free, or self-service. We did get some customers, including many who purchased multiple licenses, and came back to renew, and some of these eventually signed up as technical support customers. We are grateful to every one of these organizations.

However, others struggled with both the online purchasing store and with the whole concept of software that was open source at the core with proprietary add-ons. We received inquiries from people who wanted us to distribute via resellers, or who had lots of administrative overhead in order to make even a small purchase. Users also needed a lot of help to determine in advance which features they would require. Those who did opt to purchase the add-ons, and those who subscribed for technical support, then had to jump through extra hoops to install the software, using special access tokens we had to create and maintain. This was extra work for both us and the users, and it didn’t feel like a productive use of our energy.

Why change the licensing now?

ISC is a mission-driven non-profit and we don't need, or want, to take in any more money than we actually need to sustain the project. We now have enough users who have decided to pay us for technical support that this revenue is enough to cover our expenses. We don't need to sell access to software add-ons, and we would certainly rather not do that if we don't have to. It was always uncomfortable for ISC to have commercially licensed software, and was definitely difficult for users to navigate. We still think it would be fairer if all users contributed something, but logistically that turns out to be difficult. We planned the change to coincide with the upcoming release of Kea 3.0, because that is a major new stable version with other significant changes.

What does this mean for Kea users?

New Kea users can adopt Kea without worrying about whether they may discover they need some functionality in closed source. In particular, all of the hooks that Stork uses to control and configure Kea servers are now open source. Current Kea users can now take advantage of more open source hooks, and nearly all users will be able to install Kea from our open source repositories, without having to include an access token in their download scripts.

There are only two hooks we have not yet put into the open source: the Configuration Backend and Role-based Access Control. These two hooks will be available to support subscribers only. These features have more limited applicability at the moment, and currently, Stork doesn’t integrate with either of them (support for the Configuration Backend hook is on the Stork roadmap).

Most current Kea users who install development branch packages from the access-controlled repository, https://cloudsmith.io/~isc/repos/kea-dev-prv, will want to switch to the open source repository, https://cloudsmith.io/~isc/repos/kea-dev. The formerly proprietary code has all been moved into the open source package repository and the only code remaining in the -prv repositories will be the two remaining proprietary hooks. Users who are entitled to the remaining proprietary hooks will need to install the kea-dev repository when installing Kea 2.7.7, because the install script for the proprietary software has to first retrieve and install the open source. The same pattern will apply when Kea 3.0 is released, and a new kea-3-0 stable version package repo is created.

This change is coming with the Kea 2.7.7 development version (March 2025), and the upcoming Kea 3.0 stable version (planned for release in June 2025). There will be no changes to the existing Kea 2.6.* and earlier versions; we don’t want to make such a major change in our existing stable versions, so already-released stable versions will remain under the license they were published with.

Thanks to our users, Kea is now sustainable as open source.

Recent Posts

What's New from ISC