Knowledge Base ISC Main Website Ask a Question/Contact ISC
Kea 1.2.0
Author: Wlodzimierz Wencel Reference Number: AA-01494 Views: 2913 Created: 2017-04-28 16:50 Last Updated: 2017-05-08 08:47 0 Rating/ Voters
= Kea 1.2.0, April 28 2017, Release Notes =

Welcome to the 1.2.0 release of Kea. Kea is a new DHCP implementation being 
developed by Internet Systems Consortium, Inc. that features fully functional 
DHCPv4 and DHCPv6 servers, a dynamic DNS update daemon, a Control Agent (CA) 
that provides REST API to control DHCP servers, an example shell client to 
connect to the CA 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.2.0 adds the following features to Kea:
* Control Agent is an optional daemon that can connect to command channels 
exposed by DHCPv4 and DHCPv6 (this capability in DDNS module is coming soon) 
and exposes it over REST API. It uses a clean, easy to use HTTP interface that 
receives commands defined in JSON syntax. A number of existing commands are 
available, with more being planned for each upcoming releases.

* kea-shell is an example client that can connect to CA. It is a tool that is 
mostly intended to be used in scripts, but can also be used to send commands 
manually. It is written in Python (supports both 2.x and 3.x), is optional (no 
python needed by default) and serves as an illustration on how to take 
advantage of the REST API. Any software or environment that can form JSON 
commands and send them over an HTTP interface can take advantage of the new API.

