[Kea-users] Kea 1.6.0 beta released!

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[Kea-users] Kea 1.6.0 beta released!

Michal Nowikowski
On behalf of ISC and Kea team I'm pleased to announce that
new version 1.6.0 beta is released and available to use!

Welcome to Kea 1.6.0-beta. 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; they can also be
stored in a MySQL, PostgreSQL, or Cassandra database and, to some
degree, retrieved from a RADIUS server. 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.

The text below references issue numbers. For more details, visit the Kea
GitLab page at https://gitlab.isc.org/isc-projects/kea/issues. The major
new features and changes in this version are:

1. **Config Backend**. Kea Configuration Backend (abbreviated as Config
Backend or CB) is a new feature which lets the DHCPv4 and DHCPv6 servers
manage and fetch their configuration from one or more MySQL databases.
The MySQL CB implementation is distributed as a hooks library. You can
now store most of the Kea configuration in the CB: global parameters,
shared networks, subnets, pools, options, and option definitions.
Instead of specifying these parameters in your local configuration, you
can now put this information in the database and simply tell Kea where
to find it. Kea will merge the parameters from the CB with other
parameters configured locally (such as interfaces).  Kea can
periodically poll the CB and retrieve updates. This will greatly
simplify automated configuration change deployments.

The most basic configuration for CB looks more or less like this:

