From: Marcin Siodelski Date: Mon, 26 Oct 2015 12:58:13 +0000 (+0100) Subject: [3979] Added examples demonstrating processing expired leases. X-Git-Tag: trac4106_base~6^2~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f75ba49ed49df57cd27420cdb20f77d8b8605729;p=thirdparty%2Fkea.git [3979] Added examples demonstrating processing expired leases. --- diff --git a/doc/Makefile.am b/doc/Makefile.am index 115e492dfa..5e31b591de 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -12,12 +12,14 @@ nobase_dist_doc_DATA = examples/kea4/single-subnet.json nobase_dist_doc_DATA += examples/kea4/several-subnets.json nobase_dist_doc_DATA += examples/kea4/multiple-options.json nobase_dist_doc_DATA += examples/kea4/reservations.json +nobase_dist_doc_DATA += examples/kea4/leases-expiration.json nobase_dist_doc_DATA += examples/kea6/simple.json nobase_dist_doc_DATA += examples/kea6/several-subnets.json nobase_dist_doc_DATA += examples/kea6/multiple-options.json nobase_dist_doc_DATA += examples/kea6/advanced.json nobase_dist_doc_DATA += examples/kea6/stateless.json nobase_dist_doc_DATA += examples/kea6/reservations.json +nobase_dist_doc_DATA += examples/kea6/leases-expiration.json nobase_dist_doc_DATA += examples/ddns/sample1.json nobase_dist_doc_DATA += examples/ddns/template.json diff --git a/doc/examples/kea4/leases-expiration.json b/doc/examples/kea4/leases-expiration.json new file mode 100644 index 0000000000..3771eca8b3 --- /dev/null +++ b/doc/examples/kea4/leases-expiration.json @@ -0,0 +1,71 @@ +# 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 ethX interface only. + "interfaces-config": { + "interfaces": [ "ethX" ] + }, + +# We need to specify lease type. As of May 2014, three backends are supported: +# memfile, mysql and pgsql. We'll just use memfile, because it doesn't require +# any prior set up. + "lease-database": { + "type": "memfile" + }, + +# 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. + "expired-leases-processing": { + "reclaim-timer-wait-time": 5, + "flush-reclaimed-timer-wait-time": 10, + "max-reclaim-leases": 500, + "max-reclaim-time": 100, + "hold-reclaimed-time": 1800, + "unwarned-reclaim-cycles": 10 + }, + +# Addresses will be assigned with valid lifetimes being 4000. Client +# is told to start renewing after 1000 seconds. If the server does not respond +# after 2000 seconds since the lease was granted, client is supposed +# to start REBIND procedure (emergency renewal that allows switching +# to a different server). + "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" } ], + "subnet": "192.0.2.0/24", + "interface": "ethX" + } + ] +}, + +# The following configures logging. It assumes that messages with at least +# informational level (info, warn, error) will will be logged to stdout. +"Logging": { + "loggers": [ + { + "name": "kea-dhcp4", + "output_options": [ + { + "output": "stdout" + } + ], + "severity": "INFO" + } + ] +} + +} diff --git a/doc/examples/kea6/leases-expiration.json b/doc/examples/kea6/leases-expiration.json new file mode 100644 index 0000000000..0f66bfc36c --- /dev/null +++ b/doc/examples/kea6/leases-expiration.json @@ -0,0 +1,77 @@ +# This is an example configuration file for DHCPv6 server in Kea. +# It provides parameters controlling processing of expired leases, +# a.k.a. leases reclamation. + +{ "Dhcp6": + +{ +# Kea is told to listen on ethX interface only. + "interfaces-config": { + "interfaces": [ "ethX" ] + }, + +# We need to specify lease type. As of May 2014, three backends are supported: +# memfile, mysql and pgsql. We'll just use memfile, because it doesn't require +# any prior set up. + "lease-database": { + "type": "memfile" + }, + +# 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. + "expired-leases-processing": { + "reclaim-timer-wait-time": 5, + "flush-reclaimed-timer-wait-time": 10, + "max-reclaim-leases": 500, + "max-reclaim-time": 100, + "hold-reclaimed-time": 1800, + "unwarned-reclaim-cycles": 10 + }, + +# Addresses will be assigned with preferred and valid lifetimes +# being 3000 and 4000, respectively. Client is told to start +# renewing after 1000 seconds. If the server does not respond +# after 2000 seconds since the lease was granted, client is supposed +# to start REBIND procedure (emergency renewal that allows switching +# to a different server). + "preferred-lifetime": 3000, + "valid-lifetime": 4000, + "renew-timer": 1000, + "rebind-timer": 2000, + +# The following list defines subnets. Each subnet consists of at +# least subnet and pool entries. + "subnet6": [ + { + "pools": [ { "pool": "2001:db8:1::/80" } ], + "subnet": "2001:db8:1::/64", + "interface": "ethX" + } + ] +}, + +# The following configures logging. Kea will log all debug messages +# to /var/log/kea-debug.log file. +"Logging": { + "loggers": [ + { + "name": "kea-dhcp6", + "output_options": [ + { + "output": "/var/log/kea-debug.log" + } + ], + "debuglevel": 99, + "severity": "DEBUG" + } + ] +} + +} + diff --git a/src/bin/dhcp4/tests/configs-list.txt b/src/bin/dhcp4/tests/configs-list.txt index f7e5587bd0..0ba5616669 100644 --- a/src/bin/dhcp4/tests/configs-list.txt +++ b/src/bin/dhcp4/tests/configs-list.txt @@ -3,3 +3,4 @@ ../../../../doc/examples/kea4/single-subnet.json ../../../../doc/examples/kea4/several-subnets.json +../../../../doc/examples/kea4/leases-expiration.json