[Kea-users] Kea 1.2.0-beta released!

Włodzimierz Wencel wlodek at isc.org
Fri Apr 7 17:07:49 UTC 2017


On behalf of ISC and Kea team I'm pleased to announce that new version
of Kea is now available for testing! Kea 1.2.0-beta is can be downloaded
from:

https://www.isc.org/download

final version will be released at the end of this month - April 28, 2017.

Kea 1.2.0-beta Release Notes: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-beta 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-beta is the first Kea release that requires C++11 support in 
  your compiler.

* Overall 113 tickets and 15 pull requests on github have been closed.

== License ==
Kea 1.1.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-beta source and PGP signature may be downloaded from:

   https://www.isc.org/download

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.1.0). (See the git history for more details and additional 
development.)

1238.	[build]		tmark,tomek
	Library version numbers bumped for release.
	(Trac #5201	git 58c9c5b705d72031c1589c30c542384a9d43e0f3)

1237.	[bug]		marcin
	Fixed hanging Control Agent unit tests.
	(Trac #5200, git 65daafd135965f9eb0bd4c3a22085d4bd3c6ffbe)

1236.	[build]		zeitounator
	Improvements in tools/tests_in_valgrind.sh script.
	(Github #49, git 272e7babf9ebeab5f78850394d72c9431041e2e9)

1235.	[func]		MrMarvin
	kea-admin now supports -h (and --host) parameter that can specify
	MySQL or PostgreSQL database locations other than the default
	localhost.
	(Github #14, git 4038157a3499ad90956c98a2172c57b173f2b985)

1234.	[build]		fdupont
	Improved installation procedure for kea-shell.
	(Trac #5170, git 68a902fb723965ee6f5b7a8272224395917525cc)

1233.	[doc]		marcin
	Documented new component Kea Control Agent in the Administrator's
	Manual and the Developer's Guide.
	(Trac #5175, git abf7887ad65eb4b221a1fe61ea0c9773b4feaddb)

1232.	[func]		tomek
	host4_identifier and host6_identifier hook points have been added.
	Premium: Flexible Identifier (flex-id) hook point has been developed.
	It allows users to specify a custom expression that takes any
	option, field, characteristic or property of the packet to be
	used as identifier and then do reservations based on the evaluated
	expression for each incoming packet.
	(Trac #5132, git cd497526d5bff7ae55bb41c9264fb33943a0cf62)

1231.	[func]		marcin
	Control agent forwards commands to be handled by other Kea
	servers.
	(Trac #5078, git 19a50ed1ccafae19ef10d84cba73992cadf49753)

1230.	[bug]		fdupont
	kea-dhcp-ddns now correctly populates the original ID in the TSIG rdata
	when doing signed updates.  Prior to this the value was set to zero
	causing PowerDNS to reject then requests with a bad key error.
	(Trac #5071, git cafa3d5c24f0112b0b9384a9c1083fe8a3eeb2bf)

1229.	[func]		fdupont
	A new command: config-test has been implemented in DHCPv4, DHCPv6
	and control agent servers. It allows checking whether new
	configuration looks correct.
	(Trac #5150, git 5f6cf226e848baef8d9af64e16c1dbf617a0a798)

1228.	[bug]		fdupont
	Logging on syslog now uses correctly the given facility. If none
	is given the default facility is local0, and with an unrecognized
	value user (log4cplus default). The syslog openlog() ident
	parameter is the program name.
	(Trac #5053, git 532d9f0e459ab1450a83a5015a2dd54745794383)

1227.	[func]		fdupont, tomek
	Additional commands: version-get, build-report have been
	implemented for DHCPv4, DHCPv6 and Control Agent
	components. Control Agent also now supports shutdown command.
	(Trac #102, git 9d2b8326fc032876d74c1768c61c630987c25cc5)

1226.	[func]		fdupont
	Command line option -t support added to libprocess and implemented
	for kea-dhcp-ddns and kea-ctrl-agent. It allows configuration sanity
	checking. Note that some parameters, such as ip-address, port, and
	DNS server addresses for instance for kea-dhcp-ddns are not fully
	checked as sockets are not opened or connections are not attempted.
	(Trac #5152, git 2231d79ebebd3cdf432cd4a8ac32018d180e27b6)

1225.	[func]		tomek
	Two new commands: config-get (retrieves current configuration)
	and config-write (writes current configuration to disk) have been
	implemented.
	(Trac #5151, git ffb26811736a2ae6f9b5556b9823aa284b7e0aec)

1224.	[func]		fdupont
	toElement(), a crucial functionality for upcoming get-config
	and write-config command, has been implemented.
	(Trac #5114, git df38c26f957c9ac329718ac9d70ffbcf7b95c4e9)

1223.	[func]		tomek
	Kea-shell, a management client able to connect to REST interface
	provided by Control Agent, has been added. Control Agent now
	uses bison parser, which provides better sanity checks, improved
	comments and file inclusions.
	(Trac #5137, git 816dc5ccfa374bd9942a49c7bac475f6d0523caa)

1222.	[func]		fdupont
	Obsolete parameter 'allow-client-update' has been removed
	from DHCPv4 and DHCPv6 components.
	(Trac #5145, git 01fde297a978e2bd832655ac7276e5aa3a7e8400)

1221.	[func]		tomek
	Control agent is now able to parse the input configuration and
	store it in its configuration syntax structure. Upcoming tickets
	will take advantage of that information.
	(Trac #5134, git 828304f2f408888e4b096418e90e35ba524979d0)

1220.	[func]		parisioa, fdupont, tomek
	DHCPv4 and DHCPv6 parsers have updated to accept database port
	parameter. The parameter for Cassandra is now called
	"contact-points" (was "contact_points" previously).
	(Trac #5061, git d12b6f4a6d80d6bc854f2a8a086e412dc37867bc)

1219.   [func]		marcin
	Control Agent uses libkea-http to process commands over
	the RESTful interface.
        (Trac #5107, git 88ce715926a46b6b3832630116fc7782adc46c7b)

1218.	[func]		tmark, tomek
	Configuration parsing for D2 has been migrated to bison/flex
	and the SimpleParser framework.  This includes changes to
	libprocess which render the CPL agnostic to the underlying
	parsing mechanisms.
	(Trac #5110, git feb2cedc0936364a923ab78542a21114533dd0f5)

1217.	[func]		marcin
	Implemented libkea-http library.
	(Trac #5077, git cd72284b5b221e620770883db7e166c4d3ba7eb6)
	(Trac #5088, git 715d18f961801ffbd798a65b19459178c3a53857)
	(Trac #5099, git 7e8df7993f295431e2cb6a13858f746649c4e18d)

1216.	[func]		fdupont, tomek
	Command line option -t implemented for DHCPv4 and DHCPv6.  It
	allows configuration sanity checking. Note that not all parameters
	are completely checked. In particular, service and control channel
	sockets are not opened, and hook libraries are not loaded.
	(Trac #3770, git 1d12582e270935ee7b72548d9c66753f4eea4ca4)

1215.	[doc]		tomek
	Developer's Guide updated to cover flex/bison parser.
	(Trac #5112, git 44139d821c1f4e43dbff22d49101a0854e4f9f5b)

1214.	[func]		tomek
	Bison parser implemented for Control-agent. The code is able
	to syntactically parse input configuration, but the output
	is not used yet.
	(Trac #5076, git d99048aa5b90efa7812a75cdae98a0913470f5a6)

1213.	[bug]		fdupont
	Option string values containing comma can now be specified
	correctly by preceding comma with double backslashes (e.g.
	"foo\\,bar").
	(Trac #5105, git fa79ac2396aa94d7bac91bd12d3593ebaaa9386d)

1212.	[doc]		andreipavelQ
	Many spelling corrections.
	(Github #47, git a6a7ca1ced8c63c1e11ef4c572f09272340afdd7)

1211.	[func]		andreipavelQ
	Updated PostgreSQL version reporting to be in line with
	MySQL and Cassandra.
	(Github #42, git 7ef4a190facadd66775b4a44c696d1c4215616cd)

1210.	[doc]		andreipavelQ
	Doxygen version updated to 1.8.11.
	(Github #45, git ce72998382b62269823fa0dcbfa41dfa9c72b69e)

1209.	[func]		tomek
	Relay options are now printed in DHCPv6 when sufficiently detailed
	debug logging is requested.
	(Trac #5131, git 5bf58b21fcf07f2e2e97275efa1f76cde913b30a)

1208.	[func]		tomek
	Global DHCPv4 and DHCPv6 parsers have been migrated to the
	SimpleParser framework. Several parameters (renew-timer,
	rebind-timer, preferred-lifetime, valid-lifetime, match-client-id,
	next-server, decline-probation-period, dhcp4o6-port,
	echo-client-id) now have explicit default values.
	(Trac #5019, git f3538dd031e6f29abcd516f425d72c8f929abbb0)

1207.	[func]		fdupont
	Client classes parser migrated to SimpleParser. The 'name'
	parameter in 'client-classes' definitions is now mandatory.
	(Trac #5098, git e93906e48a6e2b0ff78c5e37dca642646fe47d43)

1206.	[func]		tomek
	'hooks-libraries' parser migrated to SimpleParser. The code will
	now refuse a configuration if a hook library fails to load.
	(Trac #5031, #5041, git 1bbaf4cbcf6fda59bacdf526a6c762315fdd88a1)

1205.	[func]		tomek
	Parsers for interfaces configuration converted to SimpleParser.
	Removed obsolete 'version' parameter in Dhcp6.
	(Trac #5020, #5038, git 3d8e48c640e302670c04907468d11faafbe9fe7b)

1204.   [func]         marcin
	Added 'control_command_receive' hook point to Kea Command
	Manager.
	(Trac #5100, git d0c7cb29a7df3588c540afb4ca56de55f26142e0)

1203.   [func]         marcin
	Implemented TCPAcceptor class in libkea-asiolink. This class
	provides means to listen and asynchronously accept new TCP
	connections.
	(Trac #5094, git 920ba90696ba9d8579a7db5e1efcf955d6654a96)

1202.	[func]		tomek
	Parsers for mac-sources, control-socket, and relay-info converted
	to SimpleParser. It is no longer accepted to specify empty
	mac-sources. Either specify actual values in mac-sources or
	don't specify mac-sources at all.
	(Trac #5032, git f1c9dee0936b48be28f890ffd428fbdeb87c12ea)

1201.	[func]		tmark
	kea-dhcp4 and kea-dhcp6 now support the "set-config" command.
	The command causes the server to replace its current configuration
	with the configuration supplied as the command's argument.
	(Trac #5046, git 4afbdcf89c9f83d944f774d05bd401d3f2768d10)

1200.	[func]		tmark
	kea-dhcp4 and kea-dhcp6 now support the Command Channel "libreload"
	command.  The command causes the server to unload and then load all
	currently loaded hook libraries.
	(Trac #3238, git d4d8665494e1847b34b66f8ef542851ea6f0213c)

1199.	[func]		tomek, fdupont
	Dhcp4 parser migrated to bison. This yields a number of user
	visible changes:
	- better comment handling (bash, C, C++ style comments)
	- file includes now supported
	- better syntax checking
	- added advanced.json config example
	- removed obsolete 'version' parameter
	(Trac #5017, git 1cf853c595a100c86f9b2b3353f1b5964d902147)

1198.   [func]         marcin
	Created kea-ctrl-agent. This application currently doesn't
	do anything. Future tickets will add REST API to allow for
	managing Kea services.
	(Trac #5075, git 1ec7586da5ae1474b52d5a395fb80ee37d6d568e)

1197.	[doc]		tomek
	Configuration examples now set lfc-interval to a default
	value of one hour.
	(Trac #5072, git cf4362196fa2b7892643d1e40b974bb450a3de7e)

1196.	[func]		tomek, fdupont
	Dhcp6 parser migrated to bison. This yields a number of user
	visible changes:
	- better comment handling (bash, C, C++ style comments)
	- file includes now supported
	- better syntax checking
	(Trac #5036, git 4c5902da95a5228275cdb151b357864cfa9c31f5)

1195.	[build]		fdupont
	Altered to compile in C++ 2011 standard mode. Also replace (most)
	instances of the deprecated std::auto_ptr with std::unique_ptr.
	(Trac #5066, git a060d4a983860bf3056d50d9bf7ee4355c8372f2)

1194.   [build]     	marcin
	Moved StateModel class from D2 to libkea-util.
	(Trac #3175, git 270ec379aec2894104a299cdd1080e24007e25fb)

1193.	[doc]		stephen
	Update Hook Developers documentation to make it clearer where
	the Kea include files and libraries are located.
	(Trac #5069, git 14a78caaf3af9fe9a0ffe2c8af784eab78e813e0)

1192.   [build]     marcin
	Created libkea-process library and moved the Controllable
	Process Layer (CPL) from D2 to this new library.
	(Trac #5074, git 4563925f7966e9da2132eb427e742cc3d3feee5d)

1191.	[build]		tomek
	Optional support for premium package added.
	(Trac #5027, git 5ff51f28a1f05d941bb117986922a6f410f23c6c)

1190.	[func]		tomek
	User context implemented: an arbitrary user information can
	now be defined for address and prefix pools.
	(Trac #5023, git 4f81789e19b72c933bcf86e402b417c63bd7bd3f)

1189.	[func]		fdupont
	Owing to API changes, crypto code now requires OpenSSL 1.0.1 or
	later.
	(Trac #3908, git 4c14fdfd4187a4c8f7b775432082b76782e47663)

1188.	[doc]		vlegout
	Fixed several spelling mistakes.
	(Github #32, git d51c005519c4add6fd0c37bcd68b0fbe94941b2d)

1187.	[bug]		marcin
	DHCPv4 server allows for allocating multiple leases for the
	same hardware address if a different client identifier is
	used for each lease. This facilitates the PXE boot use cases
	where a booted machine may request a lease multiple times.
	(Trac #5029, git 03defed4d8bb9a997d31dbfcf30ae3f866bd3353)

1186.	[func]		marcin
	Support for DHCPv6 options defined in RFC6603 and RFC7598. Thanks
	to Andrei Pavel and Cristian Secareanu of Qualitance for submitting
	initial implementation.
	(Trac #github24, git 59b62eb3ddd9db62c04bd47cd8fbdc1af62fbc1b)

1185.	[build]		marcin
	Install Kea headers to be used for building external libraries.
	Before this change some required headers were not installed.
	(Trac #5055, git a46087b7b7face4a1318658bbdcbf7602c1bb729)

1184.	[bug]		eest
	Fixes in the occasionally failing LFC unit test. This
	fix was provided by Patrik Lundin.
	(Github #31, git 69a5722bf3b41bf3b2bc0c2bcac966c23c08f62d)

1183.	[bug]		tmark
	kea-dhcp4 now correctly loads declined leases from CSV
	lease files. Prior to this, declined leases were being
	incorrectly and silently discarded.  In addition, both
	kea-dhcp4 and kea-dhcp6 will now emit an error log for
	each invalid row encountered when loading leases from
	CSV files.
	(Trac #5058, git 29b088079bed3c5059fdf8a43a4e79cd7f9a4207)

1182.	[func]		marcin
	DHCP servers detect overlapping pool ranges during
	configuration.
	(Trac #2280, git c8f931e0189c9630f5fba5d2a5553bed4abf36f7)

1181.	[func]		marcin
	Extended DHCPv6 server to allow for specifying DHCP options
	on address and prefix pool levels.
	(Trac #5022, git e3b2785c79aedbb0c8af7468d61f6d61dafd2282)


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.





More information about the Kea-users mailing list