* parser refactoring - Part of the Kea code that was responsible for 
understanding configuration files was very complex, difficult to understand and 
even more difficult to extend. With the introduction of the REST API and its 
new commands, new use cases appeared when a file on disk is not the only 
possible source of configuration. Therefore the Kea team spent significant 
effort to refactor configuration handling. The code is now much leaner, simpler 
and much more extensible. There are some user visible benefits, too: you can 
now use C++ (!//) and C (/* ... */) comments everywhere. C style comments can 
span multiple lines. It is also now possible to include other files in your 
configuration file. The default values for absent parameters are now clearly 
defined and many additional sanity checks have been implemented. Finally, the 
configuration error messages are now more descriptive and easier to understand.

* new commands - a number of new commands have been implemented. In particular, 
it is now possible to update (config-set), retrieve (config-get) or write the 
current configuration to disk (config-write). It is possible to list supported 
command (list-commands), check version (version-get) information or compilation 
details that cover dependencies versions (build-report) and more. Commands 
previously available only over command channel API are now also available over 

* configuration test - A capability to test new configuration has been added. 
This works both from the command-line (see -t switch), via REST interface and 
command channel API (see config-test command).

* options in pools - It is now possible to specify options on a pool level.
* C++11 - Kea 1.2 is the first Kea release that requires C++11 support in your 
* Overall 144 tickets (including 31 since 1.2.0 beta) and 15 pull requests on 
github have been closed.

Two new premium features are now available to customers with Kea support 

* Flexible Identifier - Kea software provides a way to handle host reservations 
that include addresses, prefixes, options, client classes and other features. 
The reservation can be based on hardware address, DUID, circuit-id or client-id 
in DHCPv4 and using hardware address or DUID in DHCPv6. However, there are 
scenarios where the reservation is more complex, e.g. uses other options that 
mentioned above, uses part of specific options or perhaps even a combination of 
several options and fields to uniquely identify a client. Those are addressed 
by the Flexible Identifiers hook library.

* Host Commands - The Host Commands Library extends the set of supplied 
commands with additional ones allowing the management of host reservations. In 
particular, it add commands that let users inspect and query for current host 
reservations, add new host reservations in a safe way (the data is sanity 
checked) and delete existing ones.

= License =

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

== Download ==

The Kea 1.2.0 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.

== Support ==

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

== Changes ==

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

1257.   [bug]           marcin
        Improved logging in the hosts manager.
        (Trac #5264, git 2fb9fd78e63f5d09810702847ad3e3b3020ea92b)

1256.   [bug]           tomek
        Control Agent now writes proper configuration when using
        config-write command.
        (Trac #5253, git a1b5da4db6ebfa9635bbe411ec363cdcc4fd1d28)

1255.   [bug]           marcin
        Fixed failing unit tests in libkea-http.
        (Trac #5260, git 43394f76efb1634155c04b205dec7361fc21f4f9)

1254.   [func]          tomek
        Various improvements needed for upcoming host commands library:
        host data source is now able to delete hosts, hosts can be exported
        to JSON format, C++11 code for configure script moved to separate
        file, several compilation warnings removed.
        (Trac #5208, git 88555d8f23745f3d615448e906796920cc7f44d0)

1253.   [func,doc]      tomek
        Default configuration file has been overhauled significantly. It
        now covers many additional options and features. Command channel
        is now enabled by default. Thanks to Dan Mahoney for his review.
        (Trac #5198, git 280de81cfe957ccab8a28074bdb0a4bc0e45104e)

1252.   [bug]           tmark
        kea-dhcp6 now correctly resets lease state and increments the
        assigned statistic when it reissues an expired-reclaimed lease
        to the lease's original client, in response to a REQUEST from
        said client.
        (Trac #5252, git 85bde7adbe6a78238bd5e17fecabfa918755f16c)

1251.   [func]          tomek
        New type of host identifier (flex-id) used in reservations has
        by added to MySQL and PostgreSQL schemas.
        (Trac #5195, git 37c26cc30b717019fbd6b7349279541edb351382)

1250.   [bug]           fdupont
        Do not unregister timers when running the config-test command.
        (Trac #5186, git e891b06940e41b4cfaa324c2ace8fdd761ee6662)

1249.   [bug]           tmark
        The assigned lease statistics were not being probably adjusted
        by either kea-dhcp4 or kea-dhcp6 when reclaimed expired leases
        were reissued.
        (Trac #5247, git 4e5193fb32b14325ccf5824614e58bcceb3e6388)

1248.   [bug]           marcin
        Improved socket connection handling code, corrected numerous
        failing and crashing tests for libkea-asiolink, libkea-http
        and kea-ctrl-agent on Debian, Fedora and Ubuntu.
        (Trac #5217, git 4bcb45f0c88aba3d0f70ca48d9fff6f1d4616bc2)

1247.   [bug]           marcin
        Resolved issues with DHCPv4 host reservations by 'client-id'
        when MySQL or PostgreSQL host database backend is in use.
        Also, the 'client-id' is used together with other host
        identifier types when 'host-reservation-identifiers' parameter
        is not specified.
        (Trac #5102, git 390d687d0f61635f5562d13860ff6362eee67853)

1246.   [func,bug]      tomek
        Restrictions in filename argument in config-write command have
        been removed. It is now possible to use absolute paths.
        DHCPv4, DHCPv6, D2 and Agent parsers did not handle flush,
        maxsize or maxver parameters in logger configuration correctly.
        This is now fixed.
        (Trac #5187, git a30ffcc67cfb7370c586d3c85147792e27aab4c7)

1245.   [func]          fdupont
        DHCPv4 domain-search option can now be defined using
        comma separated values.
        (Trac #5087, git eca0b8c6425bc922587675100f100b1aae54aee2)

1244.   [doc]           tomek
        User's Guide section about Kea shell added.
        (Trac #5171, git 3dc4908fe02e86c57ccd5ad2d2f8330655f438be)

1243.   [func]          tomek
        config-reload command implemented. It allows Kea DHCPv4 and DHCPv6
        servers to reload its original configuration file. Also,
        set-config command was renamed to config-set.
        (Trac #5213, git b209c2b577a2f9da71cc918d7a551f8efdc1c4cb)

1242.   [func]          fdupont
        Integer fields in options can now be specified in either
        decimal or hexadecimal format.
        (Trac #4540, git 4cbf341f4169cf1e1eae0721644797a726d89702)

1241.   [func]          fdupont
        Support for tuple-based options added. DHCPv6 option
        bootfile-param (code 60) can now be set in a more convenient
        (Trac #4070, git 30102cacee95b91e6c4666f0c11f06232f19eeb9)

1240.   [bug]           marcin
        Corrected IOFetch unit test failures on Debian.
        (Trac #5216, git a7c2946678c43aedfb2e3c37b9730a10067528f3)

1239.   [func]          marcin
        Implemented additional sanity checks when adding host
        reservations into the configuration file.
        (Trac #5207, git ea42c6f479918235ae4a67a60d08720e2664720c)

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.

© 2001-2018 Internet Systems Consortium

For assistance with problems and questions for which you have not been able to find an answer in our Knowledge Base, we recommend searching our community mailing list archives and/or posting your question there (you will need to register there first for your posts to be accepted). The bind-users and the dhcp-users lists particularly have a long-standing and active membership.

ISC relies on the financial support of the community to fund the development of its open source software products. If you would like to support future product evolution and maintenance as well having peace of mind knowing that our team of experts are poised to provide you with individual technical assistance whenever you call upon them, then please consider our Professional Subscription Support services - details can be found on our main website.

  • There is no feedback for this article
Quick Jump Menu