Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Kea Administrator Reference ManualDocumentation
Release 1.7.7
Internet Systems Consortium
Apr 27, 2020
CONTENTS
1 Introduction 31.1 Supported platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Regularly tested platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.1.2 Best effort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.1.3 Community maintained . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.1.4 Unsupported platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Required Software at Run-Time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.3 Kea Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Quick Start 72.1 Quick Start Guide for using tarball . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.2 Quick Start Guide using native packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.3 Quick Start Guide for DHCPv4 and DHCPv6 Services . . . . . . . . . . . . . . . . . . . . . . . . . 82.4 Running the Kea Servers Directly . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3 Installation 113.1 Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.2 Installation Hierarchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.3 Build Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113.4 Installation from Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.4.1 Download Tar File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.4.2 Retrieve from Git . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.4.3 Configure Before the Build . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.4.4 Build . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.4.5 Install . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.5 DHCP Database Installation and Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.5.1 Building with MySQL Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.5.2 Building with PostgreSQL support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.5.3 Building with CQL (Cassandra) Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.6 Hammer Building Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.7 Running Kea from non-root account on Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4 Kea Database Administration 214.1 Databases and Database Version Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.2 The kea-admin Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.3 Supported Backends . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.3.1 Memfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Upgrading Memfile Lease Files from an Earlier Version of Kea . . . . . . . . . . . . . . . . 22
4.3.2 MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23First-Time Creation of the MySQL Database . . . . . . . . . . . . . . . . . . . . . . . . . . 23Upgrading a MySQL Database from an Earlier Version of Kea . . . . . . . . . . . . . . . . . 24
i
Simple MySQL tweak to gain performance . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.3.3 PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
First-Time Creation of the PostgreSQL Database . . . . . . . . . . . . . . . . . . . . . . . . 25Initialize the PostgreSQL Database Using kea-admin . . . . . . . . . . . . . . . . . . . . . . 27Upgrading a PostgreSQL Database from an Earlier Version of Kea . . . . . . . . . . . . . . . 27
4.3.4 Cassandra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27First-Time Creation of the Cassandra Database . . . . . . . . . . . . . . . . . . . . . . . . . 27Upgrading a Cassandra Database from an Earlier Version of Kea . . . . . . . . . . . . . . . . 28
4.3.5 Using Read-Only Databases with Host Reservations . . . . . . . . . . . . . . . . . . . . . . 284.3.6 Limitations Related to the Use of SQL Databases . . . . . . . . . . . . . . . . . . . . . . . 29
Year 2038 Issue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5 Kea Configuration 315.1 JSON Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.1.1 JSON Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315.1.2 Comments and User Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325.1.3 Simplified Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.2 Kea Configuration Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.2.1 Applicability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.2.2 CB Capabilities and Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345.2.3 CB Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355.2.4 Configuration Sharing and Server Tags . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6 Managing Kea with keactrl 396.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.2 Command Line Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.3 The keactrl Configuration File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.4 Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416.5 Overriding the Server Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7 The Kea Control Agent 457.1 Overview of the Kea Control Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457.2 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457.3 Secure Connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477.4 Starting the Control Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 487.5 Connecting to the Control Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
8 The DHCPv4 Server 498.1 Starting and Stopping the DHCPv4 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498.2 DHCPv4 Server Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
8.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508.2.2 Lease Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Memfile - Basic Storage for Leases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52Lease Database Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Cassandra-Specific Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8.2.3 Hosts Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56DHCPv4 Hosts Database Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57Using Read-Only Databases for Host Reservations with DHCPv4 . . . . . . . . . . . . . . . 58
8.2.4 Interface Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 588.2.5 Issues with Unicast Responses to DHCPINFORM . . . . . . . . . . . . . . . . . . . . . . . 618.2.6 IPv4 Subnet Identifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618.2.7 IPv4 Subnet Prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628.2.8 Configuration of IPv4 Address Pools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628.2.9 Sending T1 (Option 58) and T2 (Option 59) . . . . . . . . . . . . . . . . . . . . . . . . . . 648.2.10 Standard DHCPv4 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
ii
8.2.11 Custom DHCPv4 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 718.2.12 DHCPv4 Private Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 738.2.13 DHCPv4 Vendor-Specific Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768.2.14 Nested DHCPv4 Options (Custom Option Spaces) . . . . . . . . . . . . . . . . . . . . . . 788.2.15 Unspecified Parameters for DHCPv4 Option Configuration . . . . . . . . . . . . . . . . . . 808.2.16 Stateless Configuration of DHCPv4 Clients . . . . . . . . . . . . . . . . . . . . . . . . . . 808.2.17 Client Classification in DHCPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Setting Fixed Fields in Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82Using Vendor Class Information in Classification . . . . . . . . . . . . . . . . . . . . . . . . 83Defining and Using Custom Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83Required Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
8.2.18 DDNS for DHCPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85DHCP-DDNS Server Connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86When Does the kea-dhcp4 Server Generate a DDNS Request? . . . . . . . . . . . . . . . . . 87kea-dhcp4 Name Generation for DDNS Update Requests . . . . . . . . . . . . . . . . . . . . 88Sanitizing Client Host Name and FQDN Names . . . . . . . . . . . . . . . . . . . . . . . . . 90
8.2.19 Next Server (siaddr) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 918.2.20 Echoing Client-ID (RFC 6842) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 918.2.21 Using Client Identifier and Hardware Address . . . . . . . . . . . . . . . . . . . . . . . . . 928.2.22 Authoritative DHCPv4 Server Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . 938.2.23 DHCPv4-over-DHCPv6: DHCPv4 Side . . . . . . . . . . . . . . . . . . . . . . . . . . . . 948.2.24 Sanity Checks in DHCPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 958.2.25 Storing Extended Lease Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 958.2.26 Multi-threading settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
8.3 Host Reservation in DHCPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968.3.1 Address Reservation Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 988.3.2 Conflicts in DHCPv4 Reservations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 988.3.3 Reserving a Hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998.3.4 Including Specific DHCPv4 Options in Reservations . . . . . . . . . . . . . . . . . . . . . 1008.3.5 Reserving Next Server, Server Hostname, and Boot File Name . . . . . . . . . . . . . . . . 1018.3.6 Reserving Client Classes in DHCPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1018.3.7 Storing Host Reservations in MySQL, PostgreSQL, or Cassandra . . . . . . . . . . . . . . . 1038.3.8 Fine-Tuning DHCPv4 Host Reservation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1038.3.9 Global Reservations in DHCPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058.3.10 Pool Selection with Client Class Reservations . . . . . . . . . . . . . . . . . . . . . . . . . 1068.3.11 Subnet Selection with Client Class Reservations . . . . . . . . . . . . . . . . . . . . . . . . 107
8.4 Shared Networks in DHCPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1088.4.1 Local and Relayed Traffic in Shared Networks . . . . . . . . . . . . . . . . . . . . . . . . . 1108.4.2 Client Classification in Shared Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1128.4.3 Host Reservations in Shared Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
8.5 Server Identifier in DHCPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1158.6 How the DHCPv4 Server Selects a Subnet for the Client . . . . . . . . . . . . . . . . . . . . . . . . 115
8.6.1 Using a Specific Relay Agent for a Subnet . . . . . . . . . . . . . . . . . . . . . . . . . . . 1168.6.2 Segregating IPv4 Clients in a Cable Network . . . . . . . . . . . . . . . . . . . . . . . . . 116
8.7 Duplicate Addresses (DHCPDECLINE Support) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1178.8 Statistics in the DHCPv4 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1188.9 Management API for the DHCPv4 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1218.10 User Contexts in IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1228.11 Supported DHCP Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1238.12 DHCPv4 Server Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1238.13 Kea DHCPv4 Server Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1238.14 Configuration Backend in DHCPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.14.1 Supported Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1248.14.2 Enabling Configuration Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
iii
9 The DHCPv6 Server 1279.1 Starting and Stopping the DHCPv6 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1279.2 DHCPv6 Server Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
9.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1289.2.2 Lease Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
Memfile - Basic Storage for Leases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130Lease Database Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131Cassandra-Specific Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
9.2.3 Hosts Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133DHCPv6 Hosts Database Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134Using Read-Only Databases for Host Reservations with DHCPv6 . . . . . . . . . . . . . . . 135
9.2.4 Interface Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1359.2.5 IPv6 Subnet Identifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1369.2.6 IPv6 Subnet Prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1379.2.7 Unicast Traffic Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1379.2.8 Configuration of IPv6 Address Pools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1389.2.9 Subnet and Prefix Delegation Pools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1399.2.10 Prefix Exclude Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1409.2.11 Standard DHCPv6 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1409.2.12 Common Softwire46 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
Softwire46 Container Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146S46 Rule Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147S46 BR Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147S46 DMR Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147S46 IPv4/IPv6 Address Binding Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148S46 Port Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
9.2.13 Custom DHCPv6 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1489.2.14 DHCPv6 Vendor-Specific Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1509.2.15 Nested DHCPv6 Options (Custom Option Spaces) . . . . . . . . . . . . . . . . . . . . . . 1519.2.16 Unspecified Parameters for DHCPv6 Option Configuration . . . . . . . . . . . . . . . . . . 1539.2.17 Controlling the Values Sent for T1 and T2 Times . . . . . . . . . . . . . . . . . . . . . . . 1539.2.18 IPv6 Subnet Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1549.2.19 Rapid Commit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1559.2.20 DHCPv6 Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1559.2.21 Relay-Supplied Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1569.2.22 Client Classification in DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Defining and Using Custom Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157Required Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
9.2.23 DDNS for DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159DHCP-DDNS Server Connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161When Does the kea-dhcp6 Server Generate a DDNS Request? . . . . . . . . . . . . . . . . . 162kea-dhcp6 Name Generation for DDNS Update Requests . . . . . . . . . . . . . . . . . . . . 163Sanitizing Client FQDN Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
9.2.24 DHCPv4-over-DHCPv6: DHCPv6 Side . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669.2.25 Sanity Checks in DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1679.2.26 Storing Extended Lease Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1689.2.27 Multi-threading settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
9.3 Host Reservation in DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1699.3.1 Address/Prefix Reservation Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1709.3.2 Conflicts in DHCPv6 Reservations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1719.3.3 Reserving a Hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1729.3.4 Including Specific DHCPv6 Options in Reservations . . . . . . . . . . . . . . . . . . . . . 1739.3.5 Reserving Client Classes in DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1739.3.6 Storing Host Reservations in MySQL, PostgreSQL, or Cassandra . . . . . . . . . . . . . . . 175
iv
9.3.7 Fine-Tuning DHCPv6 Host Reservation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1759.3.8 Global Reservations in DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1779.3.9 Pool Selection with Client Class Reservations . . . . . . . . . . . . . . . . . . . . . . . . . 1789.3.10 Subnet Selection with Client Class Reservations . . . . . . . . . . . . . . . . . . . . . . . . 179
9.4 Shared Networks in DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1809.4.1 Local and Relayed Traffic in Shared Networks . . . . . . . . . . . . . . . . . . . . . . . . . 1829.4.2 Client Classification in Shared Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849.4.3 Host Reservations in Shared Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
9.5 Server Identifier in DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1879.6 DHCPv6 data directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1909.7 Stateless DHCPv6 (Information-Request Message) . . . . . . . . . . . . . . . . . . . . . . . . . . . 1909.8 Support for RFC 7550 (now part of RFC 8415) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1919.9 Using a Specific Relay Agent for a Subnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1919.10 Segregating IPv6 Clients in a Cable Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1929.11 MAC/Hardware Addresses in DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1939.12 Duplicate Addresses (DECLINE Support) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1949.13 Statistics in the DHCPv6 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1959.14 Management API for the DHCPv6 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1989.15 User Contexts in IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1999.16 Supported DHCPv6 Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2009.17 DHCPv6 Server Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2019.18 Kea DHCPv6 server examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2029.19 Configuration Backend in DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
9.19.1 Supported Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2029.19.2 Enabling Configuration Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
10 Lease Expiration 20510.1 Lease Reclamation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20510.2 Lease Reclamation Configuration Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20610.3 Configuring Lease Reclamation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20610.4 Configuring Lease Affinity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20810.5 Reclaiming Expired Leases via Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
11 Congestion Handling 21111.1 What is Congestion? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21111.2 Configuring Congestion Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
12 The DHCP-DDNS Server 21312.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
12.1.1 DNS Server Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21312.1.2 Conflict Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21312.1.3 Dual-Stack Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
12.2 Starting and Stopping the DHCP-DDNS Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21412.3 Configuring the DHCP-DDNS Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
12.3.1 Global Server Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21512.3.2 Management API for the D2 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21612.3.3 TSIG Key List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21712.3.4 Forward DDNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Adding Forward DDNS Domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218Adding Forward DNS Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219
12.3.5 Reverse DDNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220Adding Reverse DDNS Domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
Adding Reverse DNS Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22112.3.6 User Contexts in DDNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
v
12.3.7 Example DHCP-DDNS Server Configuration . . . . . . . . . . . . . . . . . . . . . . . . . 22212.4 DHCP-DDNS Server Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22412.5 Supported Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
13 The LFC Process 22513.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22513.2 Command-Line Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
14 Client Classification 22714.1 Client Classification Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22714.2 Built-in Client Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22814.3 Using Expressions in Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
14.3.1 Logical operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23114.3.2 Substring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23214.3.3 Concat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23214.3.4 Ifelse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23214.3.5 Hexstring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232
14.4 Configuring Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23214.5 Using Static Host Reservations In Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23414.6 Configuring Subnets With Class Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23414.7 Configuring Pools With Class Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23514.8 Using Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23714.9 Classes and Hooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23714.10 Debugging Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
15 Hooks Libraries 23915.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23915.2 Installing Hook Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23915.3 Configuring Hooks Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24115.4 Available Hooks Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24215.5 user_chk: Checking User Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24515.6 legal_log: Forensic Logging Hooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246
15.6.1 Log File Naming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24615.6.2 DHCPv4 Log Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24615.6.3 DHCPv6 Log Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24815.6.4 Configuring the Forensic Log Hooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24915.6.5 Database Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
15.7 flex_id: Flexible Identifiers for Host Reservations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25215.8 flex_option Flexible Option for Option value settings . . . . . . . . . . . . . . . . . . . . . . . . . . 25515.9 host_cmds: Host Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
15.9.1 The subnet-id Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25615.9.2 The reservation-add Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25615.9.3 The reservation-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25815.9.4 The reservation-get-all Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25915.9.5 The reservation-get-page command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26015.9.6 The reservation-get-by-hostname Command . . . . . . . . . . . . . . . . . . . . . . . . . . 26215.9.7 The reservation-del Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
15.10 lease_cmds: Lease Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26415.10.1 The lease4-add, lease6-add Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26515.10.2 The lease6-bulk-apply Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26715.10.3 The lease4-get, lease6-get Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26915.10.4 The lease4-get-all, lease6-get-all Commands . . . . . . . . . . . . . . . . . . . . . . . . . . 27015.10.5 The lease4-get-page, lease6-get-page Commands . . . . . . . . . . . . . . . . . . . . . . . 27215.10.6 The lease4-get-by-, lease6-get-by- Commands . . . . . . . . . . . . . . . . . . . . . . . . . 273
vi
15.10.7 The lease4-del, lease6-del Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27415.10.8 The lease4-update, lease6-update Commands . . . . . . . . . . . . . . . . . . . . . . . . . 27415.10.9 The lease4-wipe, lease6-wipe Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . 27515.10.10The lease4-resend-ddns, lease6-resend-ddns Commands . . . . . . . . . . . . . . . . . . . 276
15.11 subnet_cmds: Subnet Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27615.11.1 The subnet4-list Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27715.11.2 The subnet6-list Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27815.11.3 The subnet4-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27815.11.4 The subnet6-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27915.11.5 The subnet4-add Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28015.11.6 The subnet6-add Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28015.11.7 The subnet4-update Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28115.11.8 The subnet6-update Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28215.11.9 The subnet4-del Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28315.11.10The subnet6-del Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28315.11.11The network4-list, network6-list Commands . . . . . . . . . . . . . . . . . . . . . . . . . . 28415.11.12The network4-get, network6-get Commands . . . . . . . . . . . . . . . . . . . . . . . . . . 28515.11.13The network4-add, network6-add Commands . . . . . . . . . . . . . . . . . . . . . . . . . 28515.11.14The network4-del, network6-del Commands . . . . . . . . . . . . . . . . . . . . . . . . . . 28715.11.15The network4-subnet-add, network6-subnet-add Commands . . . . . . . . . . . . . . . . . 28715.11.16The network4-subnet-del, network6-subnet-del Commands . . . . . . . . . . . . . . . . . . 288
15.12 BOOTP support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28915.12.1 BOOTP Hooks Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
15.13 class_cmds: Class Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29015.13.1 The class-add Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29015.13.2 The class-update Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29115.13.3 The class-del Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29115.13.4 The class-list Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29215.13.5 The class-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
15.14 cb_cmds: Configuration Backend Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29315.14.1 Commands Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29315.14.2 Control Commands for DHCP Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29415.14.3 Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29415.14.4 remote-server4-del, remote-server6-del commands . . . . . . . . . . . . . . . . . . . . . . 29515.14.5 remote-server4-get, remote-server6-get commands . . . . . . . . . . . . . . . . . . . . . . 29615.14.6 remote-server4-get-all, remote-server6-get-all commands . . . . . . . . . . . . . . . . . . . 29715.14.7 remote-server4-set, remote-server6-set commands . . . . . . . . . . . . . . . . . . . . . . . 29715.14.8 The remote-global-parameter4-del, remote-global-parameter6-del Commands . . . . . . . . 29815.14.9 The remote-global-parameter4-get, remote-global-parameter6-get Commands . . . . . . . . 29815.14.10The remote-global-parameter4-get-all, remote-global-parameter6-get-all Commands . . . . 30015.14.11The remote-global-parameter4-set, remote-global-parameter6-set Commands . . . . . . . . 30115.14.12The remote-network4-del, remote-network6-del Commands . . . . . . . . . . . . . . . . . 30215.14.13The remote-network4-get, remote-network6-get Commands . . . . . . . . . . . . . . . . . 30215.14.14The remote-network4-list, remote-network6-list Commands . . . . . . . . . . . . . . . . . 30315.14.15The remote-network4-set, remote-network6-set Commands . . . . . . . . . . . . . . . . . . 30415.14.16The remote-option-def4-del, remote-option-def6-del Commands . . . . . . . . . . . . . . . 30515.14.17The remote-option-def4-get, remote-option-def6-get Commands . . . . . . . . . . . . . . . 30515.14.18The remote-option-def4-get-all, remote-option-def6-get-all Commands . . . . . . . . . . . 30615.14.19The remote-option-def4-set, remote-option-def6-set Commands . . . . . . . . . . . . . . . 30715.14.20The remote-option4-global-del, remote-option6-global-del Commands . . . . . . . . . . . . 30715.14.21The remote-option4-global-get, remote-option6-global-get Commands . . . . . . . . . . . . 30815.14.22The remote-option4-global-get-all, remote-option6-global-get-all Commands . . . . . . . . 30815.14.23The remote-option4-global-set, remote-option6-global-set Commands . . . . . . . . . . . . 30915.14.24The remote-option4-network-del, remote-option6-network-del Commands . . . . . . . . . . 310
vii
15.14.25The remote-option4-network-set, remote-option6-network-set Commands . . . . . . . . . . 31015.14.26The remote-option6-pd-pool-del Command . . . . . . . . . . . . . . . . . . . . . . . . . . 31115.14.27The remote-option6-pd-pool-set Command . . . . . . . . . . . . . . . . . . . . . . . . . . 31215.14.28The remote-option4-pool-del, remote-option6-pool-del Commands . . . . . . . . . . . . . . 31215.14.29The remote-option4-pool-set, remote-option6-pool-set Commands . . . . . . . . . . . . . . 31315.14.30The remote-option4-subnet-del, remote-option6-subnet-del Commands . . . . . . . . . . . 31415.14.31The remote-option4-subnet-set, remote-option6-subnet-set Commands . . . . . . . . . . . . 31415.14.32The remote-subnet4-del-by-id, remote-subnet6-del-by-id Commands . . . . . . . . . . . . . 31515.14.33The remote-subnet4-del-by-prefix, remote-subnet6-del-by-prefix Commands . . . . . . . . 31515.14.34The remote-subnet4-get-by-id, remote-subnet6-get-by-id Commands . . . . . . . . . . . . . 31615.14.35The remote-subnet4-get-by-prefix, remote-subnet6-get-by-prefix Commands . . . . . . . . 31615.14.36The remote-subnet4-list, remote-subnet6-list Commands . . . . . . . . . . . . . . . . . . . 31615.14.37The remote-subnet4-set, remote-subnet6-set Commands . . . . . . . . . . . . . . . . . . . 318
15.15 ha: High Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31915.15.1 Supported Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32015.15.2 Clocks on Active Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32015.15.3 Server States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32115.15.4 Scope Transition in a Partner-Down Case . . . . . . . . . . . . . . . . . . . . . . . . . . . 32315.15.5 Load-Balancing Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32315.15.6 Load Balancing with Advanced Classification . . . . . . . . . . . . . . . . . . . . . . . . . 32615.15.7 Hot-Standby Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32715.15.8 Lease Information Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32815.15.9 Controlling Lease-Page Size Limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33015.15.10Timeouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33015.15.11Pausing the HA State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33115.15.12Control Agent Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33315.15.13Controlled Shutdown and Maintenance of DHCP servers . . . . . . . . . . . . . . . . . . . 33415.15.14Upgrading from Older HA Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33515.15.15Control Commands for High Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
The ha-sync Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335The ha-scopes Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336The ha-continue Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336The ha-heartbeat Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337The status-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338The ha-maintenance-start Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339The ha-maintenance-cancel Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339The ha-maintenance-notify Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
15.16 stat_cmds: Supplemental Statistics Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33915.16.1 The stat-lease4-get, stat-lease6-get Commands . . . . . . . . . . . . . . . . . . . . . . . . 340
15.17 radius: RADIUS Server Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34315.17.1 Compilation and Installation of the RADIUS Hook . . . . . . . . . . . . . . . . . . . . . . 34315.17.2 RADIUS Hook Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
15.18 host_cache: Caching Host Reservations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35015.18.1 The cache-flush Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35115.18.2 The cache-clear Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35115.18.3 The cache-size Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35115.18.4 The cache-write Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35115.18.5 The cache-load Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35215.18.6 The cache-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35215.18.7 The cache-get-by-id Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35215.18.8 The cache-insert Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35315.18.9 The cache-remove Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
15.19 User Contexts in Hooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
viii
16 Statistics 35516.1 Statistics Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35516.2 Statistics Lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35516.3 Commands for Manipulating Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
16.3.1 The statistic-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35616.3.2 The statistic-reset Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35716.3.3 The statistic-remove Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35716.3.4 The statistic-get-all Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35716.3.5 The statistic-reset-all Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35816.3.6 The statistic-remove-all Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35816.3.7 The statistic-sample-age-set Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35816.3.8 The statistic-sample-age-set-all Command . . . . . . . . . . . . . . . . . . . . . . . . . . . 35916.3.9 The statistic-sample-count-set Command . . . . . . . . . . . . . . . . . . . . . . . . . . . 35916.3.10 The statistic-sample-count-set-all Command . . . . . . . . . . . . . . . . . . . . . . . . . . 359
16.4 Time series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
17 Management API 36117.1 Data Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36117.2 Using the Control Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36317.3 Commands Supported by Both the DHCPv4 and DHCPv6 Servers . . . . . . . . . . . . . . . . . . . 364
17.3.1 The build-report Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36417.3.2 The config-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36417.3.3 The config-reload Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36417.3.4 The config-test Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36417.3.5 The config-write Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36517.3.6 The leases-reclaim Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36517.3.7 The libreload Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36617.3.8 The list-commands Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36617.3.9 The config-set Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36617.3.10 The shutdown Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36717.3.11 The dhcp-disable Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36717.3.12 The dhcp-enable Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36817.3.13 The status-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36817.3.14 The server-tag-get Command: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36817.3.15 The config-backend-pull Command: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36817.3.16 The version-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368
17.4 Commands Supported by the D2 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36917.5 Commands Supported by the Control Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
18 Logging 37118.1 Logging Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
18.1.1 Loggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371The name (string) Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371The severity (string) Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375The debuglevel (integer) Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375The output_options (list) Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
The output (string) Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375The flush (true of false) Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375The maxsize (integer) Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376The maxver (integer) Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376The pattern (string) Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376
18.1.2 Logging Message Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376Example Logger Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
18.1.3 Logging During Kea Startup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
ix
19 The Kea Shell 38119.1 Overview of the Kea Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38119.2 Shell Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
20 YANG/NETCONF Support 38320.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38320.2 Installing NETCONF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
20.2.1 Installing NETCONF on Ubuntu 18.04 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38320.2.2 Installing NETCONF on CentOS 7.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
20.3 Quick Sysrepo Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38320.4 Supported YANG Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38520.5 Using the NETCONF Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38620.6 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38620.7 A kea-netconf Configuration Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38820.8 Starting and Stopping the NETCONF Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39020.9 A Step-by-Step NETCONF Agent Operation Example . . . . . . . . . . . . . . . . . . . . . . . . . 390
20.9.1 Setup of NETCONF Agent Operation Example . . . . . . . . . . . . . . . . . . . . . . . . 39020.9.2 Error Handling in NETCONF Operation Example . . . . . . . . . . . . . . . . . . . . . . . 39220.9.3 NETCONF Operation Example with Two Pools . . . . . . . . . . . . . . . . . . . . . . . . 39420.9.4 NETCONF Operation Example with Two Subnets . . . . . . . . . . . . . . . . . . . . . . . 39420.9.5 NETCONF Operation Example with Logging . . . . . . . . . . . . . . . . . . . . . . . . . 395
21 Monitoring Kea with Stork 39721.1 Kea statistics in Grafana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397
22 API Reference 39922.1 build-report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40022.2 cache-clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40122.3 cache-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40122.4 cache-get-by-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40222.5 cache-insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40222.6 cache-load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40322.7 cache-remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40422.8 cache-size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40522.9 cache-write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40522.10 class-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40622.11 class-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40722.12 class-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40722.13 class-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40822.14 class-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40922.15 config-backend-pull . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40922.16 config-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41022.17 config-reload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41122.18 config-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41122.19 config-test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41222.20 config-write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41322.21 dhcp-disable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41322.22 dhcp-enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41422.23 ha-continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41422.24 ha-heartbeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41522.25 ha-maintenance-cancel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41522.26 ha-maintenance-notify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41622.27 ha-maintenance-start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41722.28 ha-scopes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
x
22.29 ha-sync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41822.30 lease4-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41922.31 lease4-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41922.32 lease4-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42022.33 lease4-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42122.34 lease4-get-by-client-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42122.35 lease4-get-by-hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42222.36 lease4-get-by-hw-address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42222.37 lease4-get-page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42322.38 lease4-resend-ddns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42422.39 lease4-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42422.40 lease4-wipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42522.41 lease6-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42522.42 lease6-bulk-apply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42622.43 lease6-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42822.44 lease6-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42822.45 lease6-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42922.46 lease6-get-by-duid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43022.47 lease6-get-by-hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43122.48 lease6-get-page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43122.49 lease6-resend-ddns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43222.50 lease6-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43222.51 lease6-wipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43322.52 leases-reclaim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43422.53 libreload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43422.54 list-commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43522.55 network4-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43522.56 network4-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43722.57 network4-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43722.58 network4-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43822.59 network4-subnet-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43922.60 network4-subnet-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44022.61 network6-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44022.62 network6-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44122.63 network6-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44222.64 network6-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44322.65 network6-subnet-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44422.66 network6-subnet-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44422.67 remote-global-parameter4-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44522.68 remote-global-parameter4-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44622.69 remote-global-parameter4-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44722.70 remote-global-parameter4-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44822.71 remote-global-parameter6-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44922.72 remote-global-parameter6-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45022.73 remote-global-parameter6-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45122.74 remote-global-parameter6-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45222.75 remote-network4-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45322.76 remote-network4-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45322.77 remote-network4-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45422.78 remote-network4-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45522.79 remote-network6-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45622.80 remote-network6-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45722.81 remote-network6-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45822.82 remote-network6-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
xi
22.83 remote-option-def4-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46022.84 remote-option-def4-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46122.85 remote-option-def4-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46222.86 remote-option-def4-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46322.87 remote-option-def6-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46322.88 remote-option-def6-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46422.89 remote-option-def6-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46522.90 remote-option-def6-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46622.91 remote-option4-global-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46722.92 remote-option4-global-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46822.93 remote-option4-global-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46922.94 remote-option4-global-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47022.95 remote-option4-network-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47122.96 remote-option4-network-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47222.97 remote-option4-pool-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47322.98 remote-option4-pool-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47422.99 remote-option4-subnet-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47522.100remote-option4-subnet-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47622.101remote-option6-global-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47722.102remote-option6-global-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47722.103remote-option6-global-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47822.104remote-option6-global-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47922.105remote-option6-network-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48022.106remote-option6-network-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48122.107remote-option6-pd-pool-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48222.108remote-option6-pd-pool-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48322.109remote-option6-pool-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48422.110remote-option6-pool-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48522.111remote-option6-subnet-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48622.112remote-option6-subnet-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48722.113remote-server4-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48822.114remote-server4-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48922.115remote-server4-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49022.116remote-server4-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49122.117remote-server6-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49222.118remote-server6-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49222.119remote-server6-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49322.120remote-server6-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49422.121remote-subnet4-del-by-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49522.122remote-subnet4-del-by-prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49622.123remote-subnet4-get-by-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49722.124remote-subnet4-get-by-prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49722.125remote-subnet4-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49822.126remote-subnet4-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49922.127remote-subnet6-del-by-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50022.128remote-subnet6-del-by-prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50122.129remote-subnet6-get-by-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50222.130remote-subnet6-get-by-prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50322.131remote-subnet6-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50422.132remote-subnet6-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50522.133reservation-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50622.134reservation-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50722.135reservation-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50822.136reservation-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 509
xii
22.137reservation-get-by-hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50922.138reservation-get-page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51022.139server-tag-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51022.140shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51122.141stat-lease4-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51222.142stat-lease6-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51222.143statistic-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51322.144statistic-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51422.145statistic-remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51522.146statistic-remove-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51522.147statistic-reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51622.148statistic-reset-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51722.149statistic-sample-age-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51722.150statistic-sample-age-set-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51822.151statistic-sample-count-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51922.152statistic-sample-count-set-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51922.153status-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52022.154subnet4-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52122.155subnet4-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52222.156subnet4-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52222.157subnet4-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52322.158subnet4-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52422.159subnet6-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52522.160subnet6-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52622.161subnet6-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52622.162subnet6-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52722.163subnet6-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52822.164version-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529
23 Manual Pages 53123.1 kea-dhcp4 - DHCPv4 server in Kea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 531
23.1.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53123.1.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53123.1.3 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53123.1.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53123.1.5 Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53223.1.6 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53223.1.7 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 532
23.2 kea-dhcp6 - DHCPv6 server in Kea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53223.2.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53223.2.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53223.2.3 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53223.2.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53323.2.5 Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53323.2.6 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53323.2.7 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
23.3 kea-ctrl-agent - Control Agent process in Kea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53323.3.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53323.3.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53423.3.3 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53423.3.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53423.3.5 Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53423.3.6 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53423.3.7 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
xiii
23.4 keactrl - Shell script for managing Kea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53523.4.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53523.4.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53523.4.3 Configuration File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53523.4.4 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53523.4.5 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53623.4.6 Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53623.4.7 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536
23.5 kea-admin - Shell script for managing Kea databases . . . . . . . . . . . . . . . . . . . . . . . . . . 53623.5.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53623.5.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53623.5.3 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53623.5.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53723.5.5 Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53723.5.6 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537
23.6 kea-dhcp-ddns - DHCP-DDNS process in Kea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53823.6.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53823.6.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53823.6.3 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53823.6.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53823.6.5 Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53823.6.6 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53923.6.7 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
23.7 kea-lfc - Lease File Cleanup process in Kea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53923.7.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53923.7.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53923.7.3 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53923.7.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54023.7.5 Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54023.7.6 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54023.7.7 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 540
23.8 kea-shell - Text client for Control Agent process . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54023.8.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54023.8.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54123.8.3 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54123.8.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54123.8.5 Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54123.8.6 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54123.8.7 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 542
23.9 kea-netconf - NETCONF agent for Kea environment . . . . . . . . . . . . . . . . . . . . . . . . . . 54223.9.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54223.9.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54223.9.3 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54223.9.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54223.9.5 Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54223.9.6 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54323.9.7 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
23.10 perfdhcp - DHCP benchmarking tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54323.10.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54323.10.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54323.10.3 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54423.10.4 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54423.10.5 DHCPv4-Only Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54623.10.6 DHCPv6-Only Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
xiv
23.10.7 Template-Related Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54723.10.8 Options Controlling a Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54723.10.9 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54723.10.10Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54823.10.11Exit Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54823.10.12Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54823.10.13History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54823.10.14See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
24 Kea Messages Manual 54924.1 ALLOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54924.2 ASIODNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55724.3 BOOTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56024.4 COMMAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56124.5 CTRL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56324.6 DATABASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56424.7 DCTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56624.8 DHCP4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56924.9 DHCP6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58624.10 DHCPSRV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60324.11 DHCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63024.12 EVAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64024.13 FLEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64424.14 HA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64524.15 HOOKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65324.16 HOSTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65724.17 HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66324.18 LEASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66524.19 LFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66724.20 LOGIMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66824.21 LOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66824.22 MYSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67124.23 NETCONF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68424.24 STAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68824.25 USER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 689
25 Acknowledgments 691
26 Indices and tables 693
xv
xvi
Kea Administrator Reference Manual Documentation, Release 1.7.7
Kea is an open source implementation of the Dynamic Host Con-figuration Protocol (DHCP) servers, developed and maintainedby Internet Systems Consortium (ISC).
This is the reference guide for Kea version 1.7.7. Links to themost up-to-date version of this document (in PDF, HTML, andplain text formats), along with other documents for Kea, can befound in ISC’s Knowledgebase.
CONTENTS 1
https://kb.isc.org/docs/kea-administrator-reference-manual
Kea Administrator Reference Manual Documentation, Release 1.7.7
2 CONTENTS
CHAPTER
ONE
INTRODUCTION
Kea is the next generation of DHCP software developed by ISC. It supports both DHCPv4 and DHCPv6 protocolsalong with their extensions, e.g. prefix delegation and dynamic updates to DNS.
This guide covers Kea version 1.7.7.
For information about supported platforms see Supported platforms.
1.1 Supported platforms
In general, this version of Kea will build and run on any POSIX-compliant system with a C++ compiler (with C++11support), the Botan cryptographic library, the log4cplus logging library and the Boost system library.
The Kea build has been checked with GCC g++ 4.8.5 and some later versions, and Clang 800.0.38 and some laterversions.
ISC regularly tests Kea on many operating systems and architectures, but lacks the resources to test all of them.Consequently, ISC is only able to offer support on a “best effort” basis for some.
1.1.1 Regularly tested platforms
As of January, 2020, Kea is officially supported on CentOS, Fedora, Ubuntu, Debian, and FreeBSD systems. Kea-1.7.7builds have been tested on:
• CentOS Linux — 7, 8
• Fedora — 30, 31
• Ubuntu — 16.04, 18.04, 19.04
• Debian GNU/Linux — 9, 10
There are currently no plans to port Kea to Windows systems.
1.1.2 Best effort
The following are platforms on which Kea is known to build and run. ISC makes every effort to fix bugs on theseplatforms, but may be unable to do so quickly due to lack of hardware, less familiarity on the part of engineering staff,and other constraints.
• FreeBSD — 11.3, 12.0
• Alpine Linux — 3.10
• macOS — 10.13, 10.14
3
Kea Administrator Reference Manual Documentation, Release 1.7.7
1.1.3 Community maintained
These systems may not all have the required dependencies for building Kea easily available, although it will be possiblein many cases to compile those directly from source. The community and interested parties may wish to help withmaintenance, and we welcome patch contributions, although we cannot guarantee that we will accept them. Allcontributions will be assessed against the risk of adverse effect on officially supported platforms.
Platforms past or close to their respective EOL dates, such as:
• Ubuntu 14.04, 18.10
• CentOS 6
• Debian 8 (Jessie)
• FreeBSD 10.x
1.1.4 Unsupported platforms
These are platforms on which Kea 1.7+ is known not to build or run:
• Windows (all versions)
• Windows Server (all versions)
• Any platform with OpenSSL 1.0.1 or earlier, which does not also have Botan as an alternative
• Any platform with log4cplus version 1.0.2 or earlier.
1.2 Required Software at Run-Time
Running Kea uses various extra software packages which may not be provided in the default installation of someoperating systems, nor in the standard package collections. You may need to install this required software separately.(For the build requirements, also see Build Requirements.)
• Kea supports two cryptographic libraries: Botan and OpenSSL. Only one of them is required to be installedduring compilation. Kea uses the Botan library for C++ (https://botan.randombit.net/), version 2.0 or later. Notethat support for Botan versions earlier than 2.0 was removed in Kea 1.7.0 and later. As an alternative to Botan,Kea can use the OpenSSL cryptographic library (https://www.openssl.org/), version 1.0.2 or later.
• Kea uses the log4cplus C++ logging library (https://sourceforge.net/p/log4cplus/wiki/Home/). It requireslog4cplus version 1.0.3 or later.
• Kea requires the Boost system library (https://www.boost.org/). Building with the header-only version of Boostis no longer recommended.
Some optional features of Kea have additional dependencies.
• To store lease information in a MySQL database, Kea requires MySQL headers and libraries. This is an optionaldependency; Kea can be built without MySQL support.
• To store lease information in a PostgreSQL database, Kea requires PostgreSQL headers and libraries. This is anoptional dependency; Kea can be built without PostgreSQL support.
• To store lease information in a Cassandra database (CQL), Kea requires Cassandra headers and libraries. Thisis an optional dependency; Kea can be built without Cassandra support.
• Integration with RADIUS is provided in Kea via the hooks library available to our paid support customers. Useof this library requires the FreeRadius-client library to be present on the system where Kea is running. This isan optional dependency; Kea can be built without RADIUS support.
4 Chapter 1. Introduction
https://botan.randombit.net/https://www.openssl.org/https://sourceforge.net/p/log4cplus/wiki/Home/https://www.boost.org/
Kea Administrator Reference Manual Documentation, Release 1.7.7
• Kea provides a NETCONF interface with the kea-netconf agent. This Kea module is built optionally and requiresSysrepo software when used. Building Kea with NETCONF support requires many dependencies to be installed,which are described in more detail in Installing NETCONF.
1.3 Kea Software
Kea is modular. Part of this modularity is accomplished using multiple cooperating processes which, together, providethe server functionality. The following software is included with Kea:
• keactrl — This tool starts, stops, reconfigures, and reports status for the Kea servers.
• kea-dhcp4 — The DHCPv4 server process. This process responds to DHCPv4 queries from clients.
• kea-dhcp6 — The DHCPv6 server process. This process responds to DHCPv6 queries from clients.
• kea-dhcp-ddns — The DHCP Dynamic DNS process. This process acts as an intermediary between theDHCP servers and DNS servers. It receives name update requests from the DHCP servers and sends DNSupdate messages to the DNS servers.
• kea-admin — A useful tool for database backend maintenance (creating a new database, checking versions,upgrading, etc.).
• kea-lfc — This process removes redundant information from the files used to provide persistent storage forthe memfile database backend. While it can be run standalone, it is normally run as and when required by theKea DHCP servers.
• kea-ctrl-agent — Kea Control Agent (CA) is a daemon that exposes a RESTful control interface formanaging Kea servers.
• kea-netconf - kea-netconf is an agent that provides a YANG/NETCONF interface for the Kea environment.
• kea-shell — This simple text client uses the REST interface to connect to the Kea Control Agent.
• perfdhcp— A DHCP benchmarking tool which simulates multiple clients to test both DHCPv4 and DHCPv6server performance.
The tools and modules are covered in full detail in this guide. In addition, manual pages are also provided in thedefault installation.
Kea also provides C++ libraries and programmer interfaces for DHCP. These include detailed developer documentationand code examples.
1.3. Kea Software 5
Kea Administrator Reference Manual Documentation, Release 1.7.7
6 Chapter 1. Introduction
CHAPTER
TWO
QUICK START
This section describes the basic steps needed to get Kea up and running. For further details, full customizations, andtroubleshooting, see the respective chapters elsewhere in this Kea Administrator Reference Manual (ARM).
2.1 Quick Start Guide for using tarball
1. Install required run-time and build dependencies. See Build Requirements for details.
2. Download the Kea source tarball from the ISC.org downloads page or the ISC downloads.isc.org.
3. Extract the ta