Knowledge Base ISC Main Website Ask a Question/Contact ISC
Kea 1.3.0
Author: Wlodzimierz Wencel Reference Number: AA-01533 Views: 1877 Created: 2017-10-27 10:46 Last Updated: 2017-10-27 15:47 0 Rating/ Voters
= Kea 1.3.0, October 27 2017, Release Notes =

Welcome to the 1.3.0 release of Kea. Kea is a DHCP implementation 
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.

The Comcast Innovation Fund provided some funding for this release.

Version 1.3.0 adds the following features to Kea:

* Shared networks - This feature allows the administrator to group 
multiple subnets together. This is commonly used to pool addresses from 
multiple subnets when the network has grown and more address are needed 
than are available on a single subnet.  Clients in the shared network may 
be dynamically assigned any address from any of the included subnets. 
Shared networks are also useful for specifying common parameters such as 
options for multiple subnets. If necessary, you can specify a parameter on 
the shared network scope and then override its value in the subnet scope, 
client class or on a host reservation.  

* REST interface over HTTPS - HTTPS provides authentication, 
confidentiality and integrity for communications over the REST API. We 
have tested and provided example config files for securing the REST API 
using Apache and Nginx. We have also provided example config files for 
securing client communications using stunnel. The maximum size of control 
commands and responses via REST API have been expanded, removing the 64K 
limitation present in Kea 1.2. This makes handling of large configurations 
possible. With these changes the REST API is now ready for production use. 
Development of this feature was sponsored by a Mozilla MOSS award.

* Lease management via REST API - New API commands enable querying, 
adding, reporting on current leases, and modifying existing leases while 
Kea is running. This allows the administrator (or any system that 
interacts with Kea) to check presence and status of leases and make 
necessary changes as needed. These commands are implemented in a new Lease 
Commands hook library included in the main Kea distribution.  Development 
of this feature was sponsored by a Mozilla MOSS award.

* Subnet management via REST API - Add, remove and modify subnets in Kea 
via the API, without resending the entire Kea configuration. This will 
make managing subnets via the api more feasible for configurations with a 
large number of subnets or deployments that want to avoid small 
interruptions when updating the whole configuration. This feature is 
implemented in the new Subnet Commands hook library, available only in the 
Kea Subscription package to encourage financial support for the project. 

* Flexible identifier for leases - flexible identifier computed by 
"flex-id" hook library can optionally be used as a client identifier for 
allocated leases. In many cases it is preferred to use stable identifier 
for the client, e.g. generated from the data inserted by a relay agent, 
rather than client supplied identifier, which may change as a result of 
hardware replacement. Previous versions of "flex-id" hook library allowed 
for associating host reservations with such stable identifier. The new 
version also allows for using such identifier for leases, which prevents 
conflicts between leases allocated for the client before and after 
hardware replacement. It also allows for retrieving leases by flexible 
identifier using REST API.

* New options - This release introduced support for 21 DHCPv4 and 10 
DHCPv6 options. Support for DHCPv4 vendor specific option (code 43) has 
been improved. It is now possible to use vendor-specific syntax for that 

* Options in pools - It is now possible to define options in DHCPv4 pools. 
This additional level gives users an ability to fine tune options and 
option values.

* New hook point - A new hook point 'command_processed' allows hook 
libraries to interact with command handling. Existing and new libraries 
have been updated to use that hook point.

* Conditional expressions - a new expression 'ifelse' is now supported. It 
allows users to make conditional choices in expressions, e.g. in client 
classification or flexible identifier.

* Other bug fixes and small improvements - As usual, we fixed many bugs 
and did other small improvements. In total 126 tickets (74 in beta and 52 
in final) were closed.

 == Important notes regarding upgrade from previous Kea versions. ==

* In the Kea versions prior to 1.3.0, the default configurations for all 
Kea services were stored in the 'kea.conf' file. The latest Kea version 
splits default configurations into 4 different files, one for each Kea 
service, i.e. 'kea-dhcp4.conf', 'kea-dhcp6.conf', 'kea-dhcp-ddns.conf' and 
'kea-ctrl-agent.conf'. This separation was required for some of the 
control commands to work properly. In order to continue using existing 
configurations stored in a 'kea.conf' file, it is required to manually 
move those configurations into new configuration files installed with Kea 
1.3.0. This step is not required for new Kea installations.

* The 'keactrl.conf' file has been updated in the 1.3.0 release, to 
facilitate the use of separate configuration files for different services 
(described above). Therefore, when upgrading an existing Kea installation, 
the 'keactrl.conf' file is replaced with the new version. The old 
configuration file is backed up as 'keactrl.conf.bak', and can be used to 
manually move any existing settings to the new 'keactrl.conf' file.

* Kea now requires the Boost system library by default.

== License ==
Kea 1.3.0 is released under the Mozilla Public License, version 2.0.

== Download ==

The Kea 1.3.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. We encourage all 
professional users to consider this option: Kea maintenance is funded with 
support subscriptions. For more information on ISC's DHCP software support 
see  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.3.0-beta). The changes done since 1.2.0 can be seen 
here: (See the git history 
for more details and additional development.)