"Dhcp4": {
        "config-control": {
            "config-databases": [
                    "type": "mysql",
                    "name": "kea",
                    "user": "kea",
                    "password": "iusedefaultpasswords",
                    "host": ""
            "config-fetch-wait-time": 20
        "hooks-libraries": [

The CB is supported for DHCPv4 and DHCPv6. The only database supported
for now and the near future is MySQL.
You can connect multiple Kea instances to retrieve configurations from
the same central database; this lets you effectively centralize your Kea
servers' configuration and push configuration changes to all your Kea

This 1.6.0-beta version supports only a single Kea configuration per
configuration backend. During the beta period we will add server tags,
where you will be able to specify that certain configuration elements
(such as a specific subnet) should be applied only on servers with a
matching server tag. This will let you differentiate configurations
between servers while keeping all configuration elements in the same
centralized database. In future releases (1.7.0 and beyond) we will
continue improving and expanding this mechanism. The improvements will
likely include adding more capabilities for configuration in database
storage, such as client classes, hooks, logging, and network interfaces.

The CB is implemented for MySQL only. This is a conscious decision; we
hope to polish the feature's rough edges on one specific backend before
we implement it for other databases. It is somewhat likely that
PostgreSQL will appear sometime in the future, but that will happen only
when the MySQL-based CB is mostly complete. Unfortunately, due to
Cassandra's nature as a non-relational database and the difficulty
working with it, it is unlikely we will ever implement a CB for

The config backend is by far the most complex feature ever developed in
Kea and we ask for your honest feedback on it. Did you manage to get it
working? What was easy and what was difficult or not working? What are
the features you'd like to see next?

2. **Management commands for the Config Backend**. The CB stores data in
a MySQL schema that is public. It's possible to insert a configuration
into the MySQL tables manually, or automatically using SQL scripts, but
this requires a reasonably good knowledge of the schema. As an
alternative, ISC has developed a new hook library that provides
management commands for config backends. It simplifies many typical
operations, such as listing, adding, retrieving, deleting of global
parameters, shared networks, subnets, pools, options, and option
definitions. For a complete list, see commands starting with "remote-"
in [Appendix A of the Kea User's
The cb_cmds hooks library is available to subscribers only. If you are
not a subscriber and would like to participate in beta testing, please
contact [hidden email] and our sales team will assist you.

3. **Native packages**. As we continue its development, Kea is adding
integration with other open source products, including NETCONF (provided
by Sysrepo), RADIUS (based on the FreeRADIUS client), and Cassandra.
That flexibility comes at a price, though. It is getting more difficult
to install Kea with those optional dependencies enabled. We also noticed
that some OS distributions lag behind in packaging the latest Kea
releases. To help alleviate both of those problems, ISC will start
providing our own native (DEB and RPM) packages for several popular
distributions. We are planning to provide packages for CentOS 7, Debian
9, Fedora 28 and 29, and Ubuntu 18.04, 18.10 and 19.04. The binary
packages will cover DHCPv4, DHCPv6, DDNS, Control Agent, and all three
(MySQL, PostgreSQL, Cassandra) backends. ISC subscription customers will
also be given an option to conveniently install hooks as separate
packages. In the future we plan to experiment with packaging NETCONF
with Sysrepo and all its necessary dependencies. The native packages
will be available within four weeks after 1.6.0-beta sources become
available; stay tuned for a separate announcement!

4. **Improved compatibility**. Kea follows RFC standards as defined by
the IETF; however, there are some devices out there that are not as
strict in following the standards. Nevertheless, Kea should be able to
work with such devices. Kea 1.6.0 now sends the DHCPv4 message type as
the first option (#530), the trailing null is now stripped from received
options (#539), empty hostnames are handled better (#40), and it's now
possible to define sub-options with codes 0 and 255 (#564).

5. **Control socket for DDNS**. The DDNS daemon has finally gotten its
control socket and can process commands. It's now possible to update its
configuration and in general interact with it while it's running. The
following nine commands are now supported: build-report, config-get,
config-reload, config-set, config-test, config-write, list-commands,
shutdown, and version-get (#30).

6. **Preliminary performance improvements**. While overall performance
improvements will be the major focus of the next Kea release, we
conducted some preliminary work in 1.6. Perfdhcp, a tool for testing
performance, is now multi-threaded (#283) and has a new 'avalanche' mode
to simulate a large number of devices renewing at once. It lets you
measure how long it takes to provision a specified number of devices,
with a realistic model of devices getting impatient and retransmitting
when not provided with an answer within one second. Also, Kea DHCPv4 can
now be configured to disable client-id lookup in a database to speed up
operations (#509).

7. **Performance reports**. ISC has started publishing performance
reports. The two documents available now are [Performance report
comparing 1.4.0 and
1.5.0](https://kb.isc.org/docs/kea-performance-tests-140-vs-150) and
[Performance optimization

8. **New host cache commands**. Two new commands have been implemented
in the host cache hook: cache-size (which lets you check the current
number of cached entries) and cache-get-by-id (which lets you look up
whether an entry for a specified hardware address, client-id, duid,
circuit-id, or flex-id is in the cache) (#594).

9. **New subnet commands**. Two new commands were added to the
subnet_cmds hook: subnet4-update and subnet6-update. They allow the
existing IPv4 and IPv6 subnets to be tweaked (#465). Previously in order
to update an existing subnet you had to first remove it and then re-add
it with the changes.

10. **New host commands**. Two new commands were added to the host_cmds
hook. They allow retrieval of all reservations from a given subnet,
either in one go (reservation-get-all) or page by page
(reservation-get-page) (#313, 511).

11. **High Availability improvements**. Two improvements have been made
in the High Availability code. First, it better handles abrupt time
changes, e.g. when NTP changes the system clock (#599). Second, the CA
daemon now adds Host http header, which makes it possible to set up a
reverse HA proxy with NGINX (#360).

12. **Logging moved** to daemon scope (#273). Earlier Kea versions had
the Logging scope defined at the global level in their JSON
configurations, due to historical reasons that no longer apply. The idea
was to have one configuration file shared by all daemons, but it didn't
withstand the test of time. Kea 1.6.0 moves the Logging entry to
specific scopes, such as Dhcp4 or Dhcp6. For the time being, Kea 1.6.0
still accepts the old syntax, but prints a warning. Future Kea versions
will eventually drop that backward compatibility and will produce an
error. Make sure you update your configurations.

13. **Automatically calculate renewal and rebind timers** (#365).
Earlier Kea versions had the renewal (t1) and rebind (t2) timers
configured manually with their own defaults. These were simple mechanics
that worked in general, but it was too easy to inadvertently
misconfigure Kea. It is now possible to tell Kea to automatically
calculate t1 and t2 times based on valid (v4) or preferred (v6)
lifetimes. See the 'calculate-tee-times', 't1-percent', and 't2-percent'
parameters for details.

14. **Hook libraries moved to separate directory**. Earlier Kea versions
installed hooks in a /usr/lib/hooks/ directory. This was confusing as
the /usr/lib/ directory is shared by all software installed on the
system and it was unclear what the hooks meant. The directory is now
called /usr/lib/kea/hooks. When upgrading to 1.6.0 make sure you update
your configuration to point to the right hook libraries (#161).

15. **Hammer added**. ISC developed a tool that is used internally to
build VMs and install Kea dependencies on many systems. We thought that,
while the tool is not intended for end-users, there may be power users
that could benefit from having access to such a tool. It is not part of
the tarball release, but it may be retrieved from our GitLab repository

16. Many small **fixes related to recent OS releases**: NetBSD 8.0
(#165), Fedora 29 (#354), FreeBSD 11.2 (#367), CentOS 7 (#380),
macOS/XCode (#561), Ubuntu 19.04 (#589), and installation on Debian 9
with MariaDB 10.1 (#389).

17. **RADIUS improvements**. RADIUS has gotten a round of improvements:
a memory leak has been fixed (#415), accounting is now better documented
(#416), and RADIUS with shared networks works much better (#474).

18. **Cassandra consistency** is now a configurable parameter (#16).

19. **Kea can recalculate statistics** when the server configuration
changes (#394). This addresses a problem when statistics were reflecting
an old configuration and didn't take into account configuration changes
since the last full server reconfiguration.

20. **Better debugging of flex-id** for non-printable characters (#21).

This release includes TODO issues addressed since 1.5.0 (TODO in
1.6.0-beta and TODO in 1.6.0-final).

## License
Kea 1.6.0 is released under the Mozilla Public License, version 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).

## Testing premium and subscriber-only hooks

ISC Kea support customers will receive tickets inviting them to download
the premium hooks, which are included with the support subscription. If
you are interested in testing premium hooks and do not have a Kea
support contract, please contact info at isc dot org to request a trial

## Download

The Kea 1.6.0-beta source and PGP signature of the distribution may be
downloaded from:


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

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
feedback on the Kea User 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

## Changes

The following summarizes changes and important upgrade notes since the
previous release (1.5.0).

1586. [build] razvan, marcin
        Bumped up libraries version numbers for Kea 1.6.0 beta release.
        (Gitlab #617,!340, git c0434bf882b6ec483120e39f6b70b5a40fe7c711)

1585. [bug, func] marcin
        MySQL Configuration Backend supports DHCPv6 interface-id
        (Gitlab #628,!341, git 3a07c636ba4c7fceabe59ec597c44a9c8e3367eb)

1584. [doc] marcin
        Documented Kea Configuration Backend in the Kea Administrator
        Reference Manual.
        (Gitlab #71,!314, git 3a65b7a9104f2a988dacf1acc26312b4259e958d)

1583. [bug] fdupont, marcin
        Corrected a bug which caused failures to merge a subnet from the
        Configuration Backend into the DHCP server's configuration
        when subnet identifier was modified.
        (Gitlab #492,!252, git c9aba2b5e915c27a8539e6b8f0498179ba896da4)

1582. [bug] tmark
        Input values for DHCPv4 and DHCPv6 options of type 'string'
        will now be trimmed of any trailing null bytes (0x0).
        (Gitlab #539, !330, git b126558e9e39e9bff517dceac25a00e96d150085)

1581. [bug] marcin
        Corrected a bug whereby the DHCPv6 server did not take into
        account a relay address specified at the shared network level
        during the subnet selection.
        (Gitlab #620,!332, git c2383e404a5227f6b55655c09ccdc03930815500)

1580. [bug] jonatan.raudsepp
        Compilation fix for Alpine linux in Perfdhcp code. Thanks to
        Jonatan Raudsepp for sending a patch!
        (Gitlab #624,!337, git 19321df9e4490b75ac7b322afec9d231bcb6ffe3)

1579. [bug] razvan
        Fixed a bug which caused setting dhcp4o6-port to not function via
        Kea configuration backend.
        (Gitlab #577,!331, git 98c24fe1873795bbc94d426c54c588b05d79406f)

1578. [func] fdupont
        The configuration syntax has changed. The Logging scope that used
        to be shared between all servers has been deprecated. Each daemon
        is supposed to define its own loggers using 'loggers' array. The
        old configuration syntax is still accepted, but is considered
        deprecated. Kea 1.6 will accept it, but that capability will be
        removed in the future. Please migrate your configuration to new
        (Gitlan #208,!196, git 37b8ec6c2c4b64681059f8fad26d112adbb7ee2b)

1577. [func] razvan
        Implemented host reservations page retrieval for Cassandra.
        (Gitlab #511,!278, git 152e82b49f5e5abd9d3a2a4825ed8620973f5ef1)

1576. [doc] fdupont
        New commands cache-get-by-id and cache-size are now documented.
        (Gitlab #594,!324, git 3753008cc77f71457b5d777560d8e36dc56e7acd)

1575. [bug] razvan
        Fixed issue with keactrl logging error when trying to stop
        (Gitlab #534,!327, git 6ddee0a93ec4ad692cc385150c159d9e8da5232d)

1574. [bug] razvan
        Add logging to the MySQL config backend.
        (Gitlab #398,!315, git bc46fd3420afdf60ae8841866e8458f7f6e072e8)

1573. [bug] razvan
        Fixed build sysrepo from sources using sysrepo_config.
        (Gitlab #523,!262, git b86864a9b058a18eaaded2273dc5f40a9ec97c78)

1572. [bug] tmark
        Corrected an issue where kea-dhcp6 was incorrectly scheduling DNS
        entry removals when renewing leases with generated FQDNs.
        (Gitlab #577,!310, git 362f40bebbdbe083ec6420a43ee1c050edf6bba6)

1571. [bug] marcin
        The mysql_cb hooks library registers the MySQL backend for the
        DHCPv6 server.
        (Gitlab #603,!322, git 1ede298fcdc7a9b7018b6e300e2d759e33f73645)

1570. [bug] marcin
        Corrected the bug in the Kea HTTP library which could cause a
        to assert when system clock was modified during the transaction.
        (Gitlab #599,!320, git 958abe5063b6e602c0070e336524e313c3a87671)

1569. [perf] fdupont
        Improved performance of the DHCPv4 server in cases when
        match-client-id set disabled by removing unnecessary query to the
        lease database."
        (Gitlab 509,!272, git 2ad41651c1118fe6f7dfb918df0694dd254706f1)

1568. [bug] tmark
        kea-dhcp6 now properly skips sanity checking prefix leases.
        Prior to this it was incorrectly subjecting them to sanity
        checks during memfile lease file reloads and then flagging
        the leases as incorrect.
        (Gitlab #591,!#313, git 12262c5df19673652be73cf1dd62d07527bee95d)

1567. [bug] marcin
        Kea HTTP client now always includes Host header in all HTTP
        The Host header is required in all HTTP/1.1 requests. This
        the problem whereby HA peers were unable to communicate via
        HTTP proxy because the proxy was responding with Bad Request
        when no Host header was included.
        (Gitlab #360,!305, git ddb6dbf4cf63e98d3954c5d46e0311abc4fd6cfc)

1566. [func] tmark
        kea-dhcp6 can now be configured to calculate values to
        send to clients for T1 and T2 times. Prior to this
        it was only possibly to specify explicit values.
        (Gitlab #365,!296, git 144b83a84c836d6ff17620b35cb74f830b13c2eb)

1565. [func] marcin
        MySQL Config Backend returns server tags associated with the
        configuration elements.
        (Gitlab #579,!309, git 1e2648df047fe964e8ad3e9deb1c85eea32b1219)

1564. [func] fdupont
        Implemented two new commands to manage subnets: subnet4-update
        subnet6-update. They allow an update of existing subnets
        (Gitlab #465,!265, git 71eb9188033f81dab56fc5a847a39f5497398b62)

1563. [bug] razvan
        Fixed compilation of google benchmarks.
        (Gitlab #520,!260, git 11aa890d30ecce5518b9f0bad389feea6be78167)

1562. [bug] marcin
        Corrected a bug whereby the DHCP server would trigger a segfault
        upon termination when MySQL configuration backend was in use.
        (Gitlab #571,!306, git 705e7bb6dd27ec90dd2807d4aac0905e3cb13de4)

1561. [func] tmark
        kea-dhcp6 now automatically deletes configuration elements
        that have been deleted from configuration backends.
        (Gitlab #566,!304, git 2e85376f1b57187b822c662144380e04372cffff)

1560. [bug] fdupont
        kea-dhcp4 now permits option code values of 0 and 255 for
        options defined in option spaces other than the "dhcp4" space.
        (Gitlab #564,!300, git 7a0a0b84d91893f08c0ee6f236daa05bede65166)

1559. [func] fdupont
        Added DHCPv6 support to the MySQL Config Backend hook.
        (Gitlab #397,!244, git 980091ecd717e41a61f0d7f6808213e450647d8e)

1558. [func] tmark
        In addition to a continuous string of digits, hexadecimal
        literals may now be a series of one or more octets separated
        by either colons or spaces.
        (Gitlab #484, git 251efcd5f518a215173845b22555276df0e0ffc6)

1557. [bug] marcin
        Added support for "reservation-mode" parameter in the shared
        configuration parsers. It corrects a bug in Configuration Backend
        whereby host reservation mode was not stored in the database when
        specified via remote-network4-set command.
        (Gitlab #517,!301, git e6533001e9d850432254d3cfe995a4f7abcee6e2)

1556. [bug] fdupont
        Corrected parser for option definitions to refuse definitions
        duplicate code or name.
        (Gitlab #503,!246, git 0befb653277463cd8f88740119fe90a93dbb1466)

1555. [bug] fdupont
        Corrected parsers for option definitions to prevent setting out
        range option code values.
        (Gitlab #500,!247, git 5c139602d7656df74060fee63461ffba4f290547)

1554. [func] tmark
        kea-dhcp6 now uses globals, option definitions, options,
        share-networks, and subnets from configuration back ends.
        (Gitlab #413,!288, git ff367e273ed8763b354db272c5955a78203d865e)

1553. [func] marcin
        DHCPv4 server automatically fetches incremental configuration
        from the configuration backends.
        (Gitlab #103,!277, git 319f7709edb40d6c01390a34942b9d4a200b333e)
        (Gitlab #103,!289, git 80087e2d0f90f9ba6623860fed4f4d33ee935ad0)

1552. [bug] marcin
        Corrected inheritance of the subnet and shared network specific
        parameters in the MySQL Configuration Backend.
        (Gitlab #552,!295, git 4812e4227a57b29bfa3995e71588233424a3abb1)

1551. [func] razvan
        Added consistency and serial-consistency parameters to CQL
        connection. Fixed all statements.
        (Gitlab #16,!287, git 56a9b6a860899274f9cafe2366a6731a46490e92)

1550. [func] marcin
        Implemented inheritance of the DHCPv4 global and shared network
        specific configuration parameters when using configuration
        (Gitlab #490,!284, git 2508f942e879ef74b20c07ffdba37d187d6ea932)

1549. [func] tmark
        kea-dhcp6 can now be configured to fetch data from configuration
        back ends. It does not yet utilize the data fetched.
        (Gitlab #104,!290, git d8a25c1ecd17ad24bdce6af19e7a42ce66d4c4f2)

1548. [func] razvan
        Added consistency and serial-consistency parameters to CQL
        (Gitlab #16,!266, git 5771173d721464d879869fad6456211031858d6c)

1547. [bug, doc] fdupont
        Option value for sip-ua-cs-domains has been corrected in the
        Kea User's Guide. Thanks to Shawn Routhier from Infoblox for
        reporting this issue.
        (Gitlab #536,!281, git c128fd9a6b7bffc36ba4fe9a0badebe55441d673)

1546. [func] tmark
        kea-dhcp4 now uses options fetched from configured backends.
        (Gitlab #401,!254, git 6a33a6f1810f5899ff9c8bc79d0093eebad5c728)

1545. [func] fdupont
        A new parameter "data-directory" has been added to DHCPv6.
        If specified, it allows DHCPv6 server to store lease and
        server-id files in non-standard locations.
        (Gitlab #430,!263, git 1f094e18a21124abcaf846cab52c8cba65ca36bc)

1544. [build] fdupont
        Message compiler is no longer needed during compilation and
        generated message files are part of the distribution. They can be
        regenerated using --enable-generate-messages switch passed to
        configure script.
        (Gitlab #441,!233, git 499b7c36454bcac2553f7bf304d48d7d80f4d4ca)

1543. [bug] fdupont
        Corrected behavior of the remote-subnet4-set so as it is now
        possible to set the subnet using both an ID or a subnet prefix.
        (Gitlab #481,!251, git 9ef651950fde16e258e4b03dd21bbf6dd07d5231)

1542. [test] tmark
        MySQL, PostgreSQL, and CQL unit tests will now attempt to wipe
        the unit test data, rather than the (re)create the schema between
        each test.  This reduces test execution time appreciably.  The
        behavior may be overridden by defining environment variable:
        KEA_TEST_DB_WIPE_DATA_ONLY="false".  This will cause the schema
        to be recreated before each test but may dramatically increase
        test execution time.
        (Gitlab #526,!269, git 7e81d7bea27e919b652351880872aae68ad1b209)
        (Gitlab #531,!279, git 7f8c4fc535df3019789aea1881b7bb3bd539963a)

1541. [bug] fdupont
        Empty Relay Agent Information option is no longer sent in server
        responses. Thanks to Geoffrey Huang from Qingdao Agricultural
        University, and Jiaqi Liu from Qingdao WuKeSong Company
        Communication Limited, Shandong, PRC for reporting this issue.
        (Gitlab #519,#510,!271, git

1540. [func] fdupont
        Added a new method deleteSharedNetworkSubnets4 in the config
        backend API to delete all subnets belonging to a shared network.
        (Gitlab #512,!256, git 76991c42d115641c7fdcd0f215137be578fb39a0)

1539. [build] fdupont
        Obsolete dns++.pc file for pkg-config was removed.
        (Gitlab #498,!274, git 93cd62c99f69cc379c08cd06791db522c1fb0aca)

1538. [func] marcin
        DHCP configuration parsers correctly handle unspecified
        This change was required for the MySQL Config Backend to record
        unspecified parameters as NULL in the database.
        (Gitlab #488,!259, git d3b33058651036be34200f16d2da230267415056)

1537. [func] godfryd
        Improved handling unix sockets in unit tests. Now by default
        they are created in temporary folder under /tmp folder. This
        fixes the issue with creating sockets with too long path
        in the case when source folder is deeply nested.
        (Gitlab #357,!258, git a45e2f68d7d1848adb0cf755954a3d76c9dff338)

1536. [build] tomek
        Many changes in keactrl, kea-admin, cql_config and sysrepo_config
        scripts. ISC is now using shellcheck to verify portability of
        our scripts.
        (Gitlab #480,!245, git 8818ba0260ba36710b88db6401069f9fe4f3a73a)

1535. [func] godfryd
        Added checking required Vagrant version by Hammer.
        Removed Hammer from EXTRA_DIST.
        (Gitlab #518,!257, git ea0006f6eb948d7d4a034b413c5086cbe483eb75)

1534. [func] marcin
        MySQL config backend correctly handles the optional values for
        subnets and shared networks. Also, updated the MySQL config
        backend to store and fetch T1 and T2 percentage settings.
        (Gitlab #489,!250, git 01fc4d5bb4105b90c7025e8ca8131c3c15203848)

1533. [doc] sgoldlust,stephen
        Kea User's Guide significantly updated.
        (Gitlab #362,!182, git 4b7a8df6054d18f2c90fe61d93533466f89e6324)

1532. [func]* marcin
        Renamed OptionalValue C++ object to Optional and modified its
        API. This object is now used to represent optional values in
        subnets and shared networks. This is an internal Kea logic
        change but it may impact existing user hooks libraries.
        (Gitlab #487,!232, git 1c58e0ce9b9fd6fc8864dbfb2335bc5841c78ff3)

1531. [func] tmark
        When fetching configuration data from configured backends,
        kea-dhcp4 will now merge option definitions.
        (Gitlab #400,!243, git 0c5d1417031e49bd0c247889989e187db2dd8f4b)

1530. [bug] adwol
        Potential syntax error in keactrl fixed. Thanks to Adam
        from Silesian University of Technology for providing a patch.
        (Gitlab #162,!241, git b1a1137f252432aa956ed6fea3da21c740857333)

1529. [func] tmark
        When fetching configuration data from configured backends,
        kea-dhcp4 will now merge global parameters.
        (Gitlab #402,!224, git dadaf76f8dd61b8bb3405aa5dc80029f09b2d4ec)

1528. [func] fdupont
        Aligned DHCPv4 and DHCPv6 specific tables used by the MySQL
        Backend. Extended MySQL schema to implement audit trail for the
        DHCPv6 Config Backend.
        (Gitlab #460,!232,!236, git

1527. [build] adwol,fdupont,tomek
        Default Kea installation directory has been changed to
        (Gitlab #161,!240, git cfaf16cf02191bf5b7172cade3f58a626288b5f0)

1526. [func] tmark
        In addition to subnets, when fetching configuration data from
        configured backends, kea-dhcp4 will now merge shared-networks.
        (Gitlab #399,!215, git 6b57b6b5d678c91b6b380fbe08beafd06b0e7b1d)

1525. [func] fdupont
        Defined API for the DHCPv6 Configuration Backend.
        (Gitlab #458,!231, git f16e03d9bf1c10903c16b2614223b10880f73d50)

1524. [func] tomek
        Support for vendor options improved in DHCPv4 and DHCPv6. Kea is
        able to send back vendor suboptions, even if the client packet
        include DHCPv4 vivso (125) or DHCPv6 vendor (17) option. Usage
of client
        classification in such a case is required, though.
        (Gitlab #464,!238, git 5c79da9358862657a631a9a8fc2ce79ae26b762e)

1523. [bug] fdupont
        IfaceMgr::send method now returns proper status that matches
        its documentation. Thanks to Matthias Stoeckl from Secunet
        for reporting this issue.
        (Gitlab #417,!221, git 4be58523f38097cea81ea06161aead58e00aeb2a)

1522. [bug] marcin
        The "unspecified" DHCP timer values (e.g. renew-timer) are
        represented as NULL values in the database. This corrects
        a bug whereby the unspecified timers defaulted to 0 which
        prevented the DHCP server from calculating the timers to
        be sent to the client. Instead a value of 0 was sent.
        (Gitlab #451,!227, git 5ec9a55528fbcfff4e0c808f9a745b9fd3a5dfae)

1521. [func] marcin
        Removed subsecond precision for the timestamps in MySQL config
        backend. It caused issues on systems with MySQL version prior
        to 5.6.4 which don't support subsecond timestamp values.
        (Gitlab #444,!229, git 71200e98f5a862908240a0d2e269b5da23290af9)

1520. [build] fdupont
        Made perfdhcp build optional and off by default: to build it
        please use the new --enable-perfdhcp configure flag.
        (Gitlab #340,!220, git b2d9a5559c348e82d6730809ccf1429097a9872c)

1519. [bug] Brent Bloxam
        A bug in kea-admin that always assumed the PostgreSQL database is
        always local has been fixed. Thank you to Brent Bloxam from
        Beanfield Metroconnect for submitting a patch!
        (Gitlab #423,!216, git d14e2f34c7d544aeb5e1e219f305fac9ab18c498)

1518. [func] marcin
        Extended MySQL schema to include the types of the global DHCP
        parameters in the database. The Kea servers will use this
        information to cast the values fetched from the database into
        their actual types. The supported types are: string, integer,
        boolean and real.
        (Gitlab #429,!217, git edd745c507ce5a888461df1489311de0c22cd312)

1517. [func] tmark
        kea-dhcp4 will now connect to and fetch configuration data from
        configured backends. At this point, only fetched subnet data is
        merged and used.
        (Gitlab #101,!202, git c572f8aea94349ff5fb4afee13a88ba811cc6459)

1516. [func] marcin
        Implemented audit trail for MySQL Configuration Backend. It
        for tracking incremental changes in the servers' configurations.
        Both mysql_cb hooks library and the MySQL schema have been
        to facilitate this feature.
        (Gitlab #396,!205, git 6d40db07ef641eef29405c42e718979e7a1e8675)

1515. [func] fdupont
        Changes required for new host commands that retrieve all host
        reservations from a given subnet (reservation-get-all,
        reservation-get-page) added. Also added documentation.
        (Gitlab #313,!199, git 991b2fadcb9e8171a78e27f95e4bfba6393d7824)

1514. [func] fdupont
        Control Agent and DHCP-DDNS daemons now support config-reload
        command, that instruct a given server to load again its
        configuration from a file on disk.
        (Gitlab #375,!192, git 93648a3a4918225e2c4413ae220fccc59eaea99a)

1513. [func] godfryd
        Fixed perfdhcp that now it keeps requested rate during
        testing. Previously it was always about 20% lower than expected.
        (Gitlab #283,!135, git 329f54bb151ec35888e9a8070cc5fa368d6f1f5e)

1512.   [func]      tmark
        kea-dhcp4 will now ignore empty Host Name (option code 12) values
        received from clients. While an empty value for this option is
        not RFC-compliant, some clients do send them. Prior to the this
        server would drop the entire packet. In the spirit of being
        in what we accept, the server will now simply omit the option.
        (Gitlab #40,!203, git f41bd35c3e7a3bdc1f31c5602fd91d5c84c60163)

1511. [func] fdupont
        Obsolete experimental secure DHCPv6 options (701-704) removed.
        (Gitlab #386,!196, git 1114527652615fb730e323946cafaf1c7ca72b42)

1510. [bug] fdupont
        DHCPv4 and DHCPv6 no longer crash if badly broken configuration
        is received.
        (Gitlab #381,!193, git f45fe7b7e3916d36d017b4ec5b50588fbf517d86)

1509. [func] tmark
        kea-dhcp4 can now be configured to calculate values to
        send to clients for for T1 and T2 (options 58 and 59
        repsectively). Prior to this it was only possible to
        specify explicit values.
        (Gitlab #365,!194, git 67944844a40436cd69e0e5b4962f5c9cba89ef6f)

1508. [func] fdupont
        Implemented the management API using a control socket for the
        DHCP DDNS (D2) server. D2 now supports the following commands:
        build-report, config-get, config-set, config-test, config-write,
        list-commands, shutdown and version-get. Also, extended Control
        Agent (CA) to support one additional command: config-set.
        (Gitlab #30,!183, git ab27550cec365f42289eb5fa1bc39f33f01b19c2)

1507. [func] tmark
        kea-dhcp4 now ensures that the message type option (53) is
        the first option in outbound DHCPv4 packets. This was done
        to accommodate non-compliant clients that require the option
        to be first.
        (Gitlab #363,!177, git 34f40035bf7a7849083138cacee440a9f0991d67)

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 https://www.isc.org/donate.

We look forward to receiving your feedback.

ISC Kea Team
Kea-users mailing list
[hidden email]