801
Kea Administrator Reference Manual Documentation Release 1.9.5-git Internet Systems Consortium Feb 24, 2021

media.readthedocs.orgContents 1 Introduction 3 1.1 Supported platforms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 1.1.1 Regularly tested

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

  • Kea Administrator Reference ManualDocumentation

    Release 1.9.5-git

    Internet Systems Consortium

    Feb 24, 2021

  • Contents

    1 Introduction 31.1 Supported platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    1.1.1 Regularly tested platforms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31.1.2 Best effort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.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 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123.4 Installation From Source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.4.6 Cross-Building . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    3.5 DHCP Database Installation and Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.5.1 Building with MySQL Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.5.2 Building with PostgreSQL support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.5.3 Building with CQL (Cassandra) Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

    3.6 Hammer Building Tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.7 Running Kea From a 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

    i

  • 4.3.1 Memfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.3.1.1 Upgrading Memfile Lease Files from an Earlier Version of Kea . . . . . . . . . . . 22

    4.3.2 MySQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.3.2.1 First-Time Creation of the MySQL Database . . . . . . . . . . . . . . . . . . . . . 234.3.2.2 Upgrading a MySQL Database from an Earlier Version of Kea . . . . . . . . . . . 244.3.2.3 Simple MySQL tweak to gain performance . . . . . . . . . . . . . . . . . . . . . . 25

    4.3.3 PostgreSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.3.3.1 First-Time Creation of the PostgreSQL Database . . . . . . . . . . . . . . . . . . . 254.3.3.2 Initialize the PostgreSQL Database Using kea-admin . . . . . . . . . . . . . . . . 274.3.3.3 Upgrading a PostgreSQL Database from an Earlier Version of Kea . . . . . . . . . 27

    4.3.4 Cassandra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.3.4.1 First-Time Creation of the Cassandra Database . . . . . . . . . . . . . . . . . . . . 284.3.4.2 Upgrading a Cassandra Database from an Earlier Version of Kea . . . . . . . . . . 28

    4.3.5 Using Read-Only Databases with Host Reservations . . . . . . . . . . . . . . . . . . . . . . 294.3.6 Limitations Related to the Use of SQL Databases . . . . . . . . . . . . . . . . . . . . . . . 29

    4.3.6.1 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 (version before 1.9.5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477.4 Secure Connections (since version 1.9.5) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497.5 Starting the Control Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507.6 Connecting to the Control Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

    8 The DHCPv4 Server 518.1 Starting and Stopping the DHCPv4 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 518.2 DHCPv4 Server Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

    8.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 528.2.2 Lease Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

    8.2.2.1 Memfile - Basic Storage for Leases . . . . . . . . . . . . . . . . . . . . . . . . . . 558.2.2.2 Lease Database Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 568.2.2.3 Cassandra-Specific Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    8.2.3 Hosts Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598.2.3.1 DHCPv4 Hosts Database Configuration . . . . . . . . . . . . . . . . . . . . . . . 598.2.3.2 Using Read-Only Databases for Host Reservations with DHCPv4 . . . . . . . . . . 60

    8.2.4 Interface Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

    ii

  • 8.2.5 Issues with Unicast Responses to DHCPINFORM . . . . . . . . . . . . . . . . . . . . . . . 638.2.6 IPv4 Subnet Identifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648.2.7 IPv4 Subnet Prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 648.2.8 Configuration of IPv4 Address Pools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 658.2.9 Sending T1 (Option 58) and T2 (Option 59) . . . . . . . . . . . . . . . . . . . . . . . . . . 668.2.10 Standard DHCPv4 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678.2.11 Custom DHCPv4 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 758.2.12 DHCPv4 Private Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788.2.13 DHCPv4 Vendor-Specific Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 808.2.14 Nested DHCPv4 Options (Custom Option Spaces) . . . . . . . . . . . . . . . . . . . . . . 838.2.15 Unspecified Parameters for DHCPv4 Option Configuration . . . . . . . . . . . . . . . . . . 848.2.16 Stateless Configuration of DHCPv4 Clients . . . . . . . . . . . . . . . . . . . . . . . . . . 858.2.17 Client Classification in DHCPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

    8.2.17.1 Setting Fixed Fields in Classification . . . . . . . . . . . . . . . . . . . . . . . . . 868.2.17.2 Using Vendor Class Information in Classification . . . . . . . . . . . . . . . . . . 878.2.17.3 Defining and Using Custom Classes . . . . . . . . . . . . . . . . . . . . . . . . . 888.2.17.4 Required Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

    8.2.18 DDNS for DHCPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 898.2.18.1 DHCP-DDNS Server Connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . 928.2.18.2 When Does the kea-dhcp4 Server Generate a DDNS Request? . . . . . . . . . . . . 928.2.18.3 kea-dhcp4 Name Generation for DDNS Update Requests . . . . . . . . . . . . . . 948.2.18.4 Sanitizing Client Host Name and FQDN Names . . . . . . . . . . . . . . . . . . . 95

    8.2.19 Next Server (siaddr) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 968.2.20 Echoing Client-ID (RFC 6842) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 978.2.21 Using Client Identifier and Hardware Address . . . . . . . . . . . . . . . . . . . . . . . . . 978.2.22 Authoritative DHCPv4 Server Behavior . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998.2.23 DHCPv4-over-DHCPv6: DHCPv4 Side . . . . . . . . . . . . . . . . . . . . . . . . . . . . 998.2.24 Sanity Checks in DHCPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1008.2.25 Storing Extended Lease Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1018.2.26 Multi-Threading Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1018.2.27 Multi-Threading Settings in Different Backends . . . . . . . . . . . . . . . . . . . . . . . . 1028.2.28 IPv6-only Preferred Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1028.2.29 Lease Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

    8.3 Host Reservation in DHCPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1048.3.1 Address Reservation Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1058.3.2 Conflicts in DHCPv4 Reservations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1068.3.3 Reserving a Hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1068.3.4 Including Specific DHCPv4 Options in Reservations . . . . . . . . . . . . . . . . . . . . . 1078.3.5 Reserving Next Server, Server Hostname, and Boot File Name . . . . . . . . . . . . . . . . 1088.3.6 Reserving Client Classes in DHCPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1098.3.7 Storing Host Reservations in MySQL, PostgreSQL, or Cassandra . . . . . . . . . . . . . . . 1108.3.8 Fine-Tuning DHCPv4 Host Reservation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1108.3.9 Global Reservations in DHCPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1158.3.10 Pool Selection with Client Class Reservations . . . . . . . . . . . . . . . . . . . . . . . . . 1178.3.11 Subnet Selection with Client Class Reservations . . . . . . . . . . . . . . . . . . . . . . . . 1178.3.12 Multiple Reservations for the Same IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

    8.4 Shared Networks in DHCPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1208.4.1 Local and Relayed Traffic in Shared Networks . . . . . . . . . . . . . . . . . . . . . . . . . 1238.4.2 Client Classification in Shared Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1258.4.3 Host Reservations in Shared Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

    8.5 Server Identifier in DHCPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1278.6 How the DHCPv4 Server Selects a Subnet for the Client . . . . . . . . . . . . . . . . . . . . . . . . 128

    8.6.1 Using a Specific Relay Agent for a Subnet . . . . . . . . . . . . . . . . . . . . . . . . . . . 1288.6.2 Segregating IPv4 Clients in a Cable Network . . . . . . . . . . . . . . . . . . . . . . . . . 129

    iii

  • 8.7 Duplicate Addresses (DHCPDECLINE Support) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1308.8 Statistics in the DHCPv4 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1308.9 Management API for the DHCPv4 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1338.10 User Contexts in IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1358.11 Supported DHCP Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

    8.11.1 Known RFC Violations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1368.12 DHCPv4 Server Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1368.13 Kea DHCPv4 Server Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1378.14 Configuration Backend in DHCPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

    8.14.1 Supported Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1378.14.2 Enabling Configuration Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

    9 The DHCPv6 Server 1419.1 Starting and Stopping the DHCPv6 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1419.2 DHCPv6 Server Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

    9.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1429.2.2 Lease Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144

    9.2.2.1 Memfile - Basic Storage for Leases . . . . . . . . . . . . . . . . . . . . . . . . . . 1449.2.2.2 Lease Database Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1459.2.2.3 Cassandra-Specific Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

    9.2.3 Hosts Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1479.2.3.1 DHCPv6 Hosts Database Configuration . . . . . . . . . . . . . . . . . . . . . . . 1489.2.3.2 Using Read-Only Databases for Host Reservations with DHCPv6 . . . . . . . . . . 149

    9.2.4 Interface Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1509.2.5 IPv6 Subnet Identifier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1519.2.6 IPv6 Subnet Prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1519.2.7 Unicast Traffic Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1529.2.8 Configuration of IPv6 Address Pools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1529.2.9 Subnet and Prefix Delegation Pools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1549.2.10 Prefix Exclude Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1549.2.11 Standard DHCPv6 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1559.2.12 Common Softwire46 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

    9.2.12.1 Softwire46 Container Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1619.2.12.2 S46 Rule Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1629.2.12.3 S46 BR Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1629.2.12.4 S46 DMR Option . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1639.2.12.5 S46 IPv4/IPv6 Address Binding Option . . . . . . . . . . . . . . . . . . . . . . . . 1639.2.12.6 S46 Port Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

    9.2.13 Custom DHCPv6 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1639.2.14 DHCPv6 Vendor-Specific Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1669.2.15 Nested DHCPv6 Options (Custom Option Spaces) . . . . . . . . . . . . . . . . . . . . . . 1679.2.16 Unspecified Parameters for DHCPv6 Option Configuration . . . . . . . . . . . . . . . . . . 1699.2.17 Controlling the Values Sent for T1 and T2 Times . . . . . . . . . . . . . . . . . . . . . . . 1699.2.18 IPv6 Subnet Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1709.2.19 Rapid Commit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1719.2.20 DHCPv6 Relays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1719.2.21 Relay-Supplied Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1729.2.22 Client Classification in DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

    9.2.22.1 Defining and Using Custom Classes . . . . . . . . . . . . . . . . . . . . . . . . . 1739.2.22.2 Required Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

    9.2.23 DDNS for DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1759.2.23.1 DHCP-DDNS Server Connectivity . . . . . . . . . . . . . . . . . . . . . . . . . . 1789.2.23.2 When Does the kea-dhcp6 Server Generate a DDNS Request? . . . . . . . . . . . . 1799.2.23.3 kea-dhcp6 Name Generation for DDNS Update Requests . . . . . . . . . . . . . . 180

    iv

  • 9.2.23.4 Sanitizing Client FQDN Names . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1819.2.24 DHCPv4-over-DHCPv6: DHCPv6 Side . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1829.2.25 Sanity Checks in DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849.2.26 Storing Extended Lease Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1849.2.27 Multi-Threading Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1859.2.28 Multi-Threading Settings in Different Backends . . . . . . . . . . . . . . . . . . . . . . . . 1869.2.29 Lease Caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

    9.3 Host Reservation in DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1879.3.1 Address/Prefix Reservation Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1899.3.2 Conflicts in DHCPv6 Reservations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1899.3.3 Reserving a Hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1909.3.4 Including Specific DHCPv6 Options in Reservations . . . . . . . . . . . . . . . . . . . . . 1919.3.5 Reserving Client Classes in DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1929.3.6 Storing Host Reservations in MySQL, PostgreSQL, or Cassandra . . . . . . . . . . . . . . . 1939.3.7 Fine-Tuning DHCPv6 Host Reservation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1939.3.8 Global Reservations in DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1989.3.9 Pool Selection with Client Class Reservations . . . . . . . . . . . . . . . . . . . . . . . . . 1999.3.10 Subnet Selection with Client Class Reservations . . . . . . . . . . . . . . . . . . . . . . . . 2009.3.11 Multiple Reservations for the same IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201

    9.4 Shared Networks in DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2039.4.1 Local and Relayed Traffic in Shared Networks . . . . . . . . . . . . . . . . . . . . . . . . . 2069.4.2 Client Classification in Shared Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2089.4.3 Host Reservations in Shared Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

    9.5 Server Identifier in DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2109.6 DHCPv6 Data Directory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2139.7 Stateless DHCPv6 (Information-Request Message) . . . . . . . . . . . . . . . . . . . . . . . . . . . 2139.8 Support for RFC 7550 (now part of RFC 8415) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2149.9 Using a Specific Relay Agent for a Subnet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2149.10 Segregating IPv6 Clients in a Cable Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2159.11 MAC/Hardware Addresses in DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2169.12 Duplicate Addresses (DECLINE Support) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2179.13 Statistics in the DHCPv6 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2189.14 Management API for the DHCPv6 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2229.15 User Contexts in IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2239.16 Supported DHCPv6 Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2249.17 DHCPv6 Server Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2259.18 Kea DHCPv6 Server Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2259.19 Configuration Backend in DHCPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

    9.19.1 Supported Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2269.19.2 Enabling Configuration Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227

    10 Database Connectivity 229

    11 Lease Expiration 23111.1 Lease Reclamation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23111.2 Lease Reclamation Configuration Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23211.3 Configuring Lease Reclamation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23211.4 Configuring Lease Affinity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23411.5 Reclaiming Expired Leases via Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

    12 Congestion Handling 23712.1 What is Congestion? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23712.2 Configuring Congestion Handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

    13 The DHCP-DDNS Server 241

    v

  • 13.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24113.1.1 DNS Server Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24113.1.2 Conflict Resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24213.1.3 Dual-Stack Environments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242

    13.2 Starting and Stopping the DHCP-DDNS Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24213.3 Configuring the DHCP-DDNS Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243

    13.3.1 Global Server Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24313.3.2 Management API for the D2 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24413.3.3 TSIG Key List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24513.3.4 Forward DDNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

    13.3.4.1 Adding Forward DDNS Domains . . . . . . . . . . . . . . . . . . . . . . . . . . . 24713.3.4.1.1 Adding Forward DNS Servers . . . . . . . . . . . . . . . . . . . . . . . 247

    13.3.5 Reverse DDNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24813.3.5.1 Adding Reverse DDNS Domains . . . . . . . . . . . . . . . . . . . . . . . . . . . 248

    13.3.5.1.1 Adding Reverse DNS Servers . . . . . . . . . . . . . . . . . . . . . . . . 24913.3.6 User Contexts in DDNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25013.3.7 Example DHCP-DDNS Server Configuration . . . . . . . . . . . . . . . . . . . . . . . . . 250

    13.4 DHCP-DDNS Server Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25213.5 Supported Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252

    14 The LFC Process 25314.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25314.2 Command-Line Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253

    15 Client Classification 25515.1 Client Classification Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25515.2 Built-in Client Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25715.3 Using Expressions in Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257

    15.3.1 Logical operators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26015.3.2 Substring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26015.3.3 Concat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26015.3.4 Ifelse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26015.3.5 Hexstring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261

    15.4 Configuring Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26115.5 Using Static Host Reservations In Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26215.6 Configuring Subnets With Class Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26215.7 Configuring Pools With Class Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26415.8 Using Classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26515.9 Classes and Hooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26515.10 Debugging Expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

    16 Hooks Libraries 26716.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26716.2 Installing Hook Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26816.3 Configuring Hooks Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26916.4 Available Hooks Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27016.5 user_chk: Checking User Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27316.6 legal_log: Forensic Logging Hooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

    16.6.1 Log File Naming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27416.6.2 DHCPv4 Log Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27516.6.3 DHCPv6 Log Entries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27616.6.4 Configuring the Forensic Log Hooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27816.6.5 Database Backend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

    16.7 flex_id: Flexible Identifiers for Host Reservations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280

    vi

  • 16.8 flex_option Flexible Option for Option value settings . . . . . . . . . . . . . . . . . . . . . . . . . . 28316.9 host_cmds: Host Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284

    16.9.1 The subnet-id Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28516.9.2 The reservation-add Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28616.9.3 The reservation-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28716.9.4 The reservation-get-all Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28816.9.5 The reservation-get-page command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28916.9.6 The reservation-get-by-hostname Command . . . . . . . . . . . . . . . . . . . . . . . . . . 29116.9.7 The reservation-get-by-id Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29216.9.8 The reservation-del Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

    16.10 lease_cmds: Lease Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29416.10.1 The lease4-add, lease6-add Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29516.10.2 The lease6-bulk-apply Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29716.10.3 The lease4-get, lease6-get Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29916.10.4 The lease4-get-all, lease6-get-all Commands . . . . . . . . . . . . . . . . . . . . . . . . . . 30116.10.5 The lease4-get-page, lease6-get-page Commands . . . . . . . . . . . . . . . . . . . . . . . 30216.10.6 The lease4-get-by-*, lease6-get-by-* Commands . . . . . . . . . . . . . . . . . . . . . . . 30416.10.7 The lease4-del, lease6-del Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30416.10.8 The lease4-update, lease6-update Commands . . . . . . . . . . . . . . . . . . . . . . . . . 30516.10.9 The lease4-wipe, lease6-wipe Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . 30616.10.10The lease4-resend-ddns, lease6-resend-ddns Commands . . . . . . . . . . . . . . . . . . . 306

    16.11 subnet_cmds: Subnet Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30716.11.1 The subnet4-list Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30816.11.2 The subnet6-list Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30816.11.3 The subnet4-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30916.11.4 The subnet6-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31016.11.5 The subnet4-add Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31016.11.6 The subnet6-add Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31116.11.7 The subnet4-update Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31216.11.8 The subnet6-update Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31316.11.9 The subnet4-del Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31316.11.10The subnet6-del Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31416.11.11The network4-list, network6-list Commands . . . . . . . . . . . . . . . . . . . . . . . . . . 31516.11.12The network4-get, network6-get Commands . . . . . . . . . . . . . . . . . . . . . . . . . . 31516.11.13The network4-add, network6-add Commands . . . . . . . . . . . . . . . . . . . . . . . . . 31616.11.14The network4-del, network6-del Commands . . . . . . . . . . . . . . . . . . . . . . . . . . 31716.11.15The network4-subnet-add, network6-subnet-add Commands . . . . . . . . . . . . . . . . . 31816.11.16The network4-subnet-del, network6-subnet-del Commands . . . . . . . . . . . . . . . . . . 319

    16.12 BOOTP Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32016.12.1 BOOTP Hooks Limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321

    16.13 class_cmds: Class Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32116.13.1 The class-add Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32116.13.2 The class-update Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32216.13.3 The class-del Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32216.13.4 The class-list Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32316.13.5 The class-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323

    16.14 cb_cmds: Configuration Backend Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32416.14.1 Commands Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32416.14.2 Control Commands for DHCP Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32516.14.3 Metadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32516.14.4 remote-server4-del, remote-server6-del commands . . . . . . . . . . . . . . . . . . . . . . 32616.14.5 remote-server4-get, remote-server6-get commands . . . . . . . . . . . . . . . . . . . . . . 32716.14.6 remote-server4-get-all, remote-server6-get-all commands . . . . . . . . . . . . . . . . . . . 32816.14.7 remote-server4-set, remote-server6-set commands . . . . . . . . . . . . . . . . . . . . . . . 328

    vii

  • 16.14.8 The remote-global-parameter4-del, remote-global-parameter6-del Commands . . . . . . . . 32916.14.9 The remote-global-parameter4-get, remote-global-parameter6-get Commands . . . . . . . . 32916.14.10The remote-global-parameter4-get-all, remote-global-parameter6-get-all Commands . . . . 33116.14.11The remote-global-parameter4-set, remote-global-parameter6-set Commands . . . . . . . . 33216.14.12The remote-network4-del, remote-network6-del Commands . . . . . . . . . . . . . . . . . 33316.14.13The remote-network4-get, remote-network6-get Commands . . . . . . . . . . . . . . . . . 33316.14.14The remote-network4-list, remote-network6-list Commands . . . . . . . . . . . . . . . . . 33416.14.15The remote-network4-set, remote-network6-set Commands . . . . . . . . . . . . . . . . . . 33516.14.16The remote-option-def4-del, remote-option-def6-del Commands . . . . . . . . . . . . . . . 33616.14.17The remote-option-def4-get, remote-option-def6-get Commands . . . . . . . . . . . . . . . 33716.14.18The remote-option-def4-get-all, remote-option-def6-get-all Commands . . . . . . . . . . . 33716.14.19The remote-option-def4-set, remote-option-def6-set Commands . . . . . . . . . . . . . . . 33816.14.20The remote-option4-global-del, remote-option6-global-del Commands . . . . . . . . . . . . 33816.14.21The remote-option4-global-get, remote-option6-global-get Commands . . . . . . . . . . . . 33916.14.22The remote-option4-global-get-all, remote-option6-global-get-all Commands . . . . . . . . 33916.14.23The remote-option4-global-set, remote-option6-global-set Commands . . . . . . . . . . . . 34016.14.24The remote-option4-network-del, remote-option6-network-del Commands . . . . . . . . . . 34116.14.25The remote-option4-network-set, remote-option6-network-set Commands . . . . . . . . . . 34216.14.26The remote-option6-pd-pool-del Command . . . . . . . . . . . . . . . . . . . . . . . . . . 34216.14.27The remote-option6-pd-pool-set Command . . . . . . . . . . . . . . . . . . . . . . . . . . 34316.14.28The remote-option4-pool-del, remote-option6-pool-del Commands . . . . . . . . . . . . . . 34316.14.29The remote-option4-pool-set, remote-option6-pool-set Commands . . . . . . . . . . . . . . 34416.14.30The remote-option4-subnet-del, remote-option6-subnet-del Commands . . . . . . . . . . . 34516.14.31The remote-option4-subnet-set, remote-option6-subnet-set Commands . . . . . . . . . . . . 34516.14.32The remote-subnet4-del-by-id, remote-subnet6-del-by-id Commands . . . . . . . . . . . . . 34616.14.33The remote-subnet4-del-by-prefix, remote-subnet6-del-by-prefix Commands . . . . . . . . 34616.14.34The remote-subnet4-get-by-id, remote-subnet6-get-by-id Commands . . . . . . . . . . . . . 34716.14.35The remote-subnet4-get-by-prefix, remote-subnet6-get-by-prefix Commands . . . . . . . . 34716.14.36The remote-subnet4-list, remote-subnet6-list Commands . . . . . . . . . . . . . . . . . . . 34816.14.37The remote-subnet4-set, remote-subnet6-set Commands . . . . . . . . . . . . . . . . . . . 349

    16.15 ha: High Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35016.15.1 Supported Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35116.15.2 Clocks on Active Servers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35216.15.3 Server States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35216.15.4 Scope Transition in a Partner-Down Case . . . . . . . . . . . . . . . . . . . . . . . . . . . 35516.15.5 Load-Balancing Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35616.15.6 Load Balancing with Advanced Classification . . . . . . . . . . . . . . . . . . . . . . . . . 35916.15.7 Hot-Standby Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36116.15.8 Passive-Backup Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36216.15.9 Lease Information Sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36316.15.10Controlling Lease-Page Size Limit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36416.15.11Timeouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36516.15.12Pausing the HA State Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36616.15.13Control Agent Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36816.15.14Controlled Shutdown and Maintenance of DHCP servers . . . . . . . . . . . . . . . . . . . 36916.15.15Upgrading from Older HA Versions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37016.15.16Control Commands for High Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . 370

    16.15.16.1The ha-sync Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37016.15.16.2The ha-scopes Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37116.15.16.3The ha-continue Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37116.15.16.4The ha-heartbeat Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37216.15.16.5The status-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37316.15.16.6The ha-maintenance-start Command . . . . . . . . . . . . . . . . . . . . . . . . . 37516.15.16.7The ha-maintenance-cancel Command . . . . . . . . . . . . . . . . . . . . . . . . 375

    viii

  • 16.15.16.8The ha-maintenance-notify Command . . . . . . . . . . . . . . . . . . . . . . . . 37516.15.16.9The ha-reset Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375

    16.16 stat_cmds: Supplemental Statistics Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37616.16.1 The stat-lease4-get, stat-lease6-get Commands . . . . . . . . . . . . . . . . . . . . . . . . 377

    16.17 radius: RADIUS Server Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37916.17.1 Compilation and Installation of the RADIUS Hook . . . . . . . . . . . . . . . . . . . . . . 38016.17.2 RADIUS Hook Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383

    16.18 host_cache: Caching Host Reservations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38816.18.1 The cache-flush Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38816.18.2 The cache-clear Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38916.18.3 The cache-size Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38916.18.4 The cache-write Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38916.18.5 The cache-load Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38916.18.6 The cache-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39016.18.7 The cache-get-by-id Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39016.18.8 The cache-insert Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39016.18.9 The cache-remove Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391

    16.19 lease_query: Leasequery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39216.19.1 DHCPv4 Leasequery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39216.19.2 DHCPv4 Leasequery Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39316.19.3 DHCPv6 Leasequery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39316.19.4 DHCPv6 Leasequery Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395

    16.20 Run Script Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39616.21 User Contexts in Hooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405

    17 Statistics 40717.1 Statistics Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40717.2 Statistics Lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40817.3 Commands for Manipulating Statistics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408

    17.3.1 The statistic-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40817.3.2 The statistic-reset Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40917.3.3 The statistic-remove Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40917.3.4 The statistic-get-all Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40917.3.5 The statistic-reset-all Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41017.3.6 The statistic-remove-all Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41017.3.7 The statistic-sample-age-set Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41017.3.8 The statistic-sample-age-set-all Command . . . . . . . . . . . . . . . . . . . . . . . . . . . 41117.3.9 The statistic-sample-count-set Command . . . . . . . . . . . . . . . . . . . . . . . . . . . 41117.3.10 The statistic-sample-count-set-all Command . . . . . . . . . . . . . . . . . . . . . . . . . . 411

    17.4 Time Series . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412

    18 Management API 41318.1 Data Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41418.2 Using the Control Channel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41518.3 Commands Supported by Both the DHCPv4 and DHCPv6 Servers . . . . . . . . . . . . . . . . . . . 416

    18.3.1 The build-report Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41618.3.2 The config-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41618.3.3 The config-reload Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41618.3.4 The config-test Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41718.3.5 The config-write Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41718.3.6 The leases-reclaim Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41818.3.7 The libreload Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41818.3.8 The list-commands Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41818.3.9 The config-set Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418

    ix

  • 18.3.10 The shutdown Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41918.3.11 The dhcp-disable Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42018.3.12 The dhcp-enable Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42018.3.13 The status-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42118.3.14 The server-tag-get Command: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42118.3.15 The config-backend-pull Command: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42118.3.16 The version-get Command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421

    18.4 Commands Supported by the D2 Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42218.5 Commands Supported by the Control Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422

    19 Logging 42319.1 Logging Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423

    19.1.1 Loggers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42319.1.1.1 The name (string) Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42419.1.1.2 The severity (string) Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42719.1.1.3 The debuglevel (integer) Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . 42819.1.1.4 The output_options (list) Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . 428

    19.1.1.4.1 The output (string) Option . . . . . . . . . . . . . . . . . . . . . . . . . 42819.1.1.4.2 The flush (true of false) Option . . . . . . . . . . . . . . . . . . . . . . . 42819.1.1.4.3 The maxsize (integer) Option . . . . . . . . . . . . . . . . . . . . . . . . 42819.1.1.4.4 The maxver (integer) Option . . . . . . . . . . . . . . . . . . . . . . . . 42919.1.1.4.5 The pattern (string) Option . . . . . . . . . . . . . . . . . . . . . . . . . 429

    19.1.2 Logging Message Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42919.1.2.1 Example Logger Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 430

    19.1.3 Logging During Kea Startup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431

    20 The Kea Shell 43320.1 Overview of the Kea Shell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43320.2 Shell Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433

    21 YANG/NETCONF Support 43521.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43521.2 Installing NETCONF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435

    21.2.1 Installing NETCONF on Ubuntu 18.04 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43521.2.2 Installing NETCONF on CentOS 7.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435

    21.3 Quick Sysrepo Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43621.4 Supported YANG Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43821.5 Using the NETCONF Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43821.6 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43821.7 A kea-netconf Configuration Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44021.8 Starting and Stopping the NETCONF Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44221.9 A Step-by-Step NETCONF Agent Operation Example . . . . . . . . . . . . . . . . . . . . . . . . . 442

    21.9.1 Setup of NETCONF Agent Operation Example . . . . . . . . . . . . . . . . . . . . . . . . 44321.9.2 Error Handling in NETCONF Operation Example . . . . . . . . . . . . . . . . . . . . . . . 44521.9.3 NETCONF Operation Example with Two Pools . . . . . . . . . . . . . . . . . . . . . . . . 44621.9.4 NETCONF Operation Example with Two Subnets . . . . . . . . . . . . . . . . . . . . . . . 44721.9.5 NETCONF Operation Example with Logging . . . . . . . . . . . . . . . . . . . . . . . . . 447

    22 Monitoring Kea With Stork 44922.1 Kea Statistics in Grafana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 449

    23 API Reference 45123.1 build-report . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45323.2 cache-clear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45323.3 cache-flush . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454

    x

  • 23.4 cache-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45423.5 cache-get-by-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45523.6 cache-insert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45523.7 cache-load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45723.8 cache-remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45723.9 cache-size . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45823.10 cache-write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45923.11 class-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45923.12 class-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46023.13 class-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46123.14 class-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46123.15 class-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46223.16 config-backend-pull . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46323.17 config-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46323.18 config-reload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46423.19 config-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46523.20 config-test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46523.21 config-write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46623.22 dhcp-disable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46723.23 dhcp-enable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46723.24 ha-continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46823.25 ha-heartbeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46923.26 ha-maintenance-cancel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46923.27 ha-maintenance-notify . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47023.28 ha-maintenance-start . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47023.29 ha-reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47123.30 ha-scopes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47223.31 ha-sync . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47223.32 lease4-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47323.33 lease4-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47423.34 lease4-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47423.35 lease4-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47523.36 lease4-get-by-client-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47623.37 lease4-get-by-hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47723.38 lease4-get-by-hw-address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47823.39 lease4-get-page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47923.40 lease4-resend-ddns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48023.41 lease4-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48123.42 lease4-wipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48123.43 lease6-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48223.44 lease6-bulk-apply . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48323.45 lease6-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48423.46 lease6-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48523.47 lease6-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48623.48 lease6-get-by-duid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48723.49 lease6-get-by-hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48823.50 lease6-get-page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48923.51 lease6-resend-ddns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49023.52 lease6-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49123.53 lease6-wipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49123.54 leases-reclaim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49223.55 libreload . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49323.56 list-commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49323.57 network4-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 494

    xi

  • 23.58 network4-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49523.59 network4-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49623.60 network4-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49723.61 network4-subnet-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49823.62 network4-subnet-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49823.63 network6-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49923.64 network6-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50023.65 network6-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50123.66 network6-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50223.67 network6-subnet-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50323.68 network6-subnet-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50323.69 remote-global-parameter4-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50423.70 remote-global-parameter4-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50523.71 remote-global-parameter4-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50623.72 remote-global-parameter4-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50723.73 remote-global-parameter6-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50823.74 remote-global-parameter6-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50923.75 remote-global-parameter6-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51023.76 remote-global-parameter6-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51123.77 remote-network4-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51223.78 remote-network4-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51323.79 remote-network4-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51423.80 remote-network4-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51523.81 remote-network6-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51523.82 remote-network6-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51623.83 remote-network6-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51723.84 remote-network6-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51823.85 remote-option-def4-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51923.86 remote-option-def4-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52023.87 remote-option-def4-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52123.88 remote-option-def4-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52223.89 remote-option-def6-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52323.90 remote-option-def6-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52423.91 remote-option-def6-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52523.92 remote-option-def6-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52623.93 remote-option4-global-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52723.94 remote-option4-global-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52823.95 remote-option4-global-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52923.96 remote-option4-global-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53023.97 remote-option4-network-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53123.98 remote-option4-network-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53223.99 remote-option4-pool-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53323.100remote-option4-pool-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53423.101remote-option4-subnet-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53523.102remote-option4-subnet-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53623.103remote-option6-global-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53723.104remote-option6-global-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53723.105remote-option6-global-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53823.106remote-option6-global-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53923.107remote-option6-network-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54023.108remote-option6-network-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54123.109remote-option6-pd-pool-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54223.110remote-option6-pd-pool-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54323.111remote-option6-pool-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544

    xii

  • 23.112remote-option6-pool-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54523.113remote-option6-subnet-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54623.114remote-option6-subnet-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54723.115remote-server4-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54823.116remote-server4-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54923.117remote-server4-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55023.118remote-server4-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55123.119remote-server6-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55223.120remote-server6-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55323.121remote-server6-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55423.122remote-server6-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55523.123remote-subnet4-del-by-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55623.124remote-subnet4-del-by-prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55623.125remote-subnet4-get-by-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55723.126remote-subnet4-get-by-prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55823.127remote-subnet4-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55923.128remote-subnet4-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56023.129remote-subnet6-del-by-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56123.130remote-subnet6-del-by-prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56223.131remote-subnet6-get-by-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56323.132remote-subnet6-get-by-prefix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56423.133remote-subnet6-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56523.134remote-subnet6-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56623.135reservation-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56723.136reservation-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56823.137reservation-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56923.138reservation-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57023.139reservation-get-by-hostname . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57023.140reservation-get-by-id . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57123.141reservation-get-page . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57223.142server-tag-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57223.143shutdown . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57323.144stat-lease4-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57423.145stat-lease6-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57423.146statistic-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57523.147statistic-get-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57623.148statistic-remove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57723.149statistic-remove-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57823.150statistic-reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57823.151statistic-reset-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57923.152statistic-sample-age-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58023.153statistic-sample-age-set-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58023.154statistic-sample-count-set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58123.155statistic-sample-count-set-all . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58223.156status-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58323.157subnet4-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58423.158subnet4-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58423.159subnet4-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58523.160subnet4-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58623.161subnet4-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58723.162subnet6-add . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58823.163subnet6-del . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58823.164subnet6-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58923.165subnet6-list . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 590

    xiii

  • 23.166subnet6-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59123.167version-get . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592

    24 Manual Pages 59324.1 kea-dhcp4 - DHCPv4 server in Kea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593

    24.1.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59324.1.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59324.1.3 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59324.1.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59424.1.5 Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59424.1.6 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59424.1.7 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 594

    24.2 kea-dhcp6 - DHCPv6 server in Kea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59424.2.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59424.2.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59424.2.3 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59524.2.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59524.2.5 Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59524.2.6 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59524.2.7 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 596

    24.3 kea-ctrl-agent - Control Agent process in Kea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59624.3.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59624.3.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59624.3.3 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59624.3.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59624.3.5 Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59724.3.6 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59724.3.7 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 597

    24.4 keactrl - Shell script for managing Kea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59724.4.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59724.4.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59724.4.3 Configuration File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59724.4.4 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59724.4.5 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59824.4.6 Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59824.4.7 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 598

    24.5 kea-admin - Shell script for managing Kea databases . . . . . . . . . . . . . . . . . . . . . . . . . . 59824.5.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59824.5.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59924.5.3 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59924.5.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59924.5.5 Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60024.5.6 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 600

    24.6 kea-dhcp-ddns - DHCP-DDNS process in Kea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60024.6.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60024.6.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60024.6.3 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60024.6.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60024.6.5 Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60124.6.6 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60124.6.7 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601

    24.7 kea-lfc - Lease File Cleanup process in Kea . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60124.7.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60124.7.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 601

    xiv

  • 24.7.3 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60124.7.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60224.7.5 Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60224.7.6 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60224.7.7 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 603

    24.8 kea-shell - Text client for Control Agent process . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60324.8.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60324.8.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60324.8.3 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60324.8.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60324.8.5 Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60424.8.6 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60424.8.7 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 604

    24.9 kea-netconf - NETCONF agent for Kea environment . . . . . . . . . . . . . . . . . . . . . . . . . . 60424.9.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60424.9.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60424.9.3 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60424.9.4 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60524.9.5 Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60524.9.6 History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60524.9.7 See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 605

    24.10 perfdhcp - DHCP benchmarking tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60524.10.1 Synopsis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60524.10.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60524.10.3 Templates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60624.10.4 Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60724.10.5 DHCPv4-Only Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60924.10.6 DHCPv6-Only Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60924.10.7 Template-Related Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60924.10.8 Options Controlling a Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61024.10.9 Arguments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61024.10.10Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61024.10.11Exit Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61024.10.12Usage Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61024.10.13Mailing Lists and Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61124.10.14History . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61124.10.15See Also . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 611

    25 Kea Messages Manual 61325.1 ALLOC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61325.2 ASIODNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62325.3 BOOTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62625.4 COMMAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62725.5 CTRL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63025.6 DATABASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63125.7 DCTL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63225.8 DHCP4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63525.9 DHCP6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65325.10 DHCPSRV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67225.11 DHCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70025.12 EVAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71025.13 FLEX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71425.14 HA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71425.15 HOOKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 726

    xv

  • 25.16 HOSTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73025.17 HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73625.18 LEASE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73925.19 LFC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74125.20 LOGIMPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74225.21 LOG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74225.22 MYSQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74425.23 NETCONF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75925.24 STAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76225.25 USER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 763

    26 Kea Flow Diagrams 76526.1 Main Loop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76526.2 DHCPv4 Packet Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76526.3 DHCP Request Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76826.4 DHCPv4 Subnet Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76826.5 DHCPv4 Special Case of Double-booting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76826.6 DHCPv4 Allocate Lease . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76826.7 Lease States . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76826.8 Checking for Host Reservations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76826.9 Building the Options List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 775

    27 Acknowledgments 781

    28 Indices and Tables 783

    xvi

  • Kea Administrator Reference Manual Documentation, Release 1.9.5-git

    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.9.5-git. 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.9.5-git

    2 Contents

  • CHAPTER 1

    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.9.5-git.

    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.9.5-git builds have been tested on:

    • CentOS Linux — 7, 8

    • Fedora — 31, 32

    • Ubuntu — 16.04, 18.04, 20.04

    • Debian GNU/Linux — 9, 10

    There are currently no plans to port Kea to Windows systems.

    3

  • Kea Administrator Reference Manual Documentation, Release 1.9.5-git

    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, 3.11, 3.12

    • macOS — 10.13, 10.14

    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, 19.04, 19.10

    • Fedora 30

    • 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.

    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.9.5-git

    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 PostgreSQ