|
@@ -30,52 +30,39 @@
|
|
|
(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>
|
|
@@ -86,9 +73,8 @@
|
|
|
</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>
|
|
@@ -128,15 +114,13 @@
|
|
|
|
|
|
<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>
|
|
|
|
|
@@ -146,9 +130,6 @@ Debian and Ubuntu:
|
|
|
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
|
|
@@ -162,7 +143,7 @@ as a dependency earlier -->
|
|
|
<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>
|
|
|
|
|
@@ -179,8 +160,7 @@ as a dependency earlier -->
|
|
|
<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
|
|
@@ -191,10 +171,8 @@ as a dependency earlier -->
|
|
|
|
|
|
<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>
|
|
|
|
|
@@ -279,11 +257,10 @@ as a dependency earlier -->
|
|
|
</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>
|
|
@@ -301,6 +278,15 @@ as a dependency earlier -->
|
|
|
</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>
|
|
|
<simpara>Replace Botan by OpenSSL for the crypto library.
|
|
@@ -310,8 +296,6 @@ as a dependency earlier -->
|
|
|
</listitem>
|
|
|
</varlistentry>
|
|
|
|
|
|
-<!-- missing -with-botan-config -->
|
|
|
-
|
|
|
<varlistentry>
|
|
|
<term>--without-werror</term>
|
|
|
<listitem>
|
|
@@ -408,35 +392,36 @@ as a dependency earlier -->
|
|
|
<para>Kea 0.9 introduces configuration backends that are
|
|
|
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>
|
|
|
+ currently supports two values: BUNDY and JSON. 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 Kea 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>
|
|
@@ -450,8 +435,8 @@ as a dependency earlier -->
|
|
|
a way that makes it possible to choose which database product should be used to
|
|
|
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
|
|
|
+ support are disabled by default and only Memfile
|
|
|
+ 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>
|
|
@@ -463,14 +448,12 @@ as a dependency earlier -->
|
|
|
</para>
|
|
|
<para>
|
|
|
Build and install Kea as described in <xref linkend="installation"/>, with
|
|
|
- the following modification: to enable the MySQL database code, at the
|
|
|
- "configure" step (see <xref linkend="configure"/>), specify the location of the
|
|
|
- MySQL configuration program "mysql_config" with the "--with-dhcp-mysql" switch,
|
|
|
- i.e.
|
|
|
+ the following modification. To enable the MySQL database code, at the
|
|
|
+ "configure" step (see <xref linkend="configure"/>), do:
|
|
|
<screen><userinput>./configure [other-options] --with-dhcp-mysql</userinput></screen>
|
|
|
- ...if MySQL was installed in the default location, or:
|
|
|
+ Or specify the location of the MySQL configuration program
|
|
|
+ "mysql_config" if MySQL was not installed in the default location:
|
|
|
<screen><userinput>./configure [other-options] --with-dhcp-mysql=<replaceable>path-to-mysql_config</replaceable></userinput></screen>
|
|
|
- ...if not.
|
|
|
</para>
|
|
|
</section>
|
|
|
<section id="dhcp-mysql-database-create">
|
|
@@ -489,12 +472,13 @@ mysql></screen>
|
|
|
<para>
|
|
|
2. Create the database:
|
|
|
<screen>mysql> <userinput>CREATE DATABASE <replaceable>database-name</replaceable>;</userinput></screen>
|
|
|
- ... <replaceable>database-name</replaceable> is the name you have chosen for the database.
|
|
|
+ (<replaceable>database-name</replaceable> is the name you
|
|
|
+ have chosen for the 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:
|
|
@@ -518,14 +502,13 @@ $</screen>
|
|
|
</para>
|
|
|
<para>
|
|
|
Build and install Kea as described in <xref linkend="installation"/>, with
|
|
|
- the following modification: to enable the PostgreSQL database code, at the
|
|
|
- "configure" step (see <xref linkend="configure"/>), specify the location of the
|
|
|
- PostgreSQL configuration program "pg_config" with the "--with-dhcp-pgsql" switch,
|
|
|
- i.e.
|
|
|
+ the following modification. To enable the PostgreSQL database code, at the
|
|
|
+ "configure" step (see <xref linkend="configure"/>), do:
|
|
|
<screen><userinput>./configure [other-options] --with-dhcp-pgsql</userinput></screen>
|
|
|
- ...if PostgreSQL was installed in the default location, or:
|
|
|
+ Or specify the location of the PostgreSQL configuration
|
|
|
+ program "pg_config" if PostgreSQL was not installed in
|
|
|
+ the default location:
|
|
|
<screen><userinput>./configure [other-options] --with-dhcp-pgsql=<replaceable>path-to-pg_config</replaceable></userinput></screen>
|
|
|
- ...if not.
|
|
|
</para>
|
|
|
</section>
|
|
|
<section id="dhcp-pgsql-database-create">
|
|
@@ -548,7 +531,8 @@ postgres=#<userinput> CREATE DATABASE <replaceable>database-name</replaceable>;<
|
|
|
CREATE DATABASE
|
|
|
postgres=#
|
|
|
</screen>
|
|
|
- ... <replaceable>database-name</replaceable> is the name you have chosen for the database.
|
|
|
+ (<replaceable>database-name</replaceable> is the name you
|
|
|
+ have chosen for the database.)
|
|
|
</para>
|
|
|
<para>
|
|
|
3. Create the user under which Kea will access the database (and give it a password), then grant it access to the database:
|
|
@@ -571,7 +555,7 @@ $</screen>
|
|
|
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
|