intro.xml 7.71 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
<!--
 - Copyright (C) 2014-2018 Internet Systems Consortium, Inc. ("ISC")
 -
 - This Source Code Form is subject to the terms of the Mozilla Public
 - License, v. 2.0. If a copy of the MPL was not distributed with this
 - file, You can obtain one at http://mozilla.org/MPL/2.0/.
-->

<!-- need this include to make the &keaversion; macro work -->
<!DOCTYPE book [
<!ENTITY % keaversion SYSTEM "version.ent">
%keaversion;
13 14
]>

15
<chapter xmlns="http://docbook.org/ns/docbook" version="5.0" xml:id="intro">
16 17
    <title>Introduction</title>
    <para>
18
      Kea is the next generation of DHCP software developed by ISC.
19 20 21 22 23
      It supports both DHCPv4 and DHCPv6 protocols along with their
      extensions, e.g. prefix delegation and dynamic updates to DNS.
    </para>

    <para>
24 25 26 27
      Kea was initially developed as a part of the BIND 10 framework.
      In early 2014, ISC made the decision to discontinue active
      development of BIND 10 and continue development of Kea as
      standalone DHCP software.
28 29 30
    </para>

    <para>
31
      This guide covers Kea version &keaversion;.
32 33 34 35 36
    </para>

    <section>
      <title>Supported Platforms</title>
      <para>
Michal Nowikowski's avatar
Michal Nowikowski committed
37 38
        Kea is officially supported on CentOS, Fedora, Ubuntu, Debian and FreeBSD systems.
        It is also likely to work on many other platforms. Kea 1.5.0 builds have been tested on:
39
        <itemizedlist>
Michal Nowikowski's avatar
Michal Nowikowski committed
40 41 42 43
          <listitem>CentOS Linux — 7.1804 (aka 7.5)</listitem>
          <listitem>Fedora — 27, 28</listitem>
          <listitem>Ubuntu — 16.04, 18.04</listitem>
          <listitem>Debian GNU/Linux — 8, 9</listitem>
44
          <listitem>FreeBSD — 11.0</listitem>
Michal Nowikowski's avatar
Michal Nowikowski committed
45
          <listitem>MAC OS X — 10.12</listitem>
46
        </itemizedlist>
47 48 49 50
      </para>
      <para>There are currently no plans to port Kea to Windows platforms.</para>
    </section>

51
    <section xml:id="required-software">
52 53 54 55
      <title>Required Software at Run-time</title>

      <para>
        Running Kea uses various extra software which may
56 57
        not be provided in the default installation of some operating systems,
        nor in the standard package collections. You may
58 59 60 61 62
        need to install this required software separately.
        (For the build requirements, also see
        <xref linkend="build-requirements"/>.)
      </para>

63
      <itemizedlist>
64

65 66
        <listitem>
            <simpara>
67
        Kea supports two crypto libraries: Botan and OpenSSL. Only one of them
68
        is required to be installed during compilation. Kea uses the Botan
