Kea 0.9.1, 31 March 2015, Release Notes

Welcome to the 0.9.1 release of Kea. Kea is an alternative 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.

Version 0.9.1 adds the following features to Kea:

  • Host Reservation - the ability to add static reservations of addresses (DHCPv4 and DHCPv6), prefixes (DHCPv6) and hostnames (DHCPv4 and DHCPv6) for clients. For DHCPv6 clients, several methods have been provided to extract the client's MAC address from the information it sends to the server.
  • Support for the DHCPv6 Information-Request message.
  • The periodic removal of redundant information from the "memfile" backend's lease file. (Prior to this, the 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.9.1:

  • The JSON-based configuration file needs to be updated.
  • The MySQL/PostgreSQL lease databases (if used) need to be updated.


The kea-0.9.1 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

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'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 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

If you have any comments or questions about working with Kea, please share them to the Kea Users List or to the Kea Jabber room. 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 (0.9.1-beta). (See the git history for more details and additional development.)

  1. [doc] stephen

Corrected some configuration examples in the documentation. (Trac #3772 git e9f084525bc1eec1cca635c00f33228bf7fac6a4)

  1. [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)

  1. [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)

  1. [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 messages. (Trac #3755, git c71c7836804842bae51fe79fd599c57f5b3d007d)

  1. [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)

  1. [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)

  1. [bug] sar

Handle recovery properly should the LFC crash while manipulating files after completing processing. (Trac #3759, git bb3b4d14119392261a1766da2b406fa46d4c0f21)

  1. [doc] sar

Added sections on LFC to the administrators and developers guides. (Trac #3720, git 828b801e6a4616de331588076ab9c4c35677595)

  1. [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)

  1. [func] marcin

DHCPv4 server supports static reservations of the hostnames for the clients. (Trac #3688, git b5c50e2aff64da05b439da8d5fa4913fc8a704ca)

  1. [bug] marcin

Removed many cppcheck errors in the code. Also removed the dhcp-ubench test tool. (Trac #3736, git 552aea126e968b78292ae80c1c6a03c9ef4dcdcd)

  1. [bug] marcin

Handle overflows during time conversions in the MySQL and PostgreSQL lease database backends. (Trac #3673, git 27b4e4590fdee507f0e877d7b771dc6c6457a4b5)

  1. [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)

  1. [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)

  1. [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)

  1. [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)

  1. [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)

  1. [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 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 years ago Last modified on Mar 31, 2015, 12:10:25 PM