summaryrefslogtreecommitdiffstats
path: root/doc/sphinx/arm/dhcp6-srv.rst
diff options
context:
space:
mode:
authorFrancis Dupont <fdupont@isc.org>2020-11-13 13:03:48 +0100
committerFrancis Dupont <fdupont@isc.org>2021-01-11 16:05:46 +0100
commit65b7546e3246915bd6d68336e7fea3199b2ca4b0 (patch)
tree6eb9eb9d4b262c5b2779f5ecc78043105ce62ded /doc/sphinx/arm/dhcp6-srv.rst
parent[#1418] Checkpoint: todo v6 server UT and doc (diff)
downloadkea-65b7546e3246915bd6d68336e7fea3199b2ca4b0.tar.xz
kea-65b7546e3246915bd6d68336e7fea3199b2ca4b0.zip
[#1418] Updated v6 tests and doc
Diffstat (limited to 'doc/sphinx/arm/dhcp6-srv.rst')
-rw-r--r--doc/sphinx/arm/dhcp6-srv.rst59
1 files changed, 59 insertions, 0 deletions
diff --git a/doc/sphinx/arm/dhcp6-srv.rst b/doc/sphinx/arm/dhcp6-srv.rst
index efdb8310d7..1268a63f57 100644
--- a/doc/sphinx/arm/dhcp6-srv.rst
+++ b/doc/sphinx/arm/dhcp6-srv.rst
@@ -3467,6 +3467,61 @@ Our tests reported best results when:
storing leases. In our case it's 11 * 6 = 66.
+Lease Caching
+-------------
+
+Clients that attempt renewal frequently can cause the server to update
+and write the database frequently resulting in a performance impact on
+the server. The cache parameters instructs the DHCP server to avoid
+updating leases too frequently thus avoiding this behavior. Instead
+the server assigns the same lease (i.e. reuses it) with no
+modifications except for CLTT (Client Last Transmission Time)
+which does not require disk operations.
+
+The two parameters are the ``cache-threshold`` double and the
+``cache-max-age`` integer and have no default, i.e. the lease caching
+feature must be explicitly enabled. These parameters can be configured
+at the global, shared network and subnet levels. The subnet level has
+the precedence on the shared network level, the global level is used
+as last resort. For example:
+
+::
+
+ "subnet6": [
+ {
+ "subnet": "2001:db8:1:1::/64",
+ "pools": [ { "pool": "2001:db8:1:1::1:0/112" } ],
+ "cache-threshold": .25,
+ "cache-max-age": 600,
+ "valid-lifetime": 2000,
+ ...
+ }
+ ],
+
+When an already assigned lease can fulfill a client query:
+
+ - any important change e.g. for DDNS parameter, hostname, or
+ preferred or valid lifetime reduction makes the lease not reusable
+
+ - lease age i.e. the difference between the creation or last modification
+ time and the current time is computed (elapsed duration)
+
+ - if the ``cache-max-age`` is configured, it is compared with the age
+ and too old leases are not reusable (this means that the value 0
+ for ``cache-max-age`` disables the lease cache feature)
+
+ - if the ``cache-threshold`` is configured and is between 0. and 1.
+ it expresses the percentage of the lease valid lifetime which is
+ allowed for the lease age. Values below and including 0. and
+ values greater than 1. disables the lease cache feature.
+
+In the example a lease with a valid lifetime of 2000 seconds can be
+reused if it was committed less than 500 seconds ago. With a lifetime
+of 3000 seconds the maximum age of 600 seconds applies.
+
+In responses used preferred and valid lifetimes are the remaining
+values i.e. the expiration dates do not change.
+
.. _host-reservation-v6:
Host Reservation in DHCPv6
@@ -6731,6 +6786,10 @@ the global DHCPv6 options (``option-data``) are modified using
| | | Network | | | Delegation |
| | | | | | Pool |
+=============================+============================+===========+===========+===========+============+
+ | cache-max-age | yes | todo | todo | n/a | n/a |
+ +-----------------------------+----------------------------+-----------+-----------+-----------+------------+
+ | cache-threshold | yes | todo | todo | n/a | n/a |
+ +-----------------------------+----------------------------+-----------+-----------+-----------+------------+
| calculate-tee-times | yes | yes | yes | n/a | n/a |
+-----------------------------+----------------------------+-----------+-----------+-----------+------------+
| client-class | n/a | yes | yes | yes | yes |