ftp.arnes.siftp.arnes.si/mirrors/ftp.isc.org/kea/1.7.7/doc/kea-arm.pdfCONTENTS 1 Introduction 3 1.1...

711
Kea Administrator Reference Manual Documentation Release 1.7.7 Internet Systems Consortium Apr 27, 2020

Transcript of ftp.arnes.siftp.arnes.si/mirrors/ftp.isc.org/kea/1.7.7/doc/kea-arm.pdfCONTENTS 1 Introduction 3 1.1...

  • 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