Browse Source

[3979] Added examples demonstrating processing expired leases.

Marcin Siodelski 9 years ago
parent
commit
f75ba49ed4

+ 2 - 0
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
 

+ 71 - 0
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"
+        }
+    ]
+}
+
+}

+ 77 - 0
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"
+        }
+    ]
+}
+
+}
+

+ 1 - 0
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