The following is the directory layout of the complete Kea installation
(all directories paths are relative to the installation directory):
<itemizedlist>
- <listitem>
- <simpara>
- <filename>bin/</filename> —
- general tools and diagnostic clients.
- </simpara>
- </listitem>
<listitem>
<simpara>
- <!-- @todo: 0.9: update this -->
- <filename>etc/bind10/</filename> —
+ <filename>etc/kea/</filename> —
configuration files.
</simpara>
</listitem>
<listitem>
<simpara>
- <filename>lib/</filename> —
- libraries and python modules.
+ <filename>include/</filename> —
+ C++ development header files.
</simpara>
</listitem>
<listitem>
<simpara>
- <!-- @todo 0.9: update this -->
- <filename>libexec/bind10/</filename> —
- executables that a user wouldn't normally run directly and
- are not run independently.
- These are the BIND 10 and Kea modules which are daemons started by
- the <command>b10-init</command> master process.
+ <filename>lib/</filename> —
+ libraries.
</simpara>
</listitem>
<listitem>
<simpara>
<filename>sbin/</filename> —
- commands used by the system administrator.
+ server software and commands used by the system administrator.
</simpara>
</listitem>
<listitem>
<simpara>
- <!-- @todo 0.9: update this -->
- <filename>share/bind10/</filename> —
- configuration specifications.
+ <filename>share/kea/</filename> —
+ configuration specifications and examples.
</simpara>
</listitem>
<listitem>
<simpara>
- <!-- @todo 0.9: update this -->
- <filename>share/doc/bind10/</filename> —
- this guide and other supplementary documentation.
+ <filename>share/doc/kea/</filename> —
+ this guide, other supplementary documentation, and examples.
</simpara>
</listitem>
<listitem>
</listitem>
<listitem>
<simpara>
- <!-- @todo 0.9: update this -->
- <filename>var/bind10/</filename> —
- data source and configuration databases.
+ <filename>var/kea/</filename> —
+ server identification, lease databases, and log files.
</simpara>
</listitem>
</itemizedlist>
<listitem>
<para>
- Botan (at least version
- 1.8).</para>
+ Botan (at least version 1.8) or OpenSSL.</para>
</listitem>
<listitem>
<para>
log4cplus (at least version 1.0.3)
development include headers.
- <!-- @todo: Add OpenSSL note here once #2406 is merged -->
</para>
</listitem>
libgmp3-dev and libbz2-dev required for botan too
-->
-<!-- NOTE: _sqlite3 is only needed at test time; it is already listed
-as a dependency earlier -->
-
<listitem>
<para>
A C++ compiler and
<listitem>
<para>
The development tools "make" and "pkg-config".
- <!-- @todo update this list -->
+ <!-- @todo update this list, pkg-config shouldn't be required -->
</para>
</listitem>
<section id="install">
<title>Installation from Source</title>
<para>
- Kea is open source software written in C++ (some components of the
- BIND 10 framework are written in Python).
+ Kea is open source software written in C++.
It is freely available in source code form from ISC as a
downloadable tar file or via Kea Git code revision control
service. (It may also be available in pre-compiled ready-to-use
<title>Download Tar File</title>
<para>
- Kea 0.8 is available as a part of BIND10 1.2 release, which is a final
- release of BIND10 from ISC. This release can be downloaded from:
- <ulink url="ftp://ftp.isc.org/isc/bind10/"/>. The upcoming Kea 0.9 and all
- following releases will be shipped as a stand-alone tarball.
+ The Kea release tarballs may be downloaded from:
+ <ulink url="http://ftp.isc.org/isc/kea/"/> (using FTP or HTTP).
</para>
</section>
</varlistentry>
<varlistentry>
- <term>--with-pythonpath</term>
+ <term>--with-botan-config</term>
<listitem>
- <simpara>Define the path to Python 3.x if it is not in the
- standard execution path. Python 3.x is mandatory for Kea 0.8,
- but will not be required for the upcoming Kea 0.9.
+ <simpara>To specific the path to the botan-config
+ script to build with Botan for the crypto code.
</simpara>
</listitem>
</varlistentry>
</listitem>
</varlistentry>
+ <varlistentry>
+ <term>--with-log4cplus</term>
+ <listitem>
+ <simpara>Define the path to find the Log4cplus headers
+ and libraries.
+ </simpara>
+ </listitem>
+ </varlistentry>
+
<varlistentry>
<term>--with-openssl</term>
<listitem>
</listitem>
</varlistentry>
-<!-- missing -with-botan-config -->
-
<varlistentry>
<term>--without-werror</term>
<listitem>
switchable during compilation phase. The backend is chosen using
the --with-kea-config switch when running the configure script. It
currently supports two values: BIND10 and JSON. This is currently
- only supported by DHCPv6 component.</para>
+ only supported by DHCPv6 component. JSON is the default.</para>
<variablelist>
<varlistentry>
- <term>BIND10</term>
+ <term>BUNDY</term>
<listitem>
- <simpara>BIND10 (which is the default value as of April 2014) means
- that Kea6 is linked with the BIND10 configuration backend that
- connects to the BIND10 framework and in general works exactly the
- same as Kea 0.8 and earlier versions. The benefits of that backend
- are uniform integration with BIND10 framework, easy on-line
- reconfiguration using bindctl, available RESTful API. On the other
- hand, it requires the whole heavy BIND10 framework that requires
- Python3 to be present. That backend is likely to go away with the
- release of Kea 0.9.</simpara>
+ <simpara>BUNDY means
+ that Kea6 is linked with the Bundy configuration backend that
+ connects to the Bundy framework and in general works exactly the
+ same as Kea 0.8 and earlier BIND10 versions. The benefits
+ of that backend are uniform integration with the Bundy
+ framework, easy on-line reconfiguration using bindctl,
+ available RESTful API. On the other hand, it requires
+ the whole heavy Bundy framework that requires Python3
+ to be present. That backend is likely to go away with
+ the release of Kea 1.0.</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term>JSON</term>
<listitem>
- <simpara>JSON is a new configuration backend that causes Kea to read
- JSON configuration file from disk. It does not require any framework
- and thus is considered more lightweight. It will allow dynamic
- on-line reconfiguration, but will lack remote capabilities (i.e. no
- RESTful API). This configuration backend is expected to be the
- default for upcoming Kea 0.9.</simpara>
+ <simpara>JSON is a new default configuration backend
+ that causes Kea to read JSON configuration file from
+ disk. It does not require any framework and thus is
+ considered more lightweight. It will allow dynamic
+ on-line reconfiguration, but will lack remote capabilities
+ (i.e. no RESTful API).</simpara>
</listitem>
</varlistentry>
</variablelist>
store the lease information. At present, Kea supports three database backends: MySQL,
PostgreSQL and Memfile. To limit external dependencies, both MySQL and PostgreSQL
support are disabled by default and only Memfile (which is implemented in pure C++)
- is available. Support for a given database backend must be explicitly included when
+ is available. Support for the optional external database backend must be explicitly included when
Kea is built. This section covers the building of Kea with MySQL and/or PostgreSQL
and the creation of the lease database.
</para>
<para>
3. Create the database tables by running the dhcpdb_create.mysql script supplied as part of Kea:
<screen>mysql> <userinput>CONNECT <replaceable>database-name</replaceable>;</userinput>
-mysql> <userinput>SOURCE <replaceable>path-to-bind10</replaceable>/share/bind10/dhcpdb_create.mysql</userinput></screen>
+mysql> <userinput>SOURCE <replaceable>path-to-kea</replaceable>/share/kea/dhcpdb_create.mysql</userinput></screen>
</para>
<para>
4. Create the user under which Kea will access the database (and give it a password), then grant it access to the database tables:
After entering the following command, you will be prompted for the new
user's password. When the command completes you will be returned to
the shell prompt. You should see output similar to following:
-<screen>$ <userinput>psql -d <replaceable>database-name</replaceable> -U <replaceable>user-name</replaceable> -f <replaceable>path-to-bind10</replaceable>/share/bind10/dhcpdb_create.pgsql</userinput>
+<screen>$ <userinput>psql -d <replaceable>database-name</replaceable> -U <replaceable>user-name</replaceable> -f <replaceable>path-to-kea</replaceable>/share/kea/dhcpdb_create.pgsql</userinput>
Password for user <replaceable>user-name</replaceable>:
CREATE TABLE
CREATE INDEX