Kea 1.1.0, September 30 2016, Release Notes

Welcome to the 1.1.0 release of Kea. Kea is an alternative DHCP implementation being developed by Internet Systems Consortium, Inc. that features fully functional DHCPv4 and DHCPv6 servers, a dynamic DNS update daemon, and a DHCP performance measurement tool. Both DHCP servers fully support server discovery, address assignment, renewal, rebinding, release, decline, information request, DNS updates, client classification and host reservations. The DHCPv6 server also supports prefix delegation. Lease information can be stored in a MySQL, PostgreSQL or Cassandra database; it can also be stored in a CSV file. Host reservations can be stored in the configuration file; they can also be stored in a MySQL or PostgreSQL database.

Version 1.1.0 adds the following features to Kea:

Additional Database Backend
Kea 1.1.0 has added preliminary support for Cassandra as a database backend. In this release of Kea it can only be used to store lease information, it is not able store host reservations. Cassandra support is currently considered experimental. Use with caution.

Host Reservations
Kea 1.0 contained limited support for storing host reservations in the database backend. Kea 1.1.0 has expanded that capability, allowing host reservations to be stored in a MySQL or PostgreSQL database. In particular, Kea 1.1.0:

  • Adds host reservation (DHCPv4 and DHCPv6) using the PostgreSQL backend.
  • Adds host reservation for DHCPv6 to the existing MySQL support.
  • Significantly extends the existing host reservation capabilities to include reservations of specific DHCP options, reservations of siaddr, sname, and file fields within DHCPv4 messages, and reservations of multiple IPv6 addresses/prefixes.
  • Allows the MySQL or PostgreSQL host reservation database to be configured read-only, in which case Kea will be able to retrieve reservations from it, but not insert or update existing reservations. This feature is useful when a database (or database view) exists for the particular deployment and the administrator doesn't want to grant read-write access for security reasons.

Client Classification
In Kea 1.1 the client classification system has been expanded. A class definition contains a name and a test expression of arbitrary complexity; if the test expression evaluates to "true" the client is a member of that class. A client may be a member of multiple classes and can acquire options from different classes. If the configuration contains multiple definitions for data for an option in two or more of the global, class, subnet or host entries, the server will choose the definition from the most specific entry.

There are a number of objects and operators available for use in the test expression.

  • Operators include: equal, not, and, or, substring, concat
  • Objects include:
    • literals: string, hexadecimal, IP address and integer
    • options: existence and content
    • relay options for DHCPv4 and DHCPv6: existence and content
    • subfields within vendor and vendor class options: existence, enterprise-id value and content
    • selected fields from DHCPv4 and DHCPv6 packets
  • Classes may be used to select subnets
  • Classes and class specific subnets may contain option data to serve to clients within that class

Hook Library Parameters
It is now possible to specify parameters for hook libraries in the Kea configuration file. In earlier versions of Kea, hook library authors had to use a external mechanism (such as file of a known name) to pass information across.

