= Kea 1.2.0, April 28 2017, Release Notes = Welcome to the 1.2.0 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 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 is the first Kea release that requires C++11 support in your compiler. * Overall 144 tickets (including 31 since 1.2.0 beta) and 15 pull requests on github have been closed. Two new premium features are now available to customers with Kea support contracts: * Flexible Identifier - Kea software provides a way to handle host reservations that include addresses, prefixes, options, client classes and other features. The reservation can be based on hardware address, DUID, circuit-id or client-id in DHCPv4 and using hardware address or DUID in DHCPv6. However, there are scenarios where the reservation is more complex, e.g. uses other options that mentioned above, uses part of specific options or perhaps even a combination of several options and fields to uniquely identify a client. Those are addressed by the Flexible Identifiers hook library. * Host Commands - The Host Commands Library extends the set of supplied commands with additional ones allowing the management of host reservations. In particular, it add commands that let users inspect and query for current host reservations, add new host reservations in a safe way (the data is sanity checked) and delete existing ones. = License = Kea 1.2.0 has been released under the Mozilla Public License, version 2.0. https://www.mozilla.org/en-US/MPL/2.0 == Download == The Kea 1.2.0 source may be downloaded from: http://ftp.isc.org/isc/kea/1.2.0/kea-1.2.0.tar.gz A PGP signature of the distribution is at http://ftp.isc.org/isc/kea/1.2.0/kea-1.2.0.tar.gz.sha512.asc The signature was generated with the ISC code signing key which is available at https://www.isc.org/about/openpgp 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 https://github.com/isc-projects/kea and wiki pages with roadmap and issue tracking at http://kea.isc.org. Limitations and known issues with this 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 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 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. 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 (1.2.0-beta). (See the git history for more details and additional development.) 1257. [bug] marcin Improved logging in the hosts manager. (Trac #5264, git 2fb9fd78e63f5d09810702847ad3e3b3020ea92b) 1256. [bug] tomek Control Agent now writes proper configuration when using config-write command. (Trac #5253, git a1b5da4db6ebfa9635bbe411ec363cdcc4fd1d28) 1255. [bug] marcin Fixed failing unit tests in libkea-http. (Trac #5260, git 43394f76efb1634155c04b205dec7361fc21f4f9) 1254. [func] tomek Various improvements needed for upcoming host commands library: host data source is now able to delete hosts, hosts can be exported to JSON format, C++11 code for configure script moved to separate file, several compilation warnings removed. (Trac #5208, git 88555d8f23745f3d615448e906796920cc7f44d0) 1253. [func,doc] tomek Default configuration file has been overhauled significantly. It now covers many additional options and features. Command channel is now enabled by default. Thanks to Dan Mahoney for his review. (Trac #5198, git 280de81cfe957ccab8a28074bdb0a4bc0e45104e) 1252. [bug] tmark kea-dhcp6 now correctly resets lease state and increments the assigned statistic when it reissues an expired-reclaimed lease to the lease's original client, in response to a REQUEST from said client. (Trac #5252, git 85bde7adbe6a78238bd5e17fecabfa918755f16c) 1251. [func] tomek New type of host identifier (flex-id) used in reservations has by added to MySQL and PostgreSQL schemas. (Trac #5195, git 37c26cc30b717019fbd6b7349279541edb351382) 1250. [bug] fdupont Do not unregister timers when running the config-test command. (Trac #5186, git e891b06940e41b4cfaa324c2ace8fdd761ee6662) 1249. [bug] tmark The assigned lease statistics were not being probably adjusted by either kea-dhcp4 or kea-dhcp6 when reclaimed expired leases were reissued. (Trac #5247, git 4e5193fb32b14325ccf5824614e58bcceb3e6388) 1248. [bug] marcin Improved socket connection handling code, corrected numerous failing and crashing tests for libkea-asiolink, libkea-http and kea-ctrl-agent on Debian, Fedora and Ubuntu. (Trac #5217, git 4bcb45f0c88aba3d0f70ca48d9fff6f1d4616bc2) 1247. [bug] marcin Resolved issues with DHCPv4 host reservations by 'client-id' when MySQL or PostgreSQL host database backend is in use. Also, the 'client-id' is used together with other host identifier types when 'host-reservation-identifiers' parameter is not specified. (Trac #5102, git 390d687d0f61635f5562d13860ff6362eee67853) 1246. [func,bug] tomek Restrictions in filename argument in config-write command have been removed. It is now possible to use absolute paths. DHCPv4, DHCPv6, D2 and Agent parsers did not handle flush, maxsize or maxver parameters in logger configuration correctly. This is now fixed. (Trac #5187, git a30ffcc67cfb7370c586d3c85147792e27aab4c7) 1245. [func] fdupont DHCPv4 domain-search option can now be defined using comma separated values. (Trac #5087, git eca0b8c6425bc922587675100f100b1aae54aee2) 1244. [doc] tomek User's Guide section about Kea shell added. (Trac #5171, git 3dc4908fe02e86c57ccd5ad2d2f8330655f438be) 1243. [func] tomek config-reload command implemented. It allows Kea DHCPv4 and DHCPv6 servers to reload its original configuration file. Also, set-config command was renamed to config-set. (Trac #5213, git b209c2b577a2f9da71cc918d7a551f8efdc1c4cb) 1242. [func] fdupont Integer fields in options can now be specified in either decimal or hexadecimal format. (Trac #4540, git 4cbf341f4169cf1e1eae0721644797a726d89702) 1241. [func] fdupont Support for tuple-based options added. DHCPv6 option bootfile-param (code 60) can now be set in a more convenient manner. (Trac #4070, git 30102cacee95b91e6c4666f0c11f06232f19eeb9) 1240. [bug] marcin Corrected IOFetch unit test failures on Debian. (Trac #5216, git a7c2946678c43aedfb2e3c37b9730a10067528f3) 1239. [func] marcin Implemented additional sanity checks when adding host reservations into the configuration file. (Trac #5207, git ea42c6f479918235ae4a67a60d08720e2664720c) 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.