This table lists the major feature differences for different releases of Kea. A "✔︎" in the table below indicates that feature is present in that branch. When all currently supported versions of Kea have the feature, we remove the row (because there is no difference to highlight).
This list does not include many smaller changes, including changes in existing features or minor new features. For more detail, we recommend checking the release notes. The release notes for the first release on a new stable branch (e.g. 3.0.0) include significant changes since the last stable version.
Please use the slider underneath each table to scroll left and right.
Kea Features
| Feature | Kea 3.2 Stable | Kea 3.0 Stable | Kea 2.6 EOL |
|---|---|---|---|
| Address Allocation | Shared Free Lease Queue (sFLQ) | ✔︎ | ✔︎ |
| Bulk Leasequery | ✔︎ | ✔︎ | new command and query added |
| Client Class Tagging | ✔︎ | ✔︎ | - |
| Control Agent | The Control Agent (CA) was removed | ✔︎ | ✔︎ |
| Database - Configuration Backend Using PostgreSQL | TLS Support | ✔︎ | ✔︎ |
| Database - Reconnect | memfile now supports some `on-fail` logic parameters | ✔︎ | ✔︎ |
| DDNS Controls | ✔︎ | ddns-ttl, ddns-ttl-min, ddns-ttl-max, per-pool DNS parameters | ✔︎ |
| High Availability | ✔︎ | ✔︎ | hub-and-spoke model for multiple HA relationships |
| Host Reservations Mode - Global | ✔︎ | ✔︎ | reservations in-subnet enabled by default |
| Host Reservations Mode - Multiple | ✔︎ | ✔︎ | auto-generated subnet IDs removed |
| Interface Refactor | The interface code was refactored enhancing support for VLANs, external interfaces, better support for heavy load, and associated API commands | ||
| Lease API commands | `lease6-get-by-hw-address`, `lease{4,6}-get-by-state` | ✔︎ | ✔︎ |
| Lease-lifetime | `adaptive-lease-time-threshold` parameter added | ✔︎ | ✔︎ |
| Meson Build System | ✔︎ | ✔︎ | - |
| Multithreading Support | ✔︎ | ✔︎ | ✔ MT enabled by default |
| MySQL, PostgreSQL Hooks | ✔︎ | ✔︎ | - |
| Native HTTP/TLS Support | ✔︎ | ✔ | - |
| Open Source Hooks | ✔︎ | all hooks are open source except the RBAC and Configuration Backend hooks | - |
| Options | ✔︎ | NTP servers DHCPv6 Option #136 and its associated suboptions as per RFC5908 | new stash-agent option, updated implementation of the DNR option, new classless static route option |
| RADIUS | Support for Vendor attributes, include files, keep-alive (RFC5997), TLS support (radsec), and the Message-Authenticator attribute | ✔︎ | ✔︎ |
| Statistics | Many new statistics added: `statistics-global-get-all`, `pkt{4,6}-service-disabled`, `assigned-addresses`, `assigned-nas`, `assigned-pds`, `pkt{4,6}-limit-exceeded`, `pkt{4,6}-queue-full`, `pkt{4,6}-rfc-violation`, `pkt{4,6}-admin-filtered`, `pkt{4,6}-processing-failed`, `pkt{4,6}-not-for-us`, `pkt{4,6}-duplicate` | ✔︎ | ✔︎ |
| YANG/NETCONF Model Support | ✔︎ | ✔︎ | NETCONF model updated, vivso-option support added |
Kea Hook Libraries
Kea hook libraries extend the base functionality of the open source Kea DHCP server. Most hooks are now open source!
As of Kea 3.0.0, all hook libraries are now open source except the RBAC and Configuration Backend libraries. Those two remain commercially licensed and are only available with an ISC support subscription. For more information, please fill out our contact form at https://www.isc.org/contact.
This table lists the versions of Kea and the Kea hook libraries ISC supports, starting with Kea 3.0.0. All prior versions are now end of life.
The table at the bottom of this page details the commercially licensed and open source hook libraries through Kea 2.6.
| Hook Libraries | Kea 3+ Stable - Open Source | Kea 3+ Stable - ISC Subscriber-Only |
|---|---|---|
| BOOTP (RFC 1497) | ✔︎ | |
| Class Commands | ✔︎ | |
| Configuration Backend Commands | ✔︎ | |
| Database Backend for MySQL | ✔ | |
| Database Backend for PostgreSQL | ✔ | |
| DDNS Tuning | ✔︎ | |
| Flexible Identifier | ✔︎ | |
| Flexible Options | ✔︎ | |
| Forensic Logging | Syslog support | |
| GSS-TSIG | ✔︎ | |
| High Availability | HA listener restrict-commands configuration flag defaults to true | |
| Host Cache | ✔︎ | |
| Host Commands | ✔︎ | |
| Lease Commands | ✔︎ | |
| Leasequery | ✔︎ | |
| Limits | ✔︎ | |
| Ping Check | ✔︎ | |
| RADIUS Server Support | ✔︎ | |
| Role-Based Access Control | ✔︎ | |
| Run Script | ✔︎ | |
| Statistics Commands | ✔︎ | |
| Subnet Commands | subnet4-select-test, subnet6-select-test, and subnet4o6-select-test added | |
| User Check (example hook) | ✔︎ |
Legacy Hook Packaging
This table lists the versions of Kea and the supported Kea hook libraries, for each version prior to Kea 3.0.0.
| Hook Libraries | Kea 2.6 EOL | Kea 2.4 EOL | Kea 2.2 EOL | Kea 2.0 EOL | Kea 1.8 EOL | Premium package | Subscriber package | Enterprise package |
|---|---|---|---|---|---|---|---|---|
| BOOTP (RFC 1497) | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | |||
| Class Commands | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | + | + | |
| Configuration Backend Commands, requires either Configuration Backend for PostgreSQL or Configuration Backend for MySQL | new global parameters added | ✔︎ support for PostgreSQL backend, options preserved from client classes in cfg backend |
support for client-classes added | ✔︎ | ✔︎ | + | + | |
| DDNS Tuning | ✔︎ | ✔︎ | ✔︎ | + | + | + | ||
| Flexible Identifier | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | + | + | + |
| Flexible Options | ✔︎ | ✔︎ | new CSV-format, support for sub-options | ✔︎ new | ||||
| Forensic Logging | ✔︎ | now records whether the lease change is an administrative action or an automated HA update | added timestamp format | configurable with expressions | ✔︎ | + | + | + |
| GSS-TSIG | ✔︎ | ✔︎ | perform GSS-TSIG updates via Kerberos | + | + | |||
| High Availability | ✔︎ | ✔`max-rejected-lease-updates` added | ✔︎ | significantly updated for better performance with MT, CA bypass, added communication-recovery state, delayed updates, improved DHCP enable/disable | ✔︎ | |||
| Host Cache | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | + | + | |
| Host Commands | ✔︎ | `reservation-get-by-address`, `reservation-update` added | subnet-id parameter is now optional | lease4(6)-get-by-clientid(duid, hostname, hwaddress) | reservation-get-all, reservation-get-page | + | + | + |
| Lease Commands | ✔︎ | ✔︎ | ✔︎ | lease4-write and lease6-write new lease conflict status codes |
lease lifetimes based on client class | |||
| Leasequery | ✔︎ | added support for DHCPv6 Bulk Leasequery (RFC 5460)and DHCPv4 Bulk Leasequery (RFC 6926) using the memfile lease backend | ✔︎ | ✔︎ | ✔︎ | + | + | |
| Limits | ✔︎ | ✔︎ | new hook limits leases per second, leases per class | + | + | |||
| MySQL Configuration Backend | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | |||
| Performance Monitoring | ✔︎ | |||||||
| Ping Check | ✔︎ perform a ping check of a candidate IPv4 address prior to offering it | + | + | |||||
| PostgreSQL Configuration Backend | ✔︎ | ✔︎ | ✔︎ | |||||
| RADIUS Integration | multi-threading enabled | ✔︎ | RADIUS subnet selection added | ✔︎ | cache-size, cache-get-by-id | + | + | |
| Role-Based Access Control | ✔︎ | ✔︎ | + | |||||
| Run Script | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | |||
| Statistics Commands | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ | |||
| Subnet Commands | ✔︎ | ✔︎ | ✔︎ | ✔︎ | subnet4-update, subnet6-update | + | + | |
| User Check (example hook) | ✔︎ | ✔︎ | ✔︎ | ✔︎ | ✔︎ |