RFC7341 ( defines an architecture that allows dual-stack clients to communicate with DHCPv4 server in IPv6-only networks. Kea 1.1 introduces support for this mode of operation. It requires running both DHCPv4 and DHCPv6 servers in special mode, where DHCPv6 component does not allocate anything, but decapsulates incoming DHCPv4 messages, sends the to the DHCPv4 server and then relay back the responses.

Kea 1.1.0 has been released under the Mozilla Public License, version 2.0.


The Kea 1.1.0-beta source may be downloaded from:

A PGP signature of the distribution is at

The signature was generated with the ISC code signing key which is available at

ISC provides detailed documentation, including installation instructions and usage tutorials in the Kea Administrator Reference Manual. Documentation is included with the installation or via in HTML, plain text, or PDF formats. ISC maintains a public open source code tree at and wiki pages with roadmap and issue tracking at

Limitations and known issues with this release can be found at

We'd like 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 configuration or use case. Also we would like to hear whether the documentation is adequate and accurate (please open tickets for documentation omissions and errors). We want to hear from you even if everything worked.


Professional support for Kea is available from ISC. Free best-effort support is provided by our user community via a mailing list. Information on all public email lists is available at

If you have any comments or questions about working with Kea, please share them to the Kea Users List Bugs and feature requests may be submitted via the ticket tracking system at


The following summarizes changes and important upgrade notes since the previous release (1.1.0-beta). (See the git history for more details and additional development.)

  1. [doc] stephen

Editing pass through the Kea guide. (Trac #4484, git 63456fab1b978bd515198b9b9e604f293efd8217) (Trac #5008, git f09cd12d5b1abc60ccef98df2abc6c41b482a404)

  1. [doc] tomek

Manual pages updated. (Trac #3515, git 4cf0395e11e724786c4d2a1d48805f1c770f4c99)

  1. [doc] tomek

user_chk hook library is now documented in the User's Guide. (Trac #3209, git 4a8534d968a21cff3851619fb22d0032a1202c87)

  1. [build] marcin

Updated Kea libraries version numbers for 1.1-final release. (Trac #5012, git 6e9a224b46def357141a31386fcc912b29dfe16d)

  1. [doc] tomek

Developer's Guide has been updated. (trac #4299, git ed38076c183394feaef60e7123d0c488c9f6447d)

  1. [bug] marcin

Corrected a bug whereby a client, for which there was no host reservation specified, did not obtain an IPv6 lease from a server when PostgreSQL or MySQL host database backend was in use. In addition, PostgreSQL host database backend allows for specifying NULL values in certain columns within host reservation tables. (Trac #5009, git d3109bb27786867fdc99954ba55367f0ad129e7a)

  1. [bug] tmark

Modified kea-dhcp6 to avoid requesting DNS updates when existing leases are renewed without changes to the FQDN. (Trac #5007, git 05ea3a5eb75c06cf9814c63a1a54261bf58a954b)

  1. [bug] xxwolfsrainxx, marcin

MySQL database creation scripts use single quotes for strings to avoid issues with creation of the database when MySQL server operates in ANSI_QUOTES mode. (github #30, git e40a54a8e24b5f6427edd4afcd5cdc15012b8866)

  1. [bug] andir

Kea build fixes for gcc 6, which uses C++14 by default. (github #29, git ad68c3942839618c26d7ff017fbac7df139b5d01)

  1. [doc] marcin

Updated supported operating systems and the prerequisites for installing and building Kea in the Kea Administrator Reference Manual. (Trac #4502, git af847837590ce5b37a300ebe15652fb172585b38)

  1. [doc] marcin

Updated Kea Administrator's Reference Manual sections regarding host reservations. Added configuration examples for using host reservations with MySQL and PostgreSQL databases. (Trac #3684, git 71d21eac51d20ff5d368b17c437abc45c955a04c)

  1. [doc] marcin

Updated Kea Administrator Reference Manual to explain the implications of using "kea_verbose" parameter in the keactrl configuration. (Trac #3950, git c5f4920fd1994882e1fae398ae29b455401296bd)

  1. [doc] marcin

Corrected location of the Kea repository in the Kea Administrator Reference Manual. (Trac #4258, git f081000b892287316e54848ca1f62ca3512d4263)

  1. [func] marcin

DHCP servers utilize client classes defined in host reservations. (Trac #4765, git 242fbc47b31da404e57be458ac065f811084cca9)

  1. [bug] marcin

Corrected error message produced by the host database access parser when the database type was not specified. (Trac #4261, git 028dd49f4fa4843e68e23d11c237e9f4683470ba)

  1. [func] marcin

Hostname option is returned to the client when requested using Parameter Request List option. Previously this option was only returned when a client has sent Hostname option to the server. (Trac #5005, git 96ab8ecaa3d5b2d6cd88d0b16406f433d2cdf841)

  1. [bug] marcin

Corrected an issue whereby DHCPv4 server did not correctly set a server identifier in response message sent to a client on BSD systems. (Trac #5003, git 110c67325072a781d55cf0634f8f5f3385611f97)

  1. [bug] marcin

Corrected swapped DHCPSRV_MEMFILE_GET_EXPIRED{4,6} messages in the Memfile lease manager. (Trac #4717, git ce5919d97879c3fda0858894b24418af135ef8f3)

  1. [func] pallotron

Added two enhancements to perfdhcp: optionally using MAC addresses from a file in new DHCP transactions, and generation of DHCPv6 relayed messages. (github #22, git c5b4a5981cf642ebb9aecb8acc07b87abdccbd91)

  1. [bug] fdupont

Fixed interface manager receive methods which raise a bug on Fedora 24 / gcc 6.1? (Trac #4551, git 8d590e434062535e850a60a7892481df845ff390)

Thank you again to everyone who assisted us in making this release possible. If you would like to contribute to ISC to assist us in continuing to make quality open source software, please visit our donations page at

We look forward to receiving your feedback.

Last modified 4 months ago Last modified on Sep 27, 2016, 1:19:39 PM