69
        crypto library for C++ (<uri xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://botan.randombit.net/">http://botan.randombit.net/</uri>),
Francis Dupont's avatar
Francis Dupont committed
70
        version 1.9 or later. As an alternative to Botan, Kea can use the
71
        OpenSSL crypto library (<uri xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.openssl.org/">http://www.openssl.org/</uri>),
72
        version 1.0.1 or later.
73 74
            </simpara>
        </listitem>
75

76 77
        <listitem>
            <simpara>
78
        Kea uses the log4cplus C++ logging library
79
        (<uri xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://log4cplus.sourceforge.net/">http://log4cplus.sourceforge.net/</uri>).
80
        It requires log4cplus version 1.0.3 or later.
81 82
            </simpara>
        </listitem>
83

84 85 86 87 88 89 90
        <listitem>
            <simpara>
	In order to store lease information in a MySQL database, Kea requires MySQL
    headers and libraries.  This is an optional dependency in that Kea can be
    built without MySQL support.
            </simpara>
        </listitem>
91

92 93
        <listitem>
            <simpara>
94
	In order to store lease information in a PostgreSQL database, Kea requires PostgreSQL
95
    headers and libraries.  This is an optional dependency in that Kea can be
96
    built without PostgreSQL support.
97 98 99 100 101
            </simpara>
        </listitem>

        <listitem>
            <simpara>
102 103 104
	In order to store lease information in a Cassandra  database (CQL), Kea
    requires Cassandra headers and libraries. This is an optional dependency
    in that Kea can be built without Cassandra support.
105 106 107
            </simpara>
        </listitem>
      </itemizedlist>
108 109
    </section>

110
    <section xml:id="kea_software">
111
      <title>Kea Software</title>
112 113 114 115
      <para>
        Kea is modular.  Part of this modularity is
        accomplished using multiple cooperating processes which, together,
        provide the server functionality.
116
        The following software is included with Kea:
117 118 119 120 121 122 123 124
      </para>

      <para>

        <itemizedlist>

          <listitem>
            <simpara>
125
              <command>keactrl</command>
126 127
              Tool to start, stop, reconfigure, and report status
              for the Kea servers.
128 129 130 131 132
            </simpara>
          </listitem>

          <listitem>
            <simpara>
133
              <command>kea-dhcp4</command>
134
              The DHCPv4 server process.
135 136 137 138 139 140
              This process responds to DHCPv4 queries from clients.
            </simpara>
          </listitem>

          <listitem>
            <simpara>
141
              <command>kea-dhcp6</command>
142
              The DHCPv6 server process.
143 144 145 146 147 148
              This process responds to DHCPv6 queries from clients.
            </simpara>
          </listitem>

          <listitem>
            <simpara>
149
              <command>kea-dhcp-ddns</command>
150
              The DHCP Dynamic DNS process.
151
              This process acts as an intermediary between the DHCP servers
152
              and DNS servers. It receives name update requests from the DHCP
153 154 155 156
              servers and sends DNS Update messages to the DNS servers.
            </simpara>
          </listitem>

157 158
          <listitem>
            <simpara>
159
              <command>kea-admin</command>
160
              A useful tool for database backend maintenance (creating a new
161 162 163 164
              database, checking versions, upgrading etc.)
            </simpara>
          </listitem>

165 166
          <listitem>
            <simpara>
167
              <command>kea-lfc</command>
168 169
              This process removes redundant information from the files used
              to provide persistent storage for the memfile data base backend.
170
              While it can be run standalone, it is normally run as and when
171
              required by the Kea DHCP servers.
172 173 174
            </simpara>
          </listitem>

175 176
          <listitem>
            <simpara>
177
              <command>kea-ctrl-agent</command>
178
              Kea Control Agent (CA) is a daemon that exposes a RESTful control
179 180
              interface for managing Kea servers.
            </simpara>
181 182 183 184 185 186 187 188
          </listitem>

          <listitem>
            <simpara>
              <command>kea-netconf</command> ?~@~T
              Kea netconf is an agent that provides a YANG/NETCONF interface
              for the Kea environment.
            </simpara>
189 190
          </listitem>

191 192 193 194 195 196 197 198
          <listitem>
            <simpara>
              <command>kea-shell</command>
              Simple text client that uses REST interface to connect to Kea
              Control Agent.
            </simpara>
          </listitem>

199 200
          <listitem>
            <simpara>
201
              <command>perfdhcp</command>
202 203
              A DHCP benchmarking tool which simulates multiple clients to
              test both DHCPv4 and DHCPv6 server performance.
204 205 206 207 208 209 210 211 212 213 214 215 216 217 218
            </simpara>
          </listitem>

        </itemizedlist>
      </para>

    </section>

    <para>
      The tools and modules are covered in full detail in this guide.
<!-- TODO point to these -->
      In addition, manual pages are also provided in the default installation.
    </para>

    <para>
219 220 221
      Kea also provides C++ libraries and programmer interfaces for
      DHCP.  These include detailed developer documentation and
      code examples.
222 223 224 225
<!-- TODO point to this -->
    </para>

  </chapter>