intro.xml 7.53 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>
37
        Kea is officially supported on Red Hat Enterprise Linux,
38
	    CentOS, Fedora and FreeBSD systems. It is also likely to work on many
39
40
41
42
43
44
45
46
47
48
	    other platforms: Kea 1.4.0 builds have been tested on:
        <itemizedlist>
          <listitem>Red Hat Enterprise Linux — 6.4</listitem>
          <listitem>CentOS Linux — 7</listitem>
          <listitem>Debian GNU/Linux — 7, 7.11, 9</listitem>
          <listitem>Ubuntu — 14.04, 16.04</listitem>
          <listitem>Fedora — 25, 26, 27</listitem>
          <listitem>FreeBSD — 11.0</listitem>
          <listitem>MAC OS X — 10.11, 10.12</listitem>
        </itemizedlist>
49
50
51
52
      </para>
      <para>There are currently no plans to port Kea to Windows platforms.</para>
    </section>

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

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

65
      <itemizedlist>
66

67
68
        <listitem>
            <simpara>
69
        Kea supports two crypto libraries: Botan and OpenSSL. Only one of them
70
        is required to be installed during compilation. Kea uses the Botan
71
        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
72
        version 1.9 or later. As an alternative to Botan, Kea can use the
73
        OpenSSL crypto library (<uri xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://www.openssl.org/">http://www.openssl.org/</uri>),
74
        version 1.0.1 or later.
75
76
            </simpara>
        </listitem>
77

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

86
87
88
89
90
91
92
        <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>
93

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

        <listitem>
            <simpara>
104
105
106
	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.
107
108
109
            </simpara>
        </listitem>
      </itemizedlist>
110
111
    </section>

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

      <para>

        <itemizedlist>

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

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

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

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

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

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

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

185
186
187
188
189
190
191
192
          <listitem>
            <simpara>
              <command>kea-shell</command>
              Simple text client that uses REST interface to connect to Kea
              Control Agent.
            </simpara>
          </listitem>

193
194
          <listitem>
            <simpara>
195
              <command>perfdhcp</command>
196
197
              A DHCP benchmarking tool which simulates multiple clients to
              test both DHCPv4 and DHCPv6 server performance.
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
            </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>
213
214
215
      Kea also provides C++ libraries and programmer interfaces for
      DHCP.  These include detailed developer documentation and
      code examples.
216
217
218
219
<!-- TODO point to this -->
    </para>

  </chapter>