Knowledge Base ISC Main Website Ask a Question/Contact ISC
Kea 1.0.0-beta Release Notes
Author: Wlodzimierz Wencel Reference Number: AA-01321 Views: 8852 Created: 2015-12-09 09:53 Last Updated: 2015-12-09 13:47 0 Rating/ Voters
= Kea 1.0.0-beta, 8 December 2015, Release Notes =

Welcome to the 1.0.0-beta 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 updates. Both DHCP servers fully
support server discovery, address assignment, renewal, rebinding, release, DNS
updates and host reservation. The DHCPv6 server supports prefix delegation.

Version 1.0.0-beta adds the following features to Kea:

* Lease expiration. Configurable mechanism gives the ability to properly 
  clean up expired leases, including logging, DNS cleanup and hooks. 

* Client classification. Initial support for client classification.

* Decline support in both DHCPv4 and DHCPv6.

* New statistics. Several new statistics have been added. They can be
  used to monitor lease expiration and decline processing.

* PXE boot. Several new DHCPv4 and DHCPv6 options useful for PXE and
  iPXE boot are now supported.

* Host Reservations in MySQL. Now Kea is able to store host
  reservations in its configuration file and MySQL database.
  This functionality works in DHCPv4, but does not work in DHCPv6.
  There is a work in progress to address this limitation.


Note: when migrating from Kea 0.9.2 to 1.0.0:
* Incompatible configuration changes in DDNS, details are in the Administrator Guide.
* Incompatible change in hooks configuration, details are in the Administrator Guide.
* RFC 7550 fully supported.

We are planning to release a second beta prior to the final release, having found some
new bugs too late to fix them in this first beta without delaying it.  We decided to
release this code on time with the newly-found defects still present because we anticipate
that Kea testers would prefer to start running tests specific to their DHCP environments
using new 1.0.0 features as early as possible.  The planned second beta's bug fixes do not
change ISC Kea's basic feature set or functionality.  ISC does not recommend deploying beta
versions of ISC code in business-critical production environments.

Important license change in upcoming release:
With the final release of Kea 1.0, ISC is planning to change the open-source
license under which it is distributed. Kea is currently licensed under the
ISC license, and with the release of version 1.0, it will be licensed under the
Mozilla Public License 2.0. The new license is slightly more restrictive than
the original ISC license. If you are planning to redistribute Kea, please
review the terms of the new license. For more details about why we are making
this change, see the blog posting https://www.isc.org/blogs/kea-license-2-0/ 

The ISC license: https://www.isc.org/downloads/software-support-policy/isc-license/
The MPL 2.0 license: https://www.mozilla.org/en-US/MPL/2.0/
An excellent FAQ about the MPL2.0: https://www.mozilla.org/en-US/MPL/2.0/FAQ/

== Download ==

The kea-1.0.0-beta source may be downloaded from:

   http://ftp.isc.org/isc/kea/1.0.0-beta/kea-1.0.0-beta.tar.gz

A PGP signature of the distribution is at

   http://ftp.isc.org/isc/kea/1.0.0-beta/kea-1.0.0-beta.tar.gz.sha512.asc

The signature was generated with the ISC code signing key which is available at

   https://www.isc.org/about/openpgp

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
http://kea.isc.org/docs/ 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 http://kea.isc.org/.

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

   http://kea.isc.org/wiki/KeaKnownIssues

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

   https://www.isc.org/community/mailing-list/.

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 or to
the Kea Jabber room.  Bugs and feature requests may be submitted via the ticket
tracking system at 

   http://kea.isc.org/.

== Changes ==

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

