// This is an example configuration file for the DHCPv4 server in Kea. // It provides parameters controlling processing of expired leases, // a.k.a. leases reclamation. { "Dhcp4": { // Kea is told to listen on eth0 interface only. "interfaces-config": { "interfaces": [ "eth0" ] }, // We need to specify the database used to store leases. As of // June 2022, three database backends are supported: MySQL, // PostgreSQL and the in-memory database, Memfile. // We'll use memfile because it doesn't require any prior set up. // Note, we're setting the maximum number of row read errors to 100, // (defaults to 0, meaning unlimited). "lease-database": { "type": "memfile", "lfc-interval": 3600, "max-row-errors": 100 }, // The following parameters control processing expired leases. Expired // leases will be reclaimed periodically according to the // "reclaim-timer-wait-time" parameter. Reclaimed leases will be held in // the database for 1800s to facilitate lease affinity. After this // period the leases will be removed. The frequency of removal is // controlled by the "flush-reclaimed-timer-wait-time" parameter. The // lease reclamation routine will process at most 500 leases or will // last for at most 100ms, during a single run. If there are still some // unreclaimed leases after 10 attempts, a warning message is issued. // If both "flush-reclaimed-timer-wait-time" and "hold-reclaimed-time" are not // 0, when the client sends a release message the lease is expired instead of // being deleted from lease storage. "expired-leases-processing": { "reclaim-timer-wait-time": 5, "hold-reclaimed-time": 1800, "flush-reclaimed-timer-wait-time": 10, "max-reclaim-leases": 500, "max-reclaim-time": 100, "unwarned-reclaim-cycles": 10 }, // Addresses will be assigned with a lifetime of 4000 seconds. "valid-lifetime": 4000, // The following list defines subnets. We have only one subnet // here. We tell Kea that it is directly available over local interface. "subnet4": [ { "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ], "id": 1, "subnet": "192.0.2.0/24", "interface": "eth0" } ], // The following configures logging. It assumes that messages with at // least informational level (info, warn, error and fatal) should be // logged to stdout. "loggers": [ { "name": "kea-dhcp4", "output_options": [ { "output": "stdout" } ], "severity": "INFO" } ] } }