Kea 0.9.1 Release Notes



Kea is a new DHCP implementation being developed by Internet Systems Consortium, Inc. that features fully functional DHCPv4, DHCPv6 and Dynamic DNS servers. Both DHCP servers fully support server discovery, address assignment, renewal, rebinding, release, DNS updates and host reservation. The DHCPv6 server supports prefix delegation. 

This document summarizes features added or significantly changed since the previous release, Kea 0.9. Bug fixes since Kea 0.91 beta are also summarized. Please see the ChangeLog file in the source code release for a complete list of all changes.


The latest versions of Kea software can always be found on our web site at or  from (this release is A PGP signature of the distribution is at  The signature was generated with the ISC code signing key which is available at

Kea provides detailed documentation, including installation instructions and usage tutorials. In addition, all logging messages have unique documented explanations. This documentation is included with the installation or via in HTML, plain text, or PDF formats. We also maintain a public open source code tree and wiki pages with roadmap and issue tracking at

Limitations and known issues with this DHCP release can be found at

We would like testers 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.

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


Professional support will be available when Kea reaches Release 1.0. Free best-effort support is provided by our user community via a mailing list. Information on all public email lists is available at

New Features

  • Host Reservation, the ability to add static reservations of addresses (DHCPv4 & DHCPv6), prefixes (DHCPv6) and hostnames (DHCPv4 & DHCPv6) for clients.
  • For DHCPv6 clients, several methods have been provided to extract the client's MAC address from information it sends to the server.
  • Support for the DHCPv6 Information-Request message
  • The periodic removal of redundant information from the "memfile" lease file. (Prior to this, the lease file would grow without bound.)
  • A tool, 'kea-admin', for administrators to create and update the databases used for the MySQL and PostgreSQL backends.
Note: When migrating from Kea 0.9 to 0.91:

  • The JSON configuration file must be updated.
  • The MySQL or PostgreSQL lease databases must be updated (if used).

The following summarizes the significant changes and important upgrade notes since the previous release (Kea 0.9). (See the git history for more details and additional development.)

919. [doc] stephen
Corrected some configuration examples in the documentation.
(Trac #3772 git e9f084525bc1eec1cca635c00f33228bf7fac6a4) 918. [func] tomek,tmark
DHCPv6 server now supports static reservations of hostnames
for clients. Note this resolves #3708 by reducing the number
of calls to selectSubnet to once per client request.
(Trac #3689 git c13c824d9948f7e3f71a65ed43798f3b5c14042c) 917. [bug] marcin
DHCPv4 server may allocate lease for the client which is
using a non-unique identifier (HW address or client id),
if the other identifier is unique.
(Trac #3768, git 0f7a029e2a2a7652d49a0bcd9f49e879fac9136f) 916. [func] sar
Add a log message that indicates when the v4, v6 or
DHCP-DDNS server has completed processing its
configuration and is about to enter the loop to process
(Trac #3755, git c71c7836804842bae51fe79fd599c57f5b3d007d) 915. [func] tomek, marcin
The DHCPv6 server now supports the Relay-Supplied Options
option, as defined in RFC 6422. The relay can insert options
in the relay forward message that the server will send back
to the client if certain criteria are met.
(Trac #3705, git 4772ee589712f5359ecbd79ebf71fbc7bb68741b) 914. [bug] marcin
DHCPv4 server: corrected the logging message issued when
the server could not allocate or offer the lease for the
client. The corrected message contains the client-id,
hardware address, ciaddr and requested-ip-address.
(Trac #3737, git 4c56e1348c5d50eaa5b3083a0a8c346966e1b603) 913. [bug] sar
Handle recovery properly should the LFC crash while
manipulating files after completing processing.
(Trac #3759, git bb3b4d14119392261a1766da2b406fa46d4c0f21) 912. [doc] sar
Added sections on LFC to the administrators and developers
(Trac #3720, git 828b801e6a4616de331588076ab9c4c35677595) 911. [func]* marcin
libdhcp++: the C++ objects representing network interfaces
(Iface objects) are now non-copyable. As a result, the API
of the Interface Manager functions returning the pointers
to the Iface objects has changed.
(Trac #3715, git 7415c74e38e13385a75e7200cb23b7d6ca86df7f) 910. [func] marcin
DHCPv4 server supports static reservations of the hostnames
for the clients.
(Trac #3688, git b5c50e2aff64da05b439da8d5fa4913fc8a704ca) 909. [bug] marcin
Removed many cppcheck errors in the code. Also removed the
dhcp-ubench test tool.
(Trac #3736, git 552aea126e968b78292ae80c1c6a03c9ef4dcdcd) 908. [bug] marcin
Handle overflows during time conversions in the MySQL and
PostgreSQL lease database backends.
(Trac #3673, git 27b4e4590fdee507f0e877d7b771dc6c6457a4b5) 907. [doc] tmark
Corrected depictions of kea-admin command line options for
database-name in Kea Administrator Reference. Prior to this
the document showed "-d" as the database name option, when
in fact it is "-n".
(Trac #3742, git ec427e4c9d008abc800f87eda3c0024b35e4c2e2) 906. [doc] tmark
Added description of a restriction on extracting a MAC
address from an IPv6 link-local address to the Kea
Administrator Reference, section 8.8, item "ipv6-link-local".
(Trac #3691, git ca9f5541cb36f815ac614c5c21088d545eafcac6) 905. [func] marcin
DHCPv4 server assigns an address from the dynamic address
pool if the reserved address is in use by another client.
(Trac #3694, git 95b09ff53b941691cba172c933de0682b05a0d85) 904. [bug] marcin
FreeBSD-only change: Disabled unit test expecting the death
of the process when conditional variable was destroyed when
the thread was still waiting for the variable. This is due
invalid behavior of the pthread_cond_destroy on FreeBSD
which should return EBUSY in such case, whereas it returns
success error code.
(Trac #3710, git bdb442402ef023055715baf597c401c9974a7fb2) 903. [bug] stephen
Corrected arithmetical error in the rate control module of
perfdhcp which led to the incorrect calculation of the rate
at which packets should be sent.
(Trac #3729, git bb5bca3d9b68abc4b83abdd204bfb075dda630ac) 902. [bug] marcin
Fixed the bug in the DHCPv4 server whereby the server
reconfiguration (using the SIGHUP signal) failed because
of sockets remaining open since the previous configuration.
(Trac #3730, git 3ceb0cd97cf5e44e8fc151d0a38db553530dd3ed)

Thank You

Thank you 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 your feedback.