Kea 1.2.0-beta Release Notes
| Author: Wlodzimierz Wencel Reference Number: AA-01477 Views: 792 Created: 2017-04-07 16:12 Last Updated: 2017-04-07 16:21
0 Rating/ Voters
= Kea 1.2.0-beta, April 7 2016, Release Notes =
Welcome to the 1.2.0-beta 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-beta 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 REST API.
* 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-beta is the first Kea release that requires C++11 support
in your compiler.
* Overall 113 tickets and 15 pull requests on github have been closed.
== License ==
Kea 1.1.0 has been released under the Mozilla Public License, version 2.0.
== Download ==
The Kea 1.2.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 http://kea.isc.org/docs 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 https://lists.isc.org/mailman/listinfo/kea-users. 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.1.0). (See the git history for more details and additional
1238. [build] tmark,tomek
Library version numbers bumped for release.
(Trac #5201 git 58c9c5b705d72031c1589c30c542384a9d43e0f3)
1237. [bug] marcin
Fixed hanging Control Agent unit tests.
(Trac #5200, git 65daafd135965f9eb0bd4c3a22085d4bd3c6ffbe)
1236. [build] zeitounator
Improvements in tools/tests_in_valgrind.sh script.
(Github #49, git 272e7babf9ebeab5f78850394d72c9431041e2e9)
1235. [func] MrMarvin
kea-admin now supports -h (and --host) parameter that can specify
MySQL or PostgreSQL database locations other than the default
(Github #14, git 4038157a3499ad90956c98a2172c57b173f2b985)
1234. [build] fdupont
Improved installation procedure for kea-shell.
(Trac #5170, git 68a902fb723965ee6f5b7a8272224395917525cc)
1233. [doc] marcin
Documented new component Kea Control Agent in the Administrator's
Manual and the Developer's Guide.
(Trac #5175, git abf7887ad65eb4b221a1fe61ea0c9773b4feaddb)
1232. [func] tomek
host4_identifier and host6_identifier hook points have been added.
Premium: Flexible Identifier (flex-id) hook point has been developed.
It allows users to specify a custom expression that takes any
option, field, characteristic or property of the packet to be
used as identifier and then do reservations based on the evaluated
expression for each incoming packet.
(Trac #5132, git cd497526d5bff7ae55bb41c9264fb33943a0cf62)
1231. [func] marcin
Control agent forwards commands to be handled by other Kea
(Trac #5078, git 19a50ed1ccafae19ef10d84cba73992cadf49753)
1230. [bug] fdupont
kea-dhcp-ddns now correctly populates the original ID in the TSIG rdata
when doing signed updates. Prior to this the value was set to zero
causing PowerDNS to reject then requests with a bad key error.
(Trac #5071, git cafa3d5c24f0112b0b9384a9c1083fe8a3eeb2bf)
1229. [func] fdupont
A new command: config-test has been implemented in DHCPv4, DHCPv6
and control agent servers. It allows checking whether new
configuration looks correct.
(Trac #5150, git 5f6cf226e848baef8d9af64e16c1dbf617a0a798)
1228. [bug] fdupont
Logging on syslog now uses correctly the given facility. If none
is given the default facility is local0, and with an unrecognized
value user (log4cplus default). The syslog openlog() ident
parameter is the program name.
(Trac #5053, git 532d9f0e459ab1450a83a5015a2dd54745794383)
1227. [func] fdupont, tomek
Additional commands: version-get, build-report have been
implemented for DHCPv4, DHCPv6 and Control Agent
components. Control Agent also now supports shutdown command.
(Trac #102, git 9d2b8326fc032876d74c1768c61c630987c25cc5)
1226. [func] fdupont
Command line option -t support added to libprocess and implemented
for kea-dhcp-ddns and kea-ctrl-agent. It allows configuration sanity
checking. Note that some parameters, such as ip-address, port, and
DNS server addresses for instance for kea-dhcp-ddns are not fully
checked as sockets are not opened or connections are not attempted.
(Trac #5152, git 2231d79ebebd3cdf432cd4a8ac32018d180e27b6)
1225. [func] tomek
Two new commands: config-get (retrieves current configuration)
and config-write (writes current configuration to disk) have been
(Trac #5151, git ffb26811736a2ae6f9b5556b9823aa284b7e0aec)
1224. [func] fdupont
toElement(), a crucial functionality for upcoming get-config
and write-config command, has been implemented.
(Trac #5114, git df38c26f957c9ac329718ac9d70ffbcf7b95c4e9)
1223. [func] tomek
Kea-shell, a management client able to connect to REST interface
provided by Control Agent, has been added. Control Agent now
uses bison parser, which provides better sanity checks, improved
comments and file inclusions.
(Trac #5137, git 816dc5ccfa374bd9942a49c7bac475f6d0523caa)
1222. [func] fdupont
Obsolete parameter 'allow-client-update' has been removed
from DHCPv4 and DHCPv6 components.
(Trac #5145, git 01fde297a978e2bd832655ac7276e5aa3a7e8400)
1221. [func] tomek
Control agent is now able to parse the input configuration and
store it in its configuration syntax structure. Upcoming tickets
will take advantage of that information.
(Trac #5134, git 828304f2f408888e4b096418e90e35ba524979d0)
1220. [func] parisioa, fdupont, tomek
DHCPv4 and DHCPv6 parsers have updated to accept database port
parameter. The parameter for Cassandra is now called
"contact-points" (was "contact_points" previously).
(Trac #5061, git d12b6f4a6d80d6bc854f2a8a086e412dc37867bc)
1219. [func] marcin
Control Agent uses libkea-http to process commands over
the RESTful interface.
(Trac #5107, git 88ce715926a46b6b3832630116fc7782adc46c7b)
1218. [func] tmark, tomek
Configuration parsing for D2 has been migrated to bison/flex
and the SimpleParser framework. This includes changes to
libprocess which render the CPL agnostic to the underlying
(Trac #5110, git feb2cedc0936364a923ab78542a21114533dd0f5)
1217. [func] marcin
Implemented libkea-http library.
(Trac #5077, git cd72284b5b221e620770883db7e166c4d3ba7eb6)
(Trac #5088, git 715d18f961801ffbd798a65b19459178c3a53857)
(Trac #5099, git 7e8df7993f295431e2cb6a13858f746649c4e18d)
1216. [func] fdupont, tomek
Command line option -t implemented for DHCPv4 and DHCPv6. It
allows configuration sanity checking. Note that not all parameters
are completely checked. In particular, service and control channel
sockets are not opened, and hook libraries are not loaded.
(Trac #3770, git 1d12582e270935ee7b72548d9c66753f4eea4ca4)
1215. [doc] tomek
Developer's Guide updated to cover flex/bison parser.
(Trac #5112, git 44139d821c1f4e43dbff22d49101a0854e4f9f5b)
1214. [func] tomek
Bison parser implemented for Control-agent. The code is able
to syntactically parse input configuration, but the output
is not used yet.
(Trac #5076, git d99048aa5b90efa7812a75cdae98a0913470f5a6)
1213. [bug] fdupont
Option string values containing comma can now be specified
correctly by preceding comma with double backslashes (e.g.
(Trac #5105, git fa79ac2396aa94d7bac91bd12d3593ebaaa9386d)
1212. [doc] andreipavelQ
Many spelling corrections.
(Github #47, git a6a7ca1ced8c63c1e11ef4c572f09272340afdd7)
1211. [func] andreipavelQ
Updated PostgreSQL version reporting to be in line with
MySQL and Cassandra.
(Github #42, git 7ef4a190facadd66775b4a44c696d1c4215616cd)
1210. [doc] andreipavelQ
Doxygen version updated to 1.8.11.
(Github #45, git ce72998382b62269823fa0dcbfa41dfa9c72b69e)
1209. [func] tomek
Relay options are now printed in DHCPv6 when sufficiently detailed
debug logging is requested.
(Trac #5131, git 5bf58b21fcf07f2e2e97275efa1f76cde913b30a)
1208. [func] tomek
Global DHCPv4 and DHCPv6 parsers have been migrated to the
SimpleParser framework. Several parameters (renew-timer,
rebind-timer, preferred-lifetime, valid-lifetime, match-client-id,
next-server, decline-probation-period, dhcp4o6-port,
echo-client-id) now have explicit default values.
(Trac #5019, git f3538dd031e6f29abcd516f425d72c8f929abbb0)
1207. [func] fdupont
Client classes parser migrated to SimpleParser. The 'name'
parameter in 'client-classes' definitions is now mandatory.
(Trac #5098, git e93906e48a6e2b0ff78c5e37dca642646fe47d43)
1206. [func] tomek
'hooks-libraries' parser migrated to SimpleParser. The code will
now refuse a configuration if a hook library fails to load.
(Trac #5031, #5041, git 1bbaf4cbcf6fda59bacdf526a6c762315fdd88a1)
1205. [func] tomek
Parsers for interfaces configuration converted to SimpleParser.
Removed obsolete 'version' parameter in Dhcp6.
(Trac #5020, #5038, git 3d8e48c640e302670c04907468d11faafbe9fe7b)
1204. [func] marcin
Added 'control_command_receive' hook point to Kea Command
(Trac #5100, git d0c7cb29a7df3588c540afb4ca56de55f26142e0)
1203. [func] marcin
Implemented TCPAcceptor class in libkea-asiolink. This class
provides means to listen and asynchronously accept new TCP
(Trac #5094, git 920ba90696ba9d8579a7db5e1efcf955d6654a96)
1202. [func] tomek
Parsers for mac-sources, control-socket, and relay-info converted
to SimpleParser. It is no longer accepted to specify empty
mac-sources. Either specify actual values in mac-sources or
don't specify mac-sources at all.
(Trac #5032, git f1c9dee0936b48be28f890ffd428fbdeb87c12ea)
1201. [func] tmark
kea-dhcp4 and kea-dhcp6 now support the "set-config" command.
The command causes the server to replace its current configuration
with the configuration supplied as the command's argument.
(Trac #5046, git 4afbdcf89c9f83d944f774d05bd401d3f2768d10)
1200. [func] tmark
kea-dhcp4 and kea-dhcp6 now support the Command Channel "libreload"
command. The command causes the server to unload and then load all
currently loaded hook libraries.
(Trac #3238, git d4d8665494e1847b34b66f8ef542851ea6f0213c)
1199. [func] tomek, fdupont
Dhcp4 parser migrated to bison. This yields a number of user
- better comment handling (bash, C, C++ style comments)
- file includes now supported
- better syntax checking
- added advanced.json config example
- removed obsolete 'version' parameter
(Trac #5017, git 1cf853c595a100c86f9b2b3353f1b5964d902147)
1198. [func] marcin
Created kea-ctrl-agent. This application currently doesn't
do anything. Future tickets will add REST API to allow for
managing Kea services.
(Trac #5075, git 1ec7586da5ae1474b52d5a395fb80ee37d6d568e)
1197. [doc] tomek
Configuration examples now set lfc-interval to a default
value of one hour.
(Trac #5072, git cf4362196fa2b7892643d1e40b974bb450a3de7e)
1196. [func] tomek, fdupont
Dhcp6 parser migrated to bison. This yields a number of user
- better comment handling (bash, C, C++ style comments)
- file includes now supported
- better syntax checking
(Trac #5036, git 4c5902da95a5228275cdb151b357864cfa9c31f5)
1195. [build] fdupont
Altered to compile in C++ 2011 standard mode. Also replace (most)
instances of the deprecated std::auto_ptr with std::unique_ptr.
(Trac #5066, git a060d4a983860bf3056d50d9bf7ee4355c8372f2)
1194. [build] marcin
Moved StateModel class from D2 to libkea-util.
(Trac #3175, git 270ec379aec2894104a299cdd1080e24007e25fb)
1193. [doc] stephen
Update Hook Developers documentation to make it clearer where
the Kea include files and libraries are located.
(Trac #5069, git 14a78caaf3af9fe9a0ffe2c8af784eab78e813e0)
1192. [build] marcin
Created libkea-process library and moved the Controllable
Process Layer (CPL) from D2 to this new library.
(Trac #5074, git 4563925f7966e9da2132eb427e742cc3d3feee5d)
1191. [build] tomek
Optional support for premium package added.
(Trac #5027, git 5ff51f28a1f05d941bb117986922a6f410f23c6c)
1190. [func] tomek
User context implemented: an arbitrary user information can
now be defined for address and prefix pools.
(Trac #5023, git 4f81789e19b72c933bcf86e402b417c63bd7bd3f)
1189. [func] fdupont
Owing to API changes, crypto code now requires OpenSSL 1.0.1 or
(Trac #3908, git 4c14fdfd4187a4c8f7b775432082b76782e47663)
1188. [doc] vlegout
Fixed several spelling mistakes.
(Github #32, git d51c005519c4add6fd0c37bcd68b0fbe94941b2d)
1187. [bug] marcin
DHCPv4 server allows for allocating multiple leases for the
same hardware address if a different client identifier is
used for each lease. This facilitates the PXE boot use cases
where a booted machine may request a lease multiple times.
(Trac #5029, git 03defed4d8bb9a997d31dbfcf30ae3f866bd3353)
1186. [func] marcin
Support for DHCPv6 options defined in RFC6603 and RFC7598. Thanks
to Andrei Pavel and Cristian Secareanu of Qualitance for submitting
(Trac #github24, git 59b62eb3ddd9db62c04bd47cd8fbdc1af62fbc1b)
1185. [build] marcin
Install Kea headers to be used for building external libraries.
Before this change some required headers were not installed.
(Trac #5055, git a46087b7b7face4a1318658bbdcbf7602c1bb729)
1184. [bug] eest
Fixes in the occasionally failing LFC unit test. This
fix was provided by Patrik Lundin.
(Github #31, git 69a5722bf3b41bf3b2bc0c2bcac966c23c08f62d)
1183. [bug] tmark
kea-dhcp4 now correctly loads declined leases from CSV
lease files. Prior to this, declined leases were being
incorrectly and silently discarded. In addition, both
kea-dhcp4 and kea-dhcp6 will now emit an error log for
each invalid row encountered when loading leases from
(Trac #5058, git 29b088079bed3c5059fdf8a43a4e79cd7f9a4207)
1182. [func] marcin
DHCP servers detect overlapping pool ranges during
(Trac #2280, git c8f931e0189c9630f5fba5d2a5553bed4abf36f7)
1181. [func] marcin
Extended DHCPv6 server to allow for specifying DHCP options
on address and prefix pool levels.
(Trac #5022, git e3b2785c79aedbb0c8af7468d61f6d61dafd2282)
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 http://www.isc.org/donate-to-isc/.
We look forward to receiving your feedback.
© 2001-2017 Internet Systems ConsortiumFor 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.