JavaScript must be enabled in order for you to use Knowledgebase Manager Pro. However, it seems JavaScript is either disabled or not supported by your browser. To use Knowledgebase Manager Pro, enable JavaScript by changing your browser options, then try again.
Learn more.

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