[Kea-users] Kea 1.3.0-beta is ready and available for testing!

James Sumners JamesSumners at clayton.edu
Mon Oct 2 12:36:53 UTC 2017

Looks great. The addition of shared subnets will allow me to re-evaluate migrating. Hopefully I can get to that in the near-ish future.

From: Wlodek Wencel <wlodek at isc.org><mailto:wlodek at isc.org>
Date: September 29, 2017 at 1:20:36 PM
To: kea-announce at lists.isc.org <kea-announce at lists.isc.org><mailto:kea-announce at lists.isc.org>, kea-users at lists.isc.org <kea-users at lists.isc.org><mailto:kea-users at lists.isc.org>, dhcp-announce at lists.isc.org <dhcp-announce at lists.isc.org><mailto:dhcp-announce at lists.isc.org>
Subject:  [Kea-users] Kea 1.3.0-beta is ready and available for testing!

On behalf of ISC and Kea team I'm pleased to announce that
new version 1.3.0 beta is now available for testing!

     We are looking for your feedback!

Welcome to the 1.3.0-beta 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.3.0-beta adds the following features to Kea:

* Shared networks - typically a DHCP server uses one IP subnet for each
physical link it services. However, there are some cases where it is
desired to have more than one IP subnet active in specific physical
location. This capability can be useful in several ways. The most typical
case is when a network grows and the administrator decides to configure
additional subnet in the same location for new devices. Other use case are
networks that want to segregate specific types of devices into different
subnets. The most prominent example are cable networks that want to
separate the cable modems and its management interfaces from the end
user's devices.

* REST interface over HTTPS - We have secured the new REST API for Kea
using HTTPS with all the benefits it brings in: authentication,
confidentiality and integrity. The sample client provided can use HTTPS
now. We also have expanded the size of commands and possible responses via
the REST API, removing the 64K limitation being present since Kea 1.2.
This makes handling of large configurations possible. With these changes
the REST API is now ready for production use! This feature is sponsored by
the Mozilla MOSS award.

* Lease management via REST API - New API commands enable querying,
adding, reporting on current leases, and modifying existing leases while
Kea is running. This allows the administrator (or any system that
interacts with Kea) to check presence and status of leases and make
necessary changes as needed. This feature is sponsored by the Mozilla MOSS

* Subnet management via REST API - Add, remove and modify subnets in Kea
via the API, without resending the entire Kea configuration. This will
make managing subnets via the api more feasible for configurations with a
large number of subnets or deployments that want to avoid small
interruptions when updating the whole configuration. This feature will be
reserved for the premium version of Kea to help get financial support for
the project. This will be in the new Subnet Commands hook.

* New options - This release introduced support for 21 DHCPv4 and 10
DHCPv6 options. Also, support for DHCPv4 vendor specific option (code 43)
has been improved. It is now possible to use vendor-specific syntax for
that option.

* Other bug fixes and small improvements - As usual, we fixed many bugs
and did other small improvements. In total 74 tickets were closed.

== License ==
Kea 1.3.0-beta has been released under the Mozilla Public License, version


== Download ==

The Kea 1.3.0-beta source may be downloaded from:


A PGP signature of the distribution is at


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


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


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


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


== Changes ==

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