1334.   [bug]           marcin
        Fixed a bug in the DHCPv6 server whereby a lease with zero
        lifetimes could be mistakenly included in the server's
        (Trac #5387, git 140e7239096c0d5b9fc82b2c9c461476bf9d5729)

1333.   [doc]           tmark
        Added a discussion of conflict resolution to the DHCP-DDNS chapter
        of the Kea admin guide.
        (Trac #5275, git ce3fe30524cdc21a9cabeafbdcb2fc3cd2e86cff)

1332.   [doc]           tomek
        Clarified list of supported options, added examples for using
        hex notation to specify option values.
        (Trac #5068, git c942586172a68a7fac09e366383d996ade7f3840)

1331.   [func]          marcin
        Default "lfc-interval" value is now set to 3600.
        (Trac #5341, git dd1af78a49bfb68b88e8215dde65e40a470af81c)

1330.   [bug]           fdupont
        The option length checks were relaxed for the V-I Vendor Class
        (Trac #5391, github #57,
         git 8c1ea6684a808e8d3af9ea7eccecd93adc801e8a)

1329.   [func]          marcin
        Added support for "client-id" identifier when querying for
        leases in the lease_cmds hooks library. Documentation
        updated accordingly.
        (Trac #5395, git aceafa67f4fbde55ed6724a7b7551ed251e4ee91)

1328.   [doc]           vicky
        Acknowledgements section updated.
        (Trac #5385, git fe0658896f3784cd8f59bd5158244d6975cfe4c1)

1327.   [build]         marcin
        Updated Kea libraries' version numbers and hooks version for
        the 1.3.0 release.
        (Trac #5375, git 70c0fc164c89716419b6ee42da3ca0d4be938a30)

1326.   [func]          fdupont
        server-hostname and boot-file-name are now allowed in global,
        subnet4 and shared network scopes in DHCPv4.
        (Trac #5277, git 5a2454ec063530867dca2c46a71e342ccd98a5bb)

1325.   [bug]           marcin
        Fixed a bug whereby a reserved address could be allocated to
        a different client when this client explicitly requested
        this address.
        (Trac #5393, git 0964c66d44516a04ec62c8e70be92f216fe3df5a)

1324.   [doc]           wlodek
        Added examples of configuration for iPXE boot with DHCPv6 Kea 
        (Trac #5356, git c68b9b381930d1e44fd5daa1b9d033035e32cff2)

1323.   [doc]           marcin
        Added new section to Kea Hooks Developer's Guide describing how
        to implement new control commands within hooks libraries.
        (Trac #5331, git b23f36ca4a410ba7bca7fd4a9f40c008c77e3c7c)

1322.   [build]         marcin
        Copy all header files from Kea libraries during "make install".
        (Trac #5372, git cb38d39a942351ec04a655a396dd7396ea20548b)

1321.   [doc]           marcin
        Better explained subnet selection within shared networks when
        client classification is in use.
        (Trac #5367, git 26b4d240c5a1ba73e5b61f45d5a832e52f6472dd)

1320.   [doc]           marcin
        Improved documentation of shared networks within Kea Administrator
        Reference Manual.
        (Trac #5381, git c4be6a71ed3705c182d7ba4417a06ed8fa59f2b5)

1319.   [func]          marcin
        Added support for DHCPv4 option 54 (dhcp-server-identifier).
        (Trac #5376, git aae2d91f101b8c61c0abfb3482de04a8dd074121)

1318.   [doc]           marcin
        Updated Kea Administrator's Manual with the information about
        new capability of flex-id hook library to use value derived from
        flexible identifier as a client identifier or DUID.
        (Trac #5384, git cce58fee4aa0476712209a7ed92fab587258b49b)

1317.   [bug]           fdupont
        The kea-admin script now behaves properly when -4 or -6 is missing
        while using lease-dump command.
        (Trac #5379, git 53870c07d1864faf2a25bdc4ed6c5cf2b0223f8d)

1316.   [bug]           marcin
        Corrected a bug which caused a returning DHCPv4 client performing
        4-way exchange to be assigned a different address from a shared
        network than previously allocated.
        (Trac #5388, git 601a387ba43d990947ee2e1a05e78851d8133a3c)

1315.   [bug]           marcin
        Created unit test for the case when there are several IPv6 subnets
        within a shared network and each subnet specifies the same
        DHCP option with a different value. This test verifies the fix
        applied with ticket #5364 which address the problem of assigning
        options from invalid subnet.
        (Trac #5366, git 112addd4619509c464dc051f4885e00dc1f69d26)

1314.   [bug]           marcin, tomek
        Improved unit tests for shared networks and corrected a bug
        in the allocation engine which caused wrong subnet id to be
        stored in the lease database and wrong subnet be used by the
        DHCPv6 server for options assignment.
        (Trac #5364, git 07ce52ee4ce65eeeea1890201812ac83a286658f)

1313.   [bug]           fdupont
        Empty output_options structure is no longer returned by config-get
        or config-write commands.
        (Trac #5267, git f2290503ed899f00c7f2f2b905b90bc360617340)

1312.   [func]          marcin, tomek
        Added new configuration parameter "outbound-interface", which
        controls how the outbound interface and source address is
        determined for the responses sent by DHCPv4 servers to relayed
        clients. The default setting is to use the same interface as
        the one over which the query has been received. The alternative
        is to use system routing to determine the right interface and
        source address.
        (Trac #5377, git d08088923ec1ea0d1cb8a947bd520174d874d25e)

1311.   [build]         fdupont
        Improvements in --enable-shell and other parameters passed while
        building dist tarball.
        (Trac #5210, #5339, #5352,
        git e531cda4e10114a8f14bcbf3d7e25b6584230875)

1310.   [bug]           marcin
        Documented "ia_pd" parameter for lease6_renew and lease6_rebind
        hook points.
        (Trac #5368, git 6842036714f84bf12529e1a43e12ac5a07e2e5c0)

1309.   [func]          fdupont
        Kea-shell script now has an optional --path parameter that allows
        using not empty URL path.
        (Trac #5361, git 9a31c417d52f1481185b0880a10a4b5f16d8462a)
1308.   [func]          fdupont
        Support for conditional token ifelse(condition, iftrue, iffalse)
        was added. It can be used in flex-id, client classification and
        possibly other expressions that may appear in the future.
        (Trac #5363, git 34c364abd23a1a745da79c10c69b94b8defad08b)

1307.   [func]          fdupont
        When an option is defined with a record type and the array
        flag is true the last record field is an array. All standard
        options supported by ISC DHCP and using this are now supported
        by Kea (so now there is no standard option supported only by
        ISC DHCP).
        (Trac #5226, git f66951dbda8f62122187ac3a99f0fdcc65b383d8)

1306.   [bug]*          marcin
        Respective Kea daemons now use their own default configuration
        files: kea-dhcp4.conf, kea-dhcp6.conf, kea-dhcp-ddns.conf and
        kea-ctrl-agent.conf. This change is aimed at eliminating the
        issue whereby 'config-write' command overrides configuration
        of all servers rather than just a configuration of the daemon
        to which this command has been sent.
        (Trac #5338, git 252e5e8a75fa42271b0cdb6edad3c152bbf3c515)

1305.   [bug]   tmark
        Corrected logic that was causing kea-dhcp4 to remove DNS entries
        when renewing leases with generated FQDN names.  Prior to this
        the server was incorrectly scheduling DNS removal when configured
        to generate the client's FQDN.
        (Trac #5369, git 18f57f502f1b9fb5bf7ef5ab995ddda60006fd39)

The following changes were made to the premium package since its 1.2.0 

19. [doc] mcnally
INSTALL and README files rewritten.
(Trac #5401, git 72a55979349228c4c1c335962f15437d071ecd79)

18. [doc] tomek
Developer's Guide for host_cmds library written.
(Trac #5319, git 2c613f7f59a74eb5b46d9425f50be61662d6fdd9)

17. [func] tomek [subscriber]
Commands for managing shared networks (network4-list,
network6-list, network4-get, network6-get, network4-add,
network6-add, network4-add, network6-del, network4-subnet-add,
network6-subnet-add, network4-subnet-del, network6-subnet-del)
(Trac #5311, git af982f696a9edd6f27f3572f0e8590f41fcf7b50)

16. [func] marcin
flex-id hook library uses a value derived from flexible identifier
as a client identifier (or DUID) for DHCP message processing. This
guarantees that for the same value of flexible identifier the same
lease is granted to the client.
(Trac #5384, git 357ebffda6ebb1ab1dcac27a88baf07ff1efe35d)

15. [func] tmark
The command handlers in the hook_cmds hook library are now
implemented has hook callouts and registered with the Hooks
manager. Prior to this they were registered as command handlers
with the Command Mgr.
(Trac #5332, git 1e37e289e863de03a83da56ea0b3add89e97d019)

14. [bug] tmark
Modified to call a main repo macro to properly locate
Botan during build. Prior to this unit tests were failing to link
under some environments, unable to find botan lib.
(Trac #5358, git 375bc5e18ae0ba6891a74a62b1681a670d2a0de3)

13. [build] tmark
Added configure flags --with-tier1 and --with-tier2 to allow 
which hook libraries are included in the build and distribution.
(Trac #5359, git c0e2a6d08ff08ac0e8c379176259c317490ef5c2)

12. [func] tmark
Added logging of lease<4/6>-add, -update, -del control channel
commands to the legal-log hooks library.
(Trac #5111, git 3dc0b5db976df3e724f3d0447ef51d9fd34158f4)

11. [func] marcin [subscriber]
The subnet_cmds library now supports commands for adding and 
subnets from the current configuration.
(Trac #5315, git 2e09d82696679084c84a61fde622adc379adfcd7)

10. [func] marcin [subscriber]
A new library, subnet_cmds, is now available. It implements
commands that list IPv4 and IPv6 subnets as well as commands
for retrieving a subnet by subnet identifier or prefix.
(Trac #5314, git 287f803f4df2e9bc5bb505be42a657b5c9ef3c44)

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