1067.   [doc]           sar
        Remove description of option[xx].text operator from classification
        until its use becomes clearer.
        (Trac #4218, git 22fe2bf889984078cd86c2a230a038632d21432c)

1066.	[func]		tomek
	Configuration parameters for setting up external hosts storage
	are now implemented. This feature is considered experimental
	for DHCPv4 and currently not really usable for DHCPv6.
	(Trac #3569, git 8896c9c3f77a7836d67e6c33943ac4892b851213)

1065.	[func]		fdupont,tomek
	The DHCPv4 server now stores Relay Agent Information option as
	the last one.
	(trac #4121, git 2f883d4afb9b27c6c59d993692370685b206b6c2)

1064.	[doc]		tmark
	Added Kea logo to documentation.
	(trac #3702, git 7cae813ffe9a7320db5c84ac4beb1c3c0ecabbf7)

1063.	[func]		marcin
	It is possible to disable writing generated DHCPv6 server
	identifier in a persistent storage. This also fixes a
	failing distcheck.
	(trac #4211, git d8f39b7aff9312237d4b6d6de39a7336a25ead4c)

1062.	[func]		marcin
	libeval: options may be referenced by their names in
	expressions used for client classification.
	(Trac #4204 git 38aebe9566e09daa30796df686cfdd6d0c43fa4d)

1061.	[func]		kalmus
	MySqlHostDataSource class implementation. It provides methods
	for adding and extracting Host objects to and from MySQL database.
	(Trac #3682, git 275b40fb941a6934c6434715184ae1c39f3fb3f2)

1060.	[func]		stephen
	Incremented KEA_HOOKS_VERSION to 3 for Kea 1.0.
	(Trac #4208, git bf6f3d495604942a395b51bbe4c37001b7541242)

1059.	[func]		nicolas
	The client packet is now passed as a new parameter "query4"
	to the pkt4_send hook point. Thanks to Nicolas Chaigneau from
	Capgemini for providing this patch.
	(Github #8, git )

1058.	[func]		tomek
	Two new hook points lease4_recover and lease6_recover have been
	implemented. They are called when a declined IPv4 or IPv6 lease
	concludes its probation period and is being recovered into
	usable state.
	(Trac #3988, 3989, git 1930797c48fee7f4006a33cecd6f08b05ae76725)

1057.	[func]		marcin
	It is now possible to specify type and value of a DUID used
	as DHCPv6 server identifier.
	(trac #3874, git faf52b069cf774d0050d76b4f47b542b2b5105f2)

1056.	[doc]		sar
	Added description of the expression based classification
	system to the Kea Admin Guide.
	(Trac #4101, git 3ec88e0669470ab406c45d50d0f853f9aeb3bf04)

1055.	[func]		fdupont
	Classify match expressions are evaluated on incoming packets and
	requested options are appended when configured by the subnet, a
	class or globally.
	(Trac #4097, git 752ad11ff4ebe97ec27d098aff706d1999900346)

1054.	[func]		tmark
	Replaced underscores, "_", with hyphens "-", in the parameter
	names used in the kea-ddns server's configuration as well as
	those in the DDNS messages (NCRs) sent to the server. For
	example, "ip_address" is now "ip-address", "change_type" is
	now "change-type".  This makes JSON element naming consistent
	throughout Kea.
	(Trac #4202, git 91bf527662060d4b1e294cd53e79b431edf0e910)

1053.	[doc]		tomek
	Support for DHCPDECLINE (v4) and DECLINE (v6) messages is
	now described in the Kea User's Guide.
	(Trac #3990, git 6b0db91610420f3cce55d9f887d7c73660ece209)

1052.	[func]		marcin
	libeval: expressions involving options can now use textual or
	hexadecimal format of the options.
	(Trac #4093, git 4cdf0fff1067b3dde6570dc6831e8b1343bc50fe)

1051.	[func]		tmark
	kea-dhcp4 and kea-dhcp6 configuration parsing now supports
	the "client-classes" element for defining client classes.
	(Trac #4096, git d21fd6925983eb20f82029e3866652398ea5e5fe)

1050.	[doc]		tmark
	Corrected the descriptions of ncr-protocol and ncr-format parameters
	in the Kea Admin Guide.
	(Trac #4117, git 034c1c95b57768d5abbc7fb40cc57d7cadad21dd)

1049.	[build]		fdupont
	Add a new --enable-generate-parser configuration parameter
	(disabled by default) which makes flex and bison to regenerate
	parser files.
	(trac #4125, git 18321bf85f93b24d720f1ab2d90b4f4da85bc471)

1048.	[func]		fdupont,tomek
	Implement expression parser for client classification.
	(Trac #4088, git ac9eb312bfd1c6bf22a868ad789a0c049f33f637)

1047.	[func]*		stephen
	Change the way that hooks libraries are defined in the configuration
	file in preparation for allowing the specification of library-specific
	parameters in a future version of Kea.
	(Trac #3259, git b2986b0b0299e691b13123922129bdbf8575afdb)

1046.	[func]		tmark
	Upon startup Kea servers will now detect memfile lease files
	that need upgrading, and will launch in instance of the LFC
	to convert them to the most current memfile schema version.
	(Trac #3601, git ce4b0e42e8a01bbf3b58fdb1f505bbd6e2fad134)

1045.	[func]		tmark
	Added classes for storing client class definitions to libdhcpsrv.
	(Trac #4095, git 1039a942450e2a45a1e1aa9924cae4fdbd1541fe)

1044.	[build]		fdupont
	With the addition of a background thread for timeouts, ensure that
	the configuration and process spawning code are thread safe.
	(Trac #4060, git 4c130bd7c8d0eb97966e9821bab491bca5321b6c)

1043.	[func]		fdupont
	Implemented support for hex strings in client classification.
	(Trac #4091, git 406153af95404adb96296df09ec6033b484586e3)

1042.	[doc]		fdupont
	User Guide: parameters having default values may be omitted in the
	option definitions.
	(Trac #3927, git c7460e849258ec77cf1215a2baf840d98f1ab77b)

1041.	[func]		tomek
	A new library, libkea-eval has been added. It is not functional
	yet, but its purpose is to provide a generic expression
	evaluations that will be used in the upcoming client classification.
	(Trac #4081, git 28d818a26a5d128e8a51d62b68c0cc817e6e2415)

1040.	[func]		tmark
	When kea servers lose connectivity with MySQL or PostgreSQL backends
	they will log an error message and exit with an exit value of 255.
	(Trac #3780, git cf94e99698e1d8a1613026bda5e4fc9bb4a68d74)

1039.	[doc]		marcin
	Configuration parameters pertaining to processing expired
	leases by the DHCPv4 and DHCPv6 server have been documented.
	(Trac #3979, git a2ee99ba313e54a9dcf8a09ed118dbfe612e3d55)

1038.	[func]*		marcin
	DHCPv4 and DHCPv6 servers reclaim expired leases before they
	are re-assigned.
	(Trac #3977, git 5880e706cb27c19b1b70296ccd8d96e38e82027b)

1037.	[func]		fdupont
	Added a new 'leases-reclaim' command which reclaims expired leases
	immediately.
	(Trac #3978, git 9d5716e5bd6b151d90591f8497bae689321875c2)

1036.	[func]		tmark
	kea-admin now supports upgrading from Postgres schema version
	1.0 to 2.0.  Schema 2.0 includes support for lease expiration
	and reclamation.
	(Trac #3969, git 8fde70c1b63b5a2646688290b1d0cf53f4c964ad)

1035.	[doc]		fdupont
	Modified documentation of DHCP options to show internal format
	of records.
	(Trac #4071, git c5cffe74ac1bd38e4870ff1c22c36febb46e8c27))

1034.	[func]		fdupont
	Add support for DHCPv4 subnet selection option.
	(Trac #4058, git b7072884e8ce74dc64cd74e101d81e5c0763f492)

1033.	[bug]		stephen
	Updated OutputBuffer class to address warnings from Coverity.
	(Trac #3443, git 4bf0a14aa7a1303ed6959127c5354687e9f222ba)

1032.	[func]		marcin
	PostgreSQL lease database backend has been extended with new
	functions to obtain expired leases and to delete expired
	reclaimed leases.
	(Trac #3968, git 0bc02588d8553ba9a4fc749115a3e370407d7287)

1031.	[build]		fdupont
	Rewrote the system_messages tool from Python to C++.
	(Trac #3516, git a8195310c641027d1822344cafad64e6f695d614)

1030.	[bug]		marcin
	Fixed failing 'reclaimExpiredLeasesTimeout' unit tests on
	some virtual machines.
	(Trac #4075, git c3a2487f53ecf69edc0a38f574fce17c4332162c)

1029.	[func]		tomek
	A new hook point lease6_decline has been added. It is called when
	the DHCPv6 server is about to decline a lease as a result of
	processing incoming DECLINE message.
	(Trac #3986, git b6e3f1bbe3595aeba769d627d571e2eeee38a397)

1028.	[func]		marcin
	Expired leases are processed periodically according to the
	server configuration.
	(Trac #3975, git 3bd8891c0b9cb7dc504fa69251610996775cefbf)

1027.	[func]		tomek
	Expired declined IPv6 leases can now be reclaimed (returned to the
	available pool) after probation	period elapses.
	(Trac #3985, git 9aadfa902d898ce1f52b773152a5b34519a9a9fe)

1026.	[doc]		stephen
	Added documentation for the kea-dhcp4.commands and
	kea-dhcp6.commands loggers.
	(Trac #3952, git 3eb5d3185683e05494c1d84ed7195627fce4b6c1)

1025.	[func]		tomek
	A new hook point lease4_decline has been added. It is called when
	the DHCPv4 server is about to decline a lease as a result of
	processing incoming DHCPDECLINE message.
	(Trac #3986, git 39bde93fe25e4aff52623d4df7fd55c64e0a9c21)

1024.	[func]*		tomek
	Boolean Skip flag in Hooks API has been replaced by enum status.
	This is backward incompatible change if you developed hook
	library that takes advantage of the skip flag. See Hooks
	Developer Guide for easy steps necessary for migration.
	(Trac #3499, git 99ca398d4d042a098b5c491368733220db8cdd08)

1023.	[func]		tmark
	kea-admin now supports upgrading from MySQL schema version 3.0
	to 4.0.  In addition, the lease6 data dump now contains the
	text label for lease_hwaddr_source column rather than its
	numeric value.
	(Trac #3967, git 2e13ac3b0b278faabe338b00ffee8259c13f5342)

1022.	[func]		fdupont
	Added support for the V4 link selection sub-option (RFC 3527).  If
	present in an incoming packet, the server will allocate an address
	in the subnet identified in the option. If this is impossible, no
	address will be allocated and the request refused.
	(Trac #4057, git 8c02cec5ec8e311a9d23fd582d8e9e8647667abb)

1021.	[bug]		stephen
	Added missing address parameter to ALLOC_ENGINE_V4_REQUEST_OUT_OF_POOL
	message.
	(Trac #3996, git 680233550747209a1707e8f920179479b980aa2a)

1020.	[func]		kalmus
	A general purpose base class for MySQL connection has been
	implemented.
	(Trac #3681, git 884d8bb4a55d3d7b1b8f3f01efb312bd8dec399b)

1019.	[func]		marcin
	Added new configuration parameters controlling processing of the
	expired leases in the DHCPv4 and DHCPv6 server.
	(Trac #3974, git c998d36c40cc46ffe9f888e615bbcfa0a311d40d)

1018.   [func]		sar
	Added support for several options for use by PXE.
	From RFC4578 (for DHCPv4) these are: 93 - client-system,
	94 - client-ndi, 97 - uuid-guid.
	From RFC5970 (for DHCPv6) these are: 59 - bootfile-url,
	60 - bootfile-param, 61 - client-arch-type, 62 - nii.
	(Trac #3576, git fdcc73afe7e26bd427817fd771567b1c44713b06)

1017.	[func]		tmark
	Lease dump SQL logic, used by kea-admin, is now supplied via stored
	procedures rather than external text files.  Files of the form
	lease_dump_<version>.sh will no longer be installed under
	<prefix>/share/kea/scripts.
	(Trac #3916, git 09cdd86a5e284250d7657a93a36df2e2705947d2)

1016.	[bug]		fdupont
	Fixed problems when --enable-static-link is specified as a
	"configure" option. With this switch present, all Kea
	executables (servers, tools, unit tests, etc) are linked
	to the static (vs. shared) version of Kea libraries.
	However, note that they can still be linked to dynamic
	system libraries.
	(Trac #4004, git 760a343efbd241f5ed333cfff088124378f69115)

1015.	[func]		tomek
	Expired declined leases can now be reclaimed (returned to the
	available pool) after probation	period elapses.
	(Trac #3984, #3976, git 32a8ec68e0e5ea93991915812158d7628d2b4709)

1014.	[func]		marcin
	Implemented lease4_expire and lease6_expire hooks in libdhcpsrv.
	(Trac #3972, git 8a8547aec1caf2a8d1c7ca206f68534f3c03f1d9)

1013.	[func]		marcin
	New mechanism for scheduling lease file cleanup is used in the
	DHCPv4 and DHCPv6 servers.
	(Trac #3971, git 431d515fc3d64aa82369c8eaf48d03339f12dc69)

1012.	[bug]		stephen
	Replace #include of message_dictionary.h in message_initializer.h
	with a declaration of the MessageDictionary class, avoiding the need
	to include message_dictionary.h in the set of header files installed.
	(Trac #4046, git 9f1801b4326f62632a7c9f0aa939d58f120c10e8)

1011.	[func]		fdupont
	Added definitions and tests for the options from secure DHCPv6.
	This protocol is still experimental. The option and other protocol
	codes are for testing, they will be updated when IANA assigns
	official values.
	(Trac #4015, git 95f8c0d0af45807c1f303b9bbbb08f82b3bfc343)

1010.	[bug]		tmark
	Fixed test failures occurring for some tests after
	IfaceMgr::closeSockets was called.
	(Trac #4067, git 9161867dc6a354659ae8b5115ee437ec76c1771e)

1009.	[bug]		fdupont
	Now libutil blocks all signals when creating a new thread
	(so signals are delivered only to the main thread).
	(Trac #4065, git a4a8e422e613e4378f0a0641e4c480b73d67ebeb)

1008.	[build]		fdupont
	Removed the included header-only ASIO code.  Kea is now built
	against the installed copy of Boost.  The build by default
	attempts to use the header-only error code (ASIO dependency), but
	may also use the version in the boost system library.  The
	location of this library can be specified.
	(Trac #4009, git 8c293bc0d1804a512964621f114e64fcba0abcb9)

1007.	[func]		tomek
	DECLINE message in DHCPv6 is now supported. The server is able
	to receive it, check its correctness and move the lease to
	DECLINED state. Currently there is no way to recover the lease
	before 'decline-probation-period' time.
	(Trac #3982, git 11e2c4366d8624601172c01e95cff6a8b95833b3)

1006.	[bug]		marcin
	Fixed issues with threads concurrency in the TimerMgr.
	(Trac #4047, git 48297af6e0443808a482536b61436a42bc6a5b38)

1005.	[func]		tomek
	DHCPDECLINE message in DHCPv4 is now supported. The server is able
	to receive it, check its correctness and move the lease to
	DECLINED state. Currently there is no way to recover the lease
	before 'decline-probation-period' time.
	(Trac #3981, git c14a63c0d3a56ea3e880e874f854adc0077de75e)

1004.	[bug]		fdupont
	Incoming Confirm, Rebind and Information-Request messages are
	now more thoroughly checked against presence of client-id
	and server-id options.
	(Trac #3773, git fd2889b9de45e2822b6713663bee06b75259c6dc)

1003.	[build]		fdupont
	Updated Makefiles to ensure that all required dynamic libraries
	are included in the link command line as some systems are unable
	handle implied library dependencies.
	(Trac #3911, git 4d13f5234da33df03c0989829a0e1c1056e53a4e)

1002.	[func]		marcin
	MySQL lease database backend has been extended with new
	functions to obtain expired leases and to delete expired
	reclaimed leases.
	(Trac #3966, git 419832a6279c70b5db04b1cab10737e31f2c99f9)

1001.	[build]		fdupont
	Fixed critical C++ issues in the Kea code. This does not cover
	auto_ptr warnings (just ignore them) or the gtest 1.7.0 bug with
	EXPECT_TRUE() and ASSERT_TRUE() macros (we recommend to download
	last subversion sources at http://googletest.googlecode.com/svn/trunk
	and use the --with-gtest-source configuration argument when
	you'd like to build unit tests).
	(Trac #4024, git 55afd98fead0c16bb81107dfc1a5f49a5e295aa6)

1000.	[func]		marcin
	Implemented Timer Manager which holds the pool of interval
	timers used by the DHCP servers.
	(Trac #3970, git bc8503055338da36d07a2b67c64087f645c9a9e3)

999.	[func]*		tmark
	The DHCPv4 server will now honor DHCPRELEASEs for leased addresses
	which cannot be matched to subnet.  This allows leases to be
	released after configuration changes have eliminated their subnet.
	Prior to this the server would reject the release and emit a
	DHCP4_RELEASE_FAIL_NO_SUBNET log message.
	(Trac #2615, git eeebf9f68cf5be6a0f7eefc78832d664361c4990)

998.	[func]		tomek
	'decline-probation-period' parameter has been added to DHCPv4
	and DHCPv6 configuration. It can be configured, but is not yet
	used, as the DECLINE message support is still pending implementation.
	(Trac #3983, git 6b10d119c89685476335f268181c9982f6fa6161)

997.	[build]		jreed
	Removed obsolete Python coverage build options.
	(Trac #3483, git a08cbbecbd3b11d0b73f68a40986a353b22ed3be)

996.	[func]		marcin
	Memfile lease database backend has been extended with new
	functions to obtain expired leases and to delete expired
	reclaimed leases.
	(Trac #3965, git dd5b95453528416f22e961e6ebb3051bc2ae788c)

995.	[build]		fdupont
	Removed additional files left over from BIND 10 (headers,
	src/lib/{asiodns,testutils,asiolink}).
	(Trac #40{28,29,31}, git 78ff0fb0a97731a8b3c055b1cbb4faebcd115f7c)

994.	[func]*		marcin
	DHCPv6 server fully supports RFC 7550.
	(Trac #3947, git c06ab97a4e068c4b4b11f4685c56dd402b2385dc)

993.	[bug]		fdupont
	The logging spec file was searched in the build tree when it
	was in the source tree so distcheck (where they differ) failed.
	(Trac #4026, git 5eb213647d7ac0a707530d57af2c6dbd725ac1b3)

992.	[func]		fdupont
	A 'flush' parameter has been added to logging configuration. It is
	now possible to disable automatic immediate flushing to achieve
	better logging performance.
	(Trac #3752, git 16c4c2b6d95c45864ec3e2b27e0d320e386b2c0b)

991.	[build]		fdupont
	Removed partial function template ordering macros to allow Kea to
	build with Boost 1.59 and later.  Also removed some
	compiler-dependent code.
	(Trac #4006, git e06934f211436eea37439128ff6f388709f01101)

990.	[bug]		tomek
	Improved child process signal handling. Improved number of
	exception handling routines in DHCPv4 and DHCPv6.
	(Trac #4000, git bf5e48f2cf80b5263cc89f445795bc8c5b8f011d)

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-2016 Internet Systems Consortium

Please help us to improve the content of our knowledge base by letting us know below how we can improve this article.

If you have a technical question or problem on which you'd like help, please don't submit it here as article feedback.

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.

Feedback
  • There is no feedback for this article
Info Submit Feedback on this Article
Nickname: Your Email: Subject: Comment:
Enter the code below:
Quick Jump Menu