[Kea-announce] Kea 1.7.0, a new development release of Kea, is now available
Michael McNally
mcnally at isc.org
Thu Sep 26 01:47:29 UTC 2019
Internet Systems Consortium is pleased to announce the release of Kea 1.7.0.
- - -
1.7.0 is the first version of Kea issued under a new release policy for
the project, under which, in addition to the designated "Current-Stable"
branch of Kea (currently 1.6.0), ISC will also be publishing monthly
releases in a Development/Experimental branch (the 1.7.x sequence.)
The purpose of this change is to provide frequent snapshot releases for
those who wish to track the development of new features in the
experimental branch (1.7) while keeping new feature development work
separate from the stable branch (1.6) that is recommended for production use.
1.7.0 marks the debut of some exciting development efforts for Kea
including the beginning of significant work towards multi-threading.
You can read more about this and other changes in the release notes
below.
Michael McNally
ISC Support
-----------------------------------------------------------------------
# Kea 1.7.0, September 25th 2019, Release Notes
Welcome to Kea 1.7.0, the first of a monthly development releases of
Kea. This release is the first step towards having fully multi-threaded
DHCP servers, which will eventually become available as 1.8.0. It
contains first preliminary steps moving us closer to that goal.
Changes introduced in this version:
1. **Preliminary multi-threading work**. The team spent much time doing
experiments with multi-threaded POC (proof of concept), discussing the
threading design (#874) and making first preliminary code changes. In
particular, we now migrated to standard c++11 threads, rather than using
our custom wrappers (#914).
2. **Statistics update**. There's a change in how Kea handles
statistics. The previous approach was using lazy initialization pattern.
Previously Kea started empty, without any statistics. The statistics
became available when the first observation was recorded. This had a
drawback of usually not reporting statistics that are unlikely to
happen, such as receiving DECLINE message. Right now Kea reports
statistics up front, without needing to wait for an actual event that
triggers it to happen. (#755)
3. **No longer allocate memory in signal handler**. Kea no longer
allocates memory while in signal handler. We received a report of
possible problems when handling signals during command processing.
Despite our best efforts, we were not able to reproduce the problem.
However, based on the detailed bug report we were able to come up with a
fix that hopefully addresses the problem. (#796)
4. **DHCPv4 sanity checks improved**. The DHCPv4 server now properly
drops packets that don't have any client identification (no MAC address
and no client-id). (#821)
5. **Fixed FreeRADIUS packages**. We discovered that our FreeRADIUS
packages were built incorrectly. This is now fixed. (#909)
6. **Cassandra build improvements**. We improved the build routines for
Cassandra. The previously broken capability to build Cassandra backend
from cpp-sources that are not installed is now fixed (#522).
## Changes to Release Model
Kea project has been in development for several years now. It now has a
significant production deployment base with users who are looking for
stability, rather than constant stream of new bleeding edge features. At
the same time, we want to continue developing the software, including
some new powerful, but difficult to implement features. As a result, we
decided to change the release cycle. Starting from 1.6.0, there will be
two series of releases: stable and development.
Stable releases are what you would expect: stable, released
infrequently, without new features or significant changes, very well
tested. Those can be identified by the middle version number being even.
The current stable is 1.6.0. If we discover important bugs that require
fixing, we may release 1.6.1, but that will be determined on a case by
case basis. The next major stable version will be 1.8.0 and some time
later 2.0.0.
Our team continues development of new features. In particular, we're
tackling a difficult problem of being able to use all available CPU
cores simultaneously. The multi-threading implementation is a complex
task and it is uncertain how long it will take before the solution is
stable and ready for production environment. At the same time, we
continue to receive a stream of requests for small features and bug
fixes. We don't want to force the users to wait half a year or more for
the fixes and features that are already done. Therefore we decided to
start releasing development releases on a monthly basis. Those are
slightly less tested and may have features that are not complete. A good
example may be multi-threading. It is possible that one of the next
releases will provide a configuration knob to specify the number of
threads, but the actual code won't be extended yet to spawn those
threads.
THe development releases can be easily identified by the middle version
number being odd. For example, 1.7.0 is a development release. In
October we will release 1.7.1, the next development version. Once 1.8.0
is out, we will continue our development work on 1.9.0, then 1.9.1 and
so on.
We're aiming at making the development release available on the last
Wednesday of each month. There may be exceptions (such as Christmas
2019), but that's the general goal.
We encourage users to test the development releases and report back
their findings.
For more details on the plan, see ISC's Software Support Policy at
https://kb.isc.org/v1/docs/aa-00896.
## Kea overview
Kea is a DHCP implementation 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 a REST API to
control the DHCP and DNS update servers, an example shell client to
connect to the CA, a daemon that is able to retrieve YANG configuration
and updates from Sysrepo, 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 is stored in a CSV file by
default; it can optionally be stored in a MySQL, PostgreSQL, or
Cassandra database instead. Host reservations can be stored in a
configuration file, or in a MySQL, PostgreSQL, or Cassandra database.
They can also be retrieved from a RADIUS server, although this
functionality is somewhat limited. Kea DHCPv4 and DHCPv6 daemons provide
support for YANG models, which are stored in a Sysrepo datastore and can
be configured via the NETCONF protocol.
This text references issue numbers. For more details, visit the Kea
GitLab page at https://gitlab.isc.org/isc-projects/kea/issues.
## License
This version of Kea is released under the Mozilla Public License,
version 2.0.
https://www.mozilla.org/en-US/MPL/2.0
The premium and subscriber-only hook libraries are provided in source
code form, under the terms of an End User License Agreement (you will
get the source code that you can modify freely, but you are not
permitted to redistribute it).
## Download
Pre-built ISC packages for current versions of the most popular Linux
operating systems are available at:
https://cloudsmith.io/~isc/repos/
The Kea source and PGP signature for this release may be downloaded from:
https://www.isc.org/downloads
The signature was generated with the ISC code signing key which is
available at:
https://www.isc.org/pgpkeys
ISC provides detailed documentation, including installation instructions
and usage tutorials, in the Kea Administrator Reference Manual.
Documentation is included with the installation or via
https://kb.isc.org/docs/kea-administrator-reference-manual in HTML,
plain text, or PDF formats. ISC maintains a public open source code
tree, wiki, issue tracking system, milestone planning, and a roadmap at
https://gitlab.isc.org//isc-projects/kea.
Limitations and known issues with this release can be found at
https://gitlab.isc.org/isc-projects/kea/wikis/known-issues-list.
We ask 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
feedback on the Kea Users mailing list
(https://lists.isc.org/mailman/listinfo/kea-users). Also we would like
to hear whether the documentation is adequate and accurate. Please open
tickets in the Kea GitLab project for bugs, documentation omissions and
errors, and enhancement requests. We want to hear from you even if
everything worked.
## Support
Professional support for Kea is available from ISC. We encourage all
professional users to consider this option; Kea maintenance is funded
with support subscriptions. For more information on ISC's Kea and DHCP
software support see https://www.isc.org/support/.
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 GitLab at
https://gitlab.isc.org/isc-projects/kea/issues.
## Changes
The following summarizes changes and important upgrade notes since the
previous release (1.6.0 final).
```
1664. [build] razvan
Make sysrepo_config detect installed sysrepo version.
(Gitlab #766,!449, git e1a236fa4f4680d3eadade6b5f5a6a6065620a5b)
1663. [build] fdupont
Dropped support for Botan 1.x crypto library in Kea as these
versions are now end of life.
(Gitlab #345,!498, git ba028eee986c0da963754c6fcb74790081557bec)
1662. [bug] marcin
Prevent deadlock in the Kea DHCP servers caused by allocating
memory in the system signal handler. The issue was found on
CentOS 7.6, but could possibly affect Kea running on any other
OS.
(Gitlab #796,!504, git f858d9d0b63a18370ebb8bd7d1b8250d0c5a1cb5)
1661. [bug] tmark
kea-dhcp4 now rejects inbound client messages that have
neither a hardware address nor a client identifier.
(Gitlab #821,!501, git 60baf65d0c9de384b0da147b50b7fc3180fc54dd)
1660. [func] franek
Statistics of the DHCP packets are now initialized upon the
server startup. This makes the statistics available for fetching
via control channel immediately after the server is started.
(Gitlab #755,!503, git f0238d1b6e88dfedaa91029ec3b65e06c14cab34)
1659. [bug] razvan
Corrected an issue in the DHCPv4 server logic whereby the
user-defined
option definitions were not committed which could result in
configuration failures when values for such options were
specified.
(Gitlab #729, !434, git e5b68fb226161dcdef0e4d2d9d03d9bdb95af5e2)
```
Thank you again to everyone who assisted us in making this release
possible. If you would like to contribute to ISC to help us continue to
make quality open source software, please visit our donations page at
https://www.isc.org/donate.
We look forward to receiving your feedback.
More information about the Kea-announce
mailing list