Project

General

Profile

Actions

Feature #15934

open

Feature #15650: Kea Feature Integration for parity with ISC DHCP

Kea Lease Reclamation and Affinity Options (IPv4 and IPv6)

Added by Jim Pingle 4 months ago. Updated 14 days ago.

Status:
New
Priority:
Low
Category:
DHCP (IPv4)
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Plus Target Version:
25.07
Release Notes:
Default

Description

The lease allocation and reclamation behavior in Kea is more aggressive than that in ISC DHCP. As a consequence, users are being surprised by unexpected IP address changes when users leases had been fairly stable under ISC DHCP.

At the moment the only option users have to influence this is to greatly increase the default lease time (and maximum in certain cases), but Kea has other options to fine-tune its behavior.

See the Kea docs at https://kea.readthedocs.io/en/kea-2.6.1/arm/lease-expiration.html#lease-reclamation

We could use some global GUI options to tweak the behavior using the options listed in https://kea.readthedocs.io/en/kea-2.6.1/arm/lease-expiration.html#lease-reclamation-configuration-parameters -- they appear to be global options, not per-subnet, but it's possible they might work both ways. We could use default values for those which are much more lenient than Kea's own defaults.

As a part of improving the lease allocation behavior, we could also use a global option to drop or ignore DHCP release packets from clients which also trigger Kea to reclaim a lease immediately:

Feel free to kick it ahead to the next release if there is not enough time or it ends up being much more complicated.

Actions #1

Updated by Dale Harron 4 months ago

Lease Affinity provides a way to have IP/MAC association persist beyond expiry but it does not survive a reboot.
https://kea.readthedocs.io/en/kea-2.6.1/arm/lease-expiration.html#lease-reclamation-configuration-parameters (see 11.4)

Setting a default affinity value would reduce the concern until a reboot at least.
To observe this, go to /etc/inc/services.inc and add 'expired-leases-processing':
$keaconf['Dhcp4'] = [
'interfaces-config' => [
'interfaces' => []
],
'lease-database' => [
'type' => 'memfile',
'persist' => true,
'name' => $kea_var_lib . '/dhcp4.leases'
],
'expired-leases-processing' => [
'reclaim-timer-wait-time' => 3,
'hold-reclaimed-time' => 86400,
'flush-reclaimed-timer-wait-time' => 5
],
'loggers' => [[

Kea is aware of this and working on a solution, re: https://gitlab.isc.org/isc-projects/kea/-/issues/3352

Actions #2

Updated by Marcos M 15 days ago

  • Target version changed from 2.8.0 to CE-Next
  • Plus Target Version changed from 25.03 to 25.07
Actions #3

Updated by Jim Pingle 14 days ago

  • Target version changed from CE-Next to 2.9.0
Actions

Also available in: Atom PDF