= Kea 0.9.2-beta, 30 June 2015, Release Notes = Welcome to the 0.9.2-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 servers. Both DHCP servers fully support server discovery, address assignment, renewal, rebinding, release, DNS updates and host reservation. The DHCPv6 server supports prefix delegation. Version 0.9.2-beta adds the following features to Kea: * statistics - Kea now records a number of measurements, e.g. number of packets received, type of packets, or leases assigned; * control channel - If configured, it allows sysadmin to send commands to the server. For 0.9.2-beta the commands supported are for retrieving, resetting and removing statistics, but the number of commands is expected to grow with each release; * logging: new loggers. Our logging system received a significant upgrade. There are several new loggers specified, so it's now possible to better fine tune logging; * logging: new messages - many new log messages have been added to improve the traceability of the servers' behavior, especially in error conditions * logging: updated existing messages - many existing messages were updated to include more tracing information Note: when migrating from Kea 0.9.1 to 0.9.2-beta: * There is a new MySQL schema, reported as version 3.0. Kea 0.9.1 used 2.0. This new schema introduces tables that will eventually store host reservations. In 0.9.2-beta only database schema was updated, the new tables are not used by the code yet. kea-admin can be used to migrate to new schema. == Download == The kea-0.9.2-beta source may be downloaded from: http://ftp.isc.org/isc/kea/0.9.2-beta/kea-0.9.2-beta.tar.gz A PGP signature of the distribution is at http://ftp.isc.org/isc/kea/0.9.2-beta/kea-0.9.2-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.1). (See the git history for more details and additional development.) 969. [func] tomek KEA_SOCKET_TEST_DIR environment variable can be used to specify the directory for opening Unix sockets during tests. That may be used to avoid path length limitations when running unit-tests in deeply nested directories. (Trac #3918, git 9cfd502e8d4605eaf34f8744f90272dc3e8a3e34) 968. [bug] marcin DHCPv6 server extends the lifetime of the client's lease in the database when the client sends the Request message. This prevents premature lease expiration before the client renews the lease, according to the timers and lifetimes returned by the server. (Tracc #3913, git 1d64829a3f1a8288dc833ed388d9ffc9fe4cf491) 967. [doc] tomek Management API section added in the DHCPv6 chapter of the Kea User's Guide (Trac #3917, git 21305d2da26090e3fad1ff9fb242a2bbb6b7e56b) 966. [func] fdupont Include database software details in extended version information. (Trac #3882, git b0e166c4d8b0383ebd6e2f51d55eed68a2bcafa8) 965. [func] sar Per IPv6 subnet statistics (subnet[id].assigned-nas, subnet[id].total-nas, subnet[id].assigned-pds, and subnet[id].total-pds) has been implemented. (Trac #3799, git 4aa4808268bbc54290578f60ba60ed33cf344712) 964. [doc] tomek User's Guide and Developer's Guide updated with statistics and control channel description. (Trac #3800, git 7ce8ca560370ec5f9bd4d5199a177b441f08a47e) 963. [func] tmark DHCPv6 server now supports a control channel, implemented over a UNIX socket. Currently supported commands are: statistic-get, statistic-reset, statistic-remove, statistic-get-all, statistic-reset-all, statistic-remove-all, and shutdown. (Trac #3797, git f49828612d9030c9f3441acaf4b3a9f60b492a3e) 962. [func] fdupont Make the parsing of options and vendor options more consistent between v4 and v6. In addition make the parsing more robust against malformed packets. (Trac #3618, git f4066793c5e034386c689fd72d2a91a70ffb6d5f) 961. [func] fdupont Improved error messages when handling invalid or malformed configuration file. File and line number are printed, when available. (Trac #3697, git 70fc36e164e988c251bdaaee7e27c5f6407e0f4c) 960. [build] fdupont Get rid of the last bundy pieces of code. (Trac #3732, git 6b7da42f902fabb6855e54a19ea472c18ba82a93) 959. [build] fdupont Removed no longer used logging in cc and config libraries. (Trac #3732, git 8d0324f4786900db953489ebaa9e018b1238543f) 958. [func] tomek DHCPv4 server now supports control channel, implemented over UNIX socket. Currently supported commands are: statistic-get, statistic-reset, statistic-remove, statistic-get-all, statistic-reset-all, statistic-remove-all, shutdown. (Trac #3880, git 688658395518f0b97d5384af81ceab5206691ad5) 957. [func] tomek Per IPv4 subnet statistics (subnet[id].assigned-addresses and subnet[id].total-addresses) has been implemented. (Trac #3798, git bab2030f56bbf390959f9f9238a8acc62d583c70) 956. [func] marcin Improved log messages emitted by the allocation engine, which now uses a dedicated logger. (Trac #3852, git 923928774f4f59c887d768cf155b5978e838a6f2) 955. [func] tmark Added unit tests to kea-admin for testing the lease-dump command with a PostgreSQL backend. Updated PostgreSQL database installation instructions in Kea Administrator's guide to include use of kea-admin tool. (Trac #3884, git 0772b7df2a89e1019141be1d0ddec30d53c4b919) 954. [func] fdupont Enhance the versioning information printed by the executables and make it more consistent across all of the executables. "-v" is for basic Kea version information, "-V" provides more detailed versioning and versions for external dynamic libraries, finally "-W" provides the configure report from the configuration step during the build of Kea. (Trac #3513, git 584cf666e101c6cb5c9af76175ddd867ece85764) (Trac #3859, git 384e6c6225de18fc97d606e4a1972baeef598ba4) 953. [bug] fdupont Corrected the setting of string characters to values above 127 in HMAC tests. (Trac #3829, git 54f4ec64e513fea1547631122dc1af8579fae3db) 952. [bug] fdupont Made some loop indexes an unsigned type to avoid compiler warnings where the termination condition is comparison with an unsigned value. (Trac #3833, git 3db9f1d78f59856b982a1ff84c3b5a1ba7ea39df) 951. [build] fdupont Removed BUNDY configuration backend. (Trac #3732, git 96364cbbb15318c8f55d5b287cda0990d3eaae32) 950. [doc] marcin Updated section about logging in the User Guide. Also, updated Hooks Developer's Guide with the recommendations for the developers about use of logging in hooks libraries. (Trac #3805, git b403de1f335a2fb5098c9abc0858b8137892f868) 949. [func] tmark kea-admin now supports dumping MySQL and PostgreSQL lease tables to CSV file, via a new command "lease-dump". This is primarily intended for use as a diagnostic tool. (Trac #3802, git 6ec774e8523e7f8415d6cd18c34062489e127847) 948. [bug] fdupont libdhcpsrv: check if new host reservation tries to use an already reserved address. (Trac #3652, git 4f10b78341b197bd321fbf2ec71db7420e40718d) 947. [func] marcin DHCPv6 server now supports Rapid Commit option. (Trac #3070, git a6b6156aaa95ab74c69a537e90483f82e9fbe4a2) 946. [doc] tmark Added documentation for kea-admin "lease-dump" command to the Kea Administrator’s Guide and kea-admin man page. (Trac #3803, git 54b59b7ef02f6428405794066ea779e9bd4c0b6e) 945. [func] marcin Improved log messages emitted by the DHCPv6 server. Also, the server is now using multiple distinct loggers for logging messages pertaining to different functional parts of the code, e.g. packet transmission, lease allocation, DDNS etc. (Trac #3807, git c95ebdaf39c3d8d78d83d53db15824c60078f566) 944. [func] tmark kea-admin commands lease-init, lease-version, and lease-upgrade now support PostgreSQL. Note that at this time the PostgreSQL backend only supports Kea schema version 1.0, so there are no upgrades available. (Trac #3883, git 990a0d72fa247e4a12e2608994204c48274e4cd6) 943. [func] sar Split the DHCP-DDNS logging messages among several loggers to allow the administrator finer control over debugging messages. Messages pertaining to the name change requests processing include an ID, currently the DHCID, to identify the transactions. (Trac #3808, git 4fbe08234049de6ef67bb5cdb244d180a7a4c3a9) 942. [func] tomek 18 new statistics added in DHCPv4 server: generic packet counters, per packet type counters, parsing failure and packet drops. (Trac #3794, git a61f40c44910a09699a9a566a5ec35ab758564ba) 941. [bug] marcin Configuration parser for host reservations returns an error when an unsupported parameter is specified. (Trac 3810, git 54ee0f6328a303c366dd8239e768dfc4a23a5d9b) 940. [bug] fdupont DHCPv4 server drops DHCPRELEASE messages sent from a bad location (i.e., no subnet can be selected) (Trac 3504, git f0f13ac74779f76ed7af91bd5dab3d11ba00be79) 939. [bug] fdupont Small fix in HooksDhcpv4SrvTest.subnet4SelectSimple unit-test. (Trac 3881, git a21afdffec41fceb61e6760d4108d670b2eabe75) 938. [build] fdupont Removed Python from the log library (code, message compiler and documentation) (Trac #3734, git d24b7c9716c6eb7a3e9dd2cb3fd2d1bfe4e1201f) 937. [bug] fdupont The log ID LOG_UNRECOGNISED_DIRECTIVE was changed to LOG_UNRECOGNIZED_DIRECTIVE to follow US English spelling. (Trac #3762, git 235e3304746352e9341008225f9f2392586a9f66) 936. [bug] fdupont Added an ASSERT to avoid a crash in HooksDhcpv4SrvTest subnet4SelectSimple unit test. Fixed out of bounds vector accesses in perfdhcp (which should not be able to handle links with long (i.e., more than 6 bytes) link-layer addresses). (Trac #3868, git c20f47e19d6060605c0611754db7b66b08553caa) 935. [bug] fdupont Fixed 3 out of bounds accesses on vectors in DHCP++ code. (Trac #3854, git de263ad0008f3494a85592f78db1ec662b68e689) 934. [bug] fdupont Renamed the DHCP-DDNS constant INVALID_SOCKET to SOCKET_NOT_VALID to avoid conflicting with a constant of that name defined on some operating systems. (Trac #3861, git 28205225ceed03ff3126e43cd06cedbaa7d8d657) 933. [func]* marcin DHCPv4 server by default identifies a client using the client-identifier, if present. The new configuration parameter 'match-client-id' allows for disabling this behavior, i.e. 'chaddr' field is used to identify the client instead. (Trac #3747, git b9dc6ffd0f3396e9da8e0c83fd82164b8b8af011) 932. [func] kalmus MySQL schema has been extended with tables that can store host reservation. This ticket updates database schema only, the tables are not in use yet. (Trac #3567, git d2cd5d53b3f31422a342c9bb8946dad9ed1ea032) 931. [func] marcin Improved log messages emitted by the DHCPv4 server. Also, the server is now using multiple distinct loggers for logging messages pertaining to different functional parts of the code, e.g. packet transmission, lease allocation, DDNS etc. For complete list of logger names see User Guide. (Trac #3806, git 7b148c2dd5e2696a541883223ce1efd2de81f143) 930. [func] tomek Statistics Manager is now implemented. There is a new library libkea-stats that governs statistics collection. Its usage will be added in the upcoming tickets. (Trac #3793, git 68e9554ecabfc2a79731eeec1c706522e4d39332) 929. [build] fdupont Corrected problem in build system whereby specifying an installation directory on the "configure" command line that included a "+" in the name caused the build to fail. (Trac #3713, git 741ff09b743307bad28ae13db440e5e0f402d319) 928. [build] fdupont A CONFIG_H_WAS_INCLUDED define has been added to provide a way in source files to check whether config.h has been included. (Trac #3812, git cbb135d5f217b0692dcdbc9cfcc04f6a0dbc3922) 927. [bug] tmark DHCPv4 no longer attempts to update the lease database with the generated FQDN when processing DHCPDISCOVERs. (Trac #3779, git 0b413ee8aba1afa1643b216a1e8c35103c6c975b) 926. [bug] marcin Fixed the crash during the logging deinitialization. (Trac #3823, git 435b958860ec7b921645bd5923fff96ea4341f19) 925. [func] marcin libkea-hooks logs when the callouts execution begins or ends for the particular hook. It also logs the execution time of individual callouts and the total time for all callouts. (Trac #3804 git dd1432d7807e7d3b54c87dd4b3155d3110619fbd) 924. [bug] marcin Removed shell warning about the "missing format character" in the keactrl usage. (Trac #3784, git aa683395a4cd75af5340eb8603fe46b7b0dd8f4e) 923. [func] tmark The DHCPv4 server now logs packets it has either dropped as invalid or to which it has replied with a NAK to a separate logger, "kea_dhcp4.bad_packet". (Trac #3743, git cb91ca851099423e1b6c39cca3f3e2ba29795a51) 922. [build] fdupont The config.h file should never be included by another include file. Copy missing header files to the install directory. (Trac #3782, git ea6e9d166faa54b1f9781bc56d7d8fee6c87b1f9) 921. [func] marcin libdhcpsrv: Added log traces to the host manager. (Trac #3699, git 75b75c89db88eb1a81e76f5550f2a5b3155ce42d) 920. [bug] marcin Corrected issues with logging initialization in hooks libraries. The dynamically loaded hooks libraries may now define their own loggers which are configurable using Kea configuration file. (Trac #3198, git 8216a6b1a2ed6e2b38919280809ee21fc4107fd6) 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.