1304.    [bug,func]    fdupont
    The DHCPv4 Vendor Specific Information (code 43) option and
    private options (codes 224-254) can be redefined at the global
    scope or inside a client-class. This allows to support different
    definitions following the DHCPv4 Vendor Class Identifier (code 60)
    option or when defined as a binary option to accept with problems
    option 43 carrying a raw value.
    (Trac #5073, git b290b3cbaa926d4e9613f6607c5fcbae2301b266)

1303.    [func]        tmark
    The command handlers in the lease_cmds hook library are now
    implemented has hook callouts and registered with the Hooks
    manager. Prior to this they were registered as command handlers
    with the Command Mgr.
    (Trac #5332, git c902bda9f026720f6efbf2e5ad407302aeb5e466)

1302.    [func]        marcin, tomek
    DHCPv6 server supports shared networks. It allows for grouping
    multiple subnets and use them interchangeably to allocate
    IP addresses and other resources to a client located on the
    particular link. This mechanism is useful to extend an
    address space for the client belonging to a particular
    subnet and/or to segregate clients being on the same link but
    belonging to different classes, e.g. cable modem vs router.
    (Trac #5307, git 110d0c9e403af28e6810141f978d9bf55c381f14)

1301.    [func]        fdupont
    Added some standard option definitions which are supported
    by ISC DHCP but not (yet) by Kea.
    (Trac #5227, git 4bef838245f08fca5f2cf037cd3a75278b77f8f9)

1300.    [doc]        tomek
    Documentation for shared networks added.
    (Trac #5310, git 41fd3bb7ed2f4cd15db6cbd14713f4474f659c92)

1299.    [doc]        fdupont, tmark
    Added an example stunnel configuration file to demonstrate
    using kea-shell through https.
    (Trac #5282, git efe044fa90d53398e215d2bf31e00e83353e8774)

1298.    [func]        marcin, tomek
    DHCPv4 server supports shared networks. It allows for grouping
    multiple subnets and use them interchangeably to allocate
    IP addresses and other resources to a client located on the
    particular link. This mechanism is useful to extend an
    address space for the client belonging to a particular
    subnet and/or to segregate clients being on the same link but
    belonging to different classes, e.g. cable modem vs router.
    (Trac #5306, git 4f2fca69be32997c718ab2c7f37ac80ed4e41d15)

1297.    [func]        tmark
    Added a hook point, "command-processed", to kea-dhcp4
    and kea-dhcp6 servers. This hook point occurs after
    a control channel command has been received and
    (Trac #5111, git 043d17b0688d4ab25b12469d27859983cb297d07)

1296.    [bug]        tmark
    Altered the mysql backend logic to disable auto_reconnect and
    set session value of wait_timeout to a very large values. This
    avoids a segfault in MySQL client library caused by auto-reconnects
    occurring when kea server's MySQL connection is idle for longer
    than the global MySQL wait_timeout.
    (Trac #5354, git 9881ef6d772f27de82c048e198ba0ff9e71b9351)

1295.    [bug]        tomek
    DHCPv4 and DHCPv6 servers are now able to parse shared networks.
    A basic shared networks examples added.
    (Trac #5357, git 74b824cc80f8be66084308c0bf12c1a71f311915)

1294.    [func]        marcin
    Implemented data structures holding configuration of shared
    networks. The new structures are unused until remaining tickets
    for shared networks implementation are completed.
    (Trac #5305, git 76dd46f7070c141cc89d772d69a897b67bd179a1)

1293.    [func]        tomek
        logging messages are no longer emitted.
    (Trac #5345, git 779040fa399fb2da271569dc315294463e28f852)

1292.    [func]        tomek
    User contexts are now supported for subnets. This adds a new
    functionality, but also makes the existing documentation example
    (Trac #5350, git 828ecb6dbdaaedd97d2af79dfa9b7f4845d3a049)

1291.    [func]        fdupont
    The configuration parser now checks for mandatory parameters that
    are missing.
    (Trac #5124, git af0f3d50a835f64a5f8a47c47ef464b119a49643)

1290.    [bug]        marcin
    Corrected a bug causing illegal memory access while
    retrieving server hostname and boot file name fields from
    the host reservation database. Many thanks to Juan Settecase
    for his assistance in identifying this issue.
    (Trac #5340, git 2fdc7efcb862ced3c1054620bf14e75a0db6aed2)

1289.    [bug]        marcin, tmark
    Corrected handling of EAGAIN and EWOULDLBOCK errors in
    UnixDomainSocket. This was causing intermittent command
    channel write errors in kea-ctrl-agent on some Debian systems.
    (Trac #5336, git db251cb66ad77ba28ab44281323ddeb23cf29506)

1288.    [func]        marcin
    Documented subnet_cmds library in the Kea User's Guide.  Also moved
    several classes from dhcp<4/6> into lib/dhcpsrv to facilitate
        subnet command parsing.
    (Trac #5315, git d259f330a1690b20eb368f6252f5da2cdb6187de)

1287.    [bug]        tmark
    Logger configuration now correctly uses maxsize and maxver
    parameters, allowing log rotation to function properly.  Prior to
    this these values were not being propagated downward, causing log
    rotation to always be disabled.  The defaults for maxsize and
    maxver are 10Mb and 1 respectively.
    (Trac #5324, git 75f148458bdeeed27eb877cc2c3ce3069b152f38)

1286.    [func]        marcin
    Configured subnets are now indexed by subnet identifier and
    prefix for faster subnet lookups in the configuration.
    (Trac #5314, git 894aeb048b7281f947f87a5d6dc5112fac4a86fb)

1285.    [func]        tomek
    Several new commands implemented in lease_cmds library:
    lease4-del, lease6-del, lease4-update, lease6-update,
    lease4-wipe and lease6-wipe that allow deleting and updating
    leases and also wipe all leases from a specific subnet.
    (Trac #5280, #5281, 94ff2448c8cf6e3321f4d1b3666a2e2b736f6c50)

1284.    [func]        tomek
    A new library, lease_cmds, has been implemented. Its intended
    purpose is to support commands for lease management. Currently
    supported commands are: lease4-add, lease6-add, lease4-get,
    lease6-get. Additional commands and documentation are planned.
    (Trac #5272, #5279, git 785c2e521b198a03d26bde4a804638bfc19ce91b)

1283.    [func]        fdupont
    An 'always-send' parameter has been added to options
    configuration.  It allows an option to be always sent, even if
    a client didn't request it.
    (Trac #5241, git cef2b630c720a442710efc0d1615b7c7bce01e54)

1282.    [bug]        fdupont
    Now all interface service sockets are closed before interface
    re-detection. Note if the re-configuration fails they remain
    (Trac #5333, git 8bff2ec336456de51d0d9d3ff011d28a6a61ef66)

1281.    [build]        tmark
    Configure script now correctly recognizes static boost_system
    library as well as checks for the presence of static glibc static
    libraries when --enable-satic-link is specified.
    (Trac #5337, git 42548148cbeaaa285519e121f493d52607f1e8a0)

1280.    [build]        waltsteverson
    Missing header for PD-exclude DHCPv6 option is now installed.
    (Github #51, git 36a8e1b8f687a6398af8a10f241e8d19e9de33d8)

1279.    [build]        waltsteverson
    Compilation fixes for Alpine Linux
    (Github #50, git 824afa63354e045a5e4f6437246c329d359e04dd)

1278.    [doc]        jsoref
    Many spelling corrections.
    (Github #52, git 1dcaef6f8e7901d628c8638fc2f8145ac0279586)

1277.    [func]*        marcin
    Added support to Command Manager to process commands using
    callouts implemented within hooks libraries.
    (Trac #5330, git 8041d177ed5587101ecb47a09820a7e67e42a066)

1276.    [build]        tmark
    The configure script now configures the build to require the Boost
    system library (boost_system) by default.  The library must be
    installed and you may need to specify
        "--with-boost-lib-dir=<path>". Prior to this the default was to
        attempt to build Boost with headers
    only.  Building with headers only may still be done, though it is
    strongly discouraged, by specifying "--enable-boost-headers-only".
    (Trac #5215, git b6f1ee0d1210e35631369fc697c76cc3cf2c4130)

1275.    [func]        marcin
    LibraryHandle object can now be used to register handlers
    for the control commands in a hook library.
    (Trac #5329, git 966cc24ae5593ebb08d6f02a11dab23463ebad7e)

1274.    [func]        marcin
    It is now possible to manage Control Agent with keactrl.
    (Trac #5108, git 53ba9f8197a25abd2c52ee3f5e95bc4e4be0241f)

1273.    [doc]        marcin
    Documented in the User's Guide that the server terminates
    when database connection is lost.
    (Trac #5320, git 5c8b277e8041b53b27a87b32d162ab41ef8b43d7)

1272.    [bug]        marcin
    Fixed inefficient leases indexing in the memfile lease
    manager causing increased CPU utilization during lease
    (Trac #5328, git 23b490414f5575b252c8c42fbe93ad2c57d47953)

1271.    [doc]        marcin
    Documented how to setup secure connection to the Kea
    control    channel.
    (Trac #5304, git a920453bbcf9ffa7200eeddca6323faeff498f16)

1270.    [bug]        tmark
    Added a distribution rule to src/bin/d2/Makefile.am so
    d2_parser.yy will now be included in the distribution source
    tree. Also added entries for missing headers to asiolink/
    (Trac #5325, git 199003d7aa9f8d4a7f8daa73f8259e951bc03217)

1269.    [func]        marcin
    Command manager can now handle large responses to control
    commands. Prior to this change the size of the response
    was limited to 64k. The server now also signals timeout
    after 10s if the connection lasts too long.
    (Trac #5318, git 8531a65521ea42f01f3bed444b054e92f7bd1a46)

1268.    [func]        fdupont
    Kea now re-detects network interfaces every time configuration is
    changed. 're-detect' parameter added to restore old behavior, if
    (Trac #3389, git b2ce84790c33d1580dcfa773d7fcfb65c27addc7)

1267.    [bug]        fdupont
    Unit-tests for libdhcp now ignore ENOPROTOPT when setting
    SO_REUSEPORT to improve compatibility with older RedHat versions.
    (Trac #5243, git a7b478e1d1f7f0b38055086fe9ac053e4fab2850)

1266.    [func]        fdupont
    It is now possible to define options in DHCPv4 pools.
    (Trac #5288, git aa2839caab8d885e5bceca6f506162debd239b3f)

1265.    [func]        fdupont
    Extended classification relay6[nest] syntax to allows counting
    relays from the DHCPv6 client side by using negative number,
    e.g. relay6[-1] represents the first relay (closest to the
    (Trac #5287, git 7d0f7a8372dcf256fea8ac13330f0e3e7ed2e8ef)

1264.    [func]        marcin
    Kea's command manager has been re-implemented to use ASIO.
    Simultaneous connections over the control channel are now
    (Trac #5317, git 4139a2f41bb3736615bdfa278746962a16384d0d)

1263.    [doc]        marcin
    Added example configurations of the nginx and Apache2 HTTPS
    servers running as reverse proxy for Kea RESTful API.
    (Trac #5302, git 48113aba218603afac4d457075458d4988e4082b)
    (Trac #5303, git b3113da16eb5c6fa323068f0a57dfa30f42893d2)

1262.    [func]*        marcin
    Renamed "dhcp4-server", "dhcp6-server" and "d2-server" parameters
    of the Control Agent configuration to "dhcp4", "dhcp6" and "d2"
    (Trac #5190, git fc67885022115df76425c6901959cedee63a93b9)

1261.    [bug]        marcin
    Eliminated valgrind errors in libkea-http.
    (Trac #5261, git 34addef4a654665c6022f0269d51970c72431ac2)

1260.    [bug]        fdupont
    Corrected logic in prefix delegation that was causing multiple
    entries to be written to the lease file when renewing or rebinding
    a prefix.
    (Trac #5104, git b9ab6ebe7a491c062bc8b0b42afc53f4d6cee011)

1259.    [func]        marcin
    Implemented timeout for the control commands forwarded between
    the Control Agent and Kea servers. The enhanced forwarding
    mechanism uses asynchronous calls over the unix domain sockets.
    It also detects the JSON structure boundaries when receiving it
    over the stream sockets.
    (Trac #5189, git e48d9399c215406f2dab1601d22d6c932b4af271)

1258.    [bug]        fdupont
    Fixed wrong python package path when kea-shell was configured
    without a prefix.
    (Trac #5214, git 44908c5fa56bfa7e1113078f43c458687a97388a)

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.

Kea-users mailing list
Kea-users at lists.isc.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/kea-users/attachments/20171002/7633a90b/attachment-0001.html>

More information about the Kea-users mailing list