From 823da39a909ed0a521703d45649307e16e3a0170 Mon Sep 17 00:00:00 2001 From: Francis Dupont Date: Mon, 5 Jun 2023 20:13:19 +0200 Subject: [PATCH] [#2866] Checkpoint: updated examples and arm --- doc/examples/kea4/advanced.json | 4 ++ doc/examples/kea4/all-options.json | 1 + doc/examples/kea4/backends.json | 1 + doc/examples/kea4/classify.json | 3 + doc/examples/kea4/classify2.json | 4 ++ doc/examples/kea4/dhcpv4-over-dhcpv6.json | 4 +- doc/examples/kea4/dnr.json | 1 + doc/examples/kea4/global-reservations.json | 1 + ...ha-load-balancing-server1-mt-with-tls.json | 3 + .../kea4/ha-load-balancing-server2-mt.json | 3 + doc/examples/kea4/hooks.json | 1 + doc/examples/kea4/leases-expiration.json | 1 + doc/examples/kea4/multiple-options.json | 1 + doc/examples/kea4/reservations.json | 1 + doc/examples/kea4/several-subnets.json | 3 + doc/examples/kea4/single-subnet.json | 1 + doc/examples/kea4/vendor-specific.json | 3 +- doc/examples/kea4/vivso.json | 1 + doc/examples/kea4/with-ddns.json | 3 +- doc/examples/kea6/advanced.json | 1 + doc/examples/kea6/all-options.json | 3 +- doc/examples/kea6/backends.json | 1 + doc/examples/kea6/classify.json | 3 + doc/examples/kea6/classify2.json | 4 ++ doc/examples/kea6/dhcpv4-over-dhcpv6.json | 3 +- doc/examples/kea6/dnr.json | 3 +- doc/examples/kea6/duid.json | 1 + doc/examples/kea6/global-reservations.json | 2 + .../kea6/ha-hot-standby-server1-with-tls.json | 2 + doc/examples/kea6/ha-hot-standby-server2.json | 2 + doc/examples/kea6/hooks.json | 1 + doc/examples/kea6/iPXE.json | 1 + doc/examples/kea6/leases-expiration.json | 1 + doc/examples/kea6/multiple-options.json | 1 + doc/examples/kea6/mysql-reservations.json | 2 + doc/examples/kea6/pgsql-reservations.json | 2 + doc/examples/kea6/reservations.json | 2 + doc/examples/kea6/several-subnets.json | 8 +-- doc/examples/kea6/shared-network.json | 3 + doc/examples/kea6/simple.json | 1 + doc/examples/kea6/softwire46.json | 1 + doc/examples/kea6/tee-times.json | 3 + doc/examples/kea6/with-ddns.json | 1 + doc/sphinx/arm/classify.rst | 5 ++ doc/sphinx/arm/config.rst | 5 +- doc/sphinx/arm/dhcp4-srv.rst | 70 ++++++++++++++++--- doc/sphinx/arm/dhcp6-srv.rst | 55 ++++++++++++++- doc/sphinx/arm/hooks-ha.rst | 6 ++ doc/sphinx/arm/hooks-legal-log.rst | 2 + doc/sphinx/arm/hooks.rst | 1 + 50 files changed, 214 insertions(+), 22 deletions(-) diff --git a/doc/examples/kea4/advanced.json b/doc/examples/kea4/advanced.json index 81d182a00f..9191226aaf 100644 --- a/doc/examples/kea4/advanced.json +++ b/doc/examples/kea4/advanced.json @@ -137,6 +137,7 @@ "pool": "192.0.2.1 - 192.0.2.200", "user-context": { "info": "what a large pool" } } ], + "id": 1, "subnet": "192.0.2.0/24", "user-context": { "comment": "Our first subnet!" @@ -149,11 +150,13 @@ // This causes Kea to ignore client-id values in this subnet // and rely exclusively on MAC addresses. "pools": [ { "pool": "192.0.3.100 - 192.0.3.200" } ], + "id": 2, "subnet": "192.0.3.0/24", "match-client-id": false }, { "pools": [ { "pool": "192.0.4.1 - 192.0.4.254" } ], + "id": 3, "subnet": "192.0.4.0/24", // Sometimes the relay may use an IPv4 address that does @@ -169,6 +172,7 @@ // This causes Kea to reply to requests for unknown IP addresses // with a DHCPNAK message. "pools": [ { "pool": "192.0.5.100 - 192.0.5.200" } ], + "id": 4, "subnet": "192.0.5.0/24", "authoritative": true } diff --git a/doc/examples/kea4/all-options.json b/doc/examples/kea4/all-options.json index a19091dcc9..9e3e4cf81d 100644 --- a/doc/examples/kea4/all-options.json +++ b/doc/examples/kea4/all-options.json @@ -1805,6 +1805,7 @@ "space": "docsis3-v4" } ], + "id": 1, "subnet": "192.0.2.0/24" } ] diff --git a/doc/examples/kea4/backends.json b/doc/examples/kea4/backends.json index 40e0c39d7f..d8e037bdae 100644 --- a/doc/examples/kea4/backends.json +++ b/doc/examples/kea4/backends.json @@ -80,6 +80,7 @@ "subnet4": [ { "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ], + "id":1 , "subnet": "192.0.2.0/24", "interface": "eth0" } diff --git a/doc/examples/kea4/classify.json b/doc/examples/kea4/classify.json index 8f031ade64..47bbdcbc1b 100644 --- a/doc/examples/kea4/classify.json +++ b/doc/examples/kea4/classify.json @@ -81,6 +81,7 @@ // This one is for VoIP devices only. { "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ], + "id": 1, "subnet": "192.0.2.0/24", "client-class": "VoIP", "interface": "eth0" @@ -93,6 +94,7 @@ // be assigned to this class. { "pools": [ { "pool": "192.0.3.1 - 192.0.3.200" } ], + "id": 2, "subnet": "192.0.3.0/24", "reservations": [ { @@ -121,6 +123,7 @@ } ], "subnet": "192.0.4.0/23", + "id": 3, "interface": "eth1" } ], diff --git a/doc/examples/kea4/classify2.json b/doc/examples/kea4/classify2.json index c7a9e0ab1d..ec9d58b7ff 100644 --- a/doc/examples/kea4/classify2.json +++ b/doc/examples/kea4/classify2.json @@ -89,6 +89,7 @@ { // This one is for VoIP devices only. "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ], + "id": 1, "subnet": "192.0.2.0/24", "client-class": "VoIP", "interface": "eth0" @@ -100,6 +101,7 @@ // be assigned to this class. { "pools": [ { "pool": "192.0.3.1 - 192.0.3.200" } ], + "id": 2, "subnet": "192.0.3.0/24", "reservations": [ { @@ -126,6 +128,7 @@ { "pool": "192.0.5.1 - 192.0.5.200" } ], + "id": 3, "subnet": "192.0.4.0/23", "interface": "eth1" }, @@ -147,6 +150,7 @@ "client-class": "KNOWN" } ], + "id": 4, "subnet": "192.0.8.0/23", "reservations": [ { "hw-address": "00:00:00:11:22:33", "hostname": "h1" }, diff --git a/doc/examples/kea4/dhcpv4-over-dhcpv6.json b/doc/examples/kea4/dhcpv4-over-dhcpv6.json index 729d4a15b1..a2b3d43fb8 100644 --- a/doc/examples/kea4/dhcpv4-over-dhcpv6.json +++ b/doc/examples/kea4/dhcpv4-over-dhcpv6.json @@ -19,7 +19,9 @@ "valid-lifetime": 4000, "subnet4": [ - { "subnet": "10.10.10.0/24", + { + "id": 100, + "subnet": "10.10.10.0/24", // Don't forget the "4o6-" before "interface" here! "4o6-interface": "eth0", "4o6-subnet": "2001:db8:1:1::/64", diff --git a/doc/examples/kea4/dnr.json b/doc/examples/kea4/dnr.json index d386d07660..eda26e6b6a 100644 --- a/doc/examples/kea4/dnr.json +++ b/doc/examples/kea4/dnr.json @@ -63,6 +63,7 @@ // here. We tell Kea that it is directly available over local interface. "subnet4": [ { + "id": 1, "interface": "eth0", "pools": [ { diff --git a/doc/examples/kea4/global-reservations.json b/doc/examples/kea4/global-reservations.json index 0e8be68fbb..8171eb50cf 100644 --- a/doc/examples/kea4/global-reservations.json +++ b/doc/examples/kea4/global-reservations.json @@ -153,6 +153,7 @@ "subnet4": [ { "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ], + "id": 1, "subnet": "192.0.2.0/24", "interface": "eth0" } diff --git a/doc/examples/kea4/ha-load-balancing-server1-mt-with-tls.json b/doc/examples/kea4/ha-load-balancing-server1-mt-with-tls.json index 66afc3238e..5e6802647c 100644 --- a/doc/examples/kea4/ha-load-balancing-server1-mt-with-tls.json +++ b/doc/examples/kea4/ha-load-balancing-server1-mt-with-tls.json @@ -204,6 +204,9 @@ // This example contains a single subnet declaration. "subnet4": [ { + // Subnet id. + "id": 1, + // Subnet prefix. "subnet": "192.0.3.0/24", diff --git a/doc/examples/kea4/ha-load-balancing-server2-mt.json b/doc/examples/kea4/ha-load-balancing-server2-mt.json index 4cc712a439..ddfadb0cfd 100644 --- a/doc/examples/kea4/ha-load-balancing-server2-mt.json +++ b/doc/examples/kea4/ha-load-balancing-server2-mt.json @@ -187,6 +187,9 @@ // This example contains a single subnet declaration. "subnet4": [ { + // Subnet id. + "id": 1, + // Subnet prefix. "subnet": "192.0.3.0/24", diff --git a/doc/examples/kea4/hooks.json b/doc/examples/kea4/hooks.json index 3b96d621ed..d82db2b485 100644 --- a/doc/examples/kea4/hooks.json +++ b/doc/examples/kea4/hooks.json @@ -21,6 +21,7 @@ "subnet4": [ { "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ], + "id": 1, "subnet": "192.0.2.0/24", "interface": "eth0" } diff --git a/doc/examples/kea4/leases-expiration.json b/doc/examples/kea4/leases-expiration.json index ce73a57a3b..629b12654b 100644 --- a/doc/examples/kea4/leases-expiration.json +++ b/doc/examples/kea4/leases-expiration.json @@ -51,6 +51,7 @@ "subnet4": [ { "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ], + "id": 1, "subnet": "192.0.2.0/24", "interface": "eth0" } diff --git a/doc/examples/kea4/multiple-options.json b/doc/examples/kea4/multiple-options.json index cded883116..8252d503b8 100644 --- a/doc/examples/kea4/multiple-options.json +++ b/doc/examples/kea4/multiple-options.json @@ -37,6 +37,7 @@ // for the pool. "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/24", "option-data": [ // When specifying options, you typically need to specify diff --git a/doc/examples/kea4/reservations.json b/doc/examples/kea4/reservations.json index b316740ead..58070bf3b4 100644 --- a/doc/examples/kea4/reservations.json +++ b/doc/examples/kea4/reservations.json @@ -61,6 +61,7 @@ "subnet4": [ { "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ], + "id": 1, "subnet": "192.0.2.0/24", "interface": "eth0", // This directive tells Kea that reservations may be made both in-pool diff --git a/doc/examples/kea4/several-subnets.json b/doc/examples/kea4/several-subnets.json index 9bad6a20ef..bcdf3a70ee 100644 --- a/doc/examples/kea4/several-subnets.json +++ b/doc/examples/kea4/several-subnets.json @@ -51,16 +51,19 @@ "subnet4": [ { "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ], + "id": 1, "subnet": "192.0.2.0/24" }, { // This particular subnet has match-client-id value changed. "pools": [ { "pool": "192.0.3.100 - 192.0.3.200" } ], + "id": 2, "subnet": "192.0.3.0/24", "match-client-id": false }, { "pools": [ { "pool": "192.0.4.1 - 192.0.4.254" } ], + "id": 3, "subnet": "192.0.4.0/24" } ], diff --git a/doc/examples/kea4/single-subnet.json b/doc/examples/kea4/single-subnet.json index 701fc56be3..49457fecb0 100644 --- a/doc/examples/kea4/single-subnet.json +++ b/doc/examples/kea4/single-subnet.json @@ -34,6 +34,7 @@ "subnet4": [ { "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ], + "id": 1, "subnet": "192.0.2.0/24", "interface": "eth0" } diff --git a/doc/examples/kea4/vendor-specific.json b/doc/examples/kea4/vendor-specific.json index b48c2d0824..83b40fdd2c 100644 --- a/doc/examples/kea4/vendor-specific.json +++ b/doc/examples/kea4/vendor-specific.json @@ -88,7 +88,8 @@ "pool": "192.0.2.50-192.0.2.50" } ], - "subnet": "192.0.2.0/24" + "subnet": "192.0.2.0/24", + "id": 1 } ] } diff --git a/doc/examples/kea4/vivso.json b/doc/examples/kea4/vivso.json index fe1ccec2f5..f69f18989c 100644 --- a/doc/examples/kea4/vivso.json +++ b/doc/examples/kea4/vivso.json @@ -76,6 +76,7 @@ // here. We tell Kea that it is directly available over local interface. "subnet4": [ { + "id": 1, "interface": "eth0", "pools": [ { diff --git a/doc/examples/kea4/with-ddns.json b/doc/examples/kea4/with-ddns.json index 70072f5be2..a4f12e4a3a 100644 --- a/doc/examples/kea4/with-ddns.json +++ b/doc/examples/kea4/with-ddns.json @@ -35,7 +35,8 @@ { "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ], "subnet": "192.0.2.0/24", - "interface": "eth0" + "interface": "eth0", + "id": 1 } ], diff --git a/doc/examples/kea6/advanced.json b/doc/examples/kea6/advanced.json index 3d9747d715..995f693715 100644 --- a/doc/examples/kea6/advanced.json +++ b/doc/examples/kea6/advanced.json @@ -144,6 +144,7 @@ } ], // end of pools + "id": 1, "subnet": "2001:db8:1::/64", "interface": "eth0", diff --git a/doc/examples/kea6/all-options.json b/doc/examples/kea6/all-options.json index 844a921cf9..eee66349c3 100644 --- a/doc/examples/kea6/all-options.json +++ b/doc/examples/kea6/all-options.json @@ -2134,7 +2134,8 @@ "space": "docsis3-v6" } ], - "subnet": "2001:db8:d0c5:15::/64" + "subnet": "2001:db8:d0c5:15::/64", + "id": 1 } ] } diff --git a/doc/examples/kea6/backends.json b/doc/examples/kea6/backends.json index 7e16244877..52ed3ec599 100644 --- a/doc/examples/kea6/backends.json +++ b/doc/examples/kea6/backends.json @@ -81,6 +81,7 @@ "subnet6": [ { "pools": [ { "pool": "2001:db8:1::/80" } ], + "id": 1, "subnet": "2001:db8:1::/64", "interface": "eth0" } diff --git a/doc/examples/kea6/classify.json b/doc/examples/kea6/classify.json index a5fc2e98a0..796926c683 100644 --- a/doc/examples/kea6/classify.json +++ b/doc/examples/kea6/classify.json @@ -56,6 +56,7 @@ // least subnet and pool entries. "subnet6": [ { + "id": 1, "pools": [ { "pool": "2001:db8:1::/80" } ], "subnet": "2001:db8:1::/64", "client-class": "cable-modems", @@ -66,6 +67,7 @@ // DUID 01:02:03:04:05:0A:0B:0C:0D:0E. This client will always be assigned // to this class. { + "id": 2, "pools": [ { "pool": "2001:db8:2::/80" } ], "subnet": "2001:db8:2::/64", "reservations": [ @@ -79,6 +81,7 @@ // The following subnet contains a pool with a class constraint: only // clients which belong to the class are allowed to use this pool. { + "id": 3, "pools": [ { "pool": "2001:db8:4::/80", diff --git a/doc/examples/kea6/classify2.json b/doc/examples/kea6/classify2.json index 474c3932b1..ffdf32d808 100644 --- a/doc/examples/kea6/classify2.json +++ b/doc/examples/kea6/classify2.json @@ -67,6 +67,7 @@ // least subnet and pool entries. "subnet6": [ { + "id": 1, "pools": [ { "pool": "2001:db8:1::/80" } ], "subnet": "2001:db8:1::/64", "client-class": "cable-modems", @@ -76,6 +77,7 @@ // DUID 01:02:03:04:05:0A:0B:0C:0D:0E. This client will always be assigned // to this class. { + "id": 2, "pools": [ { "pool": "2001:db8:2::/80" } ], "subnet": "2001:db8:2::/64", "reservations": [ @@ -89,6 +91,7 @@ // The following subnet contains a pool with a class constraint: only // clients which belong to the class are allowed to use this pool. { + "id": 3, "pools": [ { "pool": "2001:db8:4::/80", @@ -105,6 +108,7 @@ // This happens after subnet selection and before address allocation // from pools. { + "id": 4, "pools": [ { "pool": "2001:db8:8::/64", diff --git a/doc/examples/kea6/dhcpv4-over-dhcpv6.json b/doc/examples/kea6/dhcpv4-over-dhcpv6.json index e811ca0d3e..f09a18c50b 100644 --- a/doc/examples/kea6/dhcpv4-over-dhcpv6.json +++ b/doc/examples/kea6/dhcpv4-over-dhcpv6.json @@ -22,7 +22,8 @@ "rebind-timer": 2000, "subnet6": [ - { "subnet": "2001:db8:1:1::/64", + { "id": 1, + "subnet": "2001:db8:1:1::/64", "interface": "eth0", "pools": [ { "pool": "2001:db8:1:1::1:0/112" } ] } ], diff --git a/doc/examples/kea6/dnr.json b/doc/examples/kea6/dnr.json index b43fe23062..e902f5f209 100644 --- a/doc/examples/kea6/dnr.json +++ b/doc/examples/kea6/dnr.json @@ -60,6 +60,7 @@ // least subnet and pool entries. "subnet6": [ { + "id": 1, "pools": [ { "pool": "2001:db8:1::/80" } ], "subnet": "2001:db8:1::/64", "interface": "eth0" @@ -82,4 +83,4 @@ } ] } -} \ No newline at end of file +} diff --git a/doc/examples/kea6/duid.json b/doc/examples/kea6/duid.json index 49f1874cce..0bc3753d11 100644 --- a/doc/examples/kea6/duid.json +++ b/doc/examples/kea6/duid.json @@ -54,6 +54,7 @@ // least subnet and pool entries. "subnet6": [ { + "id": 1, "pools": [ { "pool": "2001:db8:1::/80" } ], "subnet": "2001:db8:1::/64", "interface": "eth0" diff --git a/doc/examples/kea6/global-reservations.json b/doc/examples/kea6/global-reservations.json index c7fac51943..59cc873cd4 100644 --- a/doc/examples/kea6/global-reservations.json +++ b/doc/examples/kea6/global-reservations.json @@ -137,6 +137,8 @@ // are the same as in the regular scenario. "subnet6": [ { + "id": 1, + "subnet": "2001:db8::/47", "pools": [ { "pool": "2001:db8::/64" } ], diff --git a/doc/examples/kea6/ha-hot-standby-server1-with-tls.json b/doc/examples/kea6/ha-hot-standby-server1-with-tls.json index f9c604be3b..3a586f9c16 100644 --- a/doc/examples/kea6/ha-hot-standby-server1-with-tls.json +++ b/doc/examples/kea6/ha-hot-standby-server1-with-tls.json @@ -120,6 +120,8 @@ // least subnet and pool entries. "subnet6": [ { + "id": 1, + "subnet": "2001:db8:1::/64", "pools": [ diff --git a/doc/examples/kea6/ha-hot-standby-server2.json b/doc/examples/kea6/ha-hot-standby-server2.json index bb1604e50d..43c751bf12 100644 --- a/doc/examples/kea6/ha-hot-standby-server2.json +++ b/doc/examples/kea6/ha-hot-standby-server2.json @@ -111,6 +111,8 @@ // least subnet and pool entries. "subnet6": [ { + "id": 1, + "subnet": "2001:db8:1::/64", "pools": [ diff --git a/doc/examples/kea6/hooks.json b/doc/examples/kea6/hooks.json index 73a7d0708d..4677250e07 100644 --- a/doc/examples/kea6/hooks.json +++ b/doc/examples/kea6/hooks.json @@ -24,6 +24,7 @@ // Define a single subnet. "subnet6": [ { + "id": 1, "pools": [ { "pool": "2001:db8:1::/80", diff --git a/doc/examples/kea6/iPXE.json b/doc/examples/kea6/iPXE.json index 58f81b464e..108233b113 100644 --- a/doc/examples/kea6/iPXE.json +++ b/doc/examples/kea6/iPXE.json @@ -60,6 +60,7 @@ ], "subnet6": [ { + "id": 1, "subnet": "2001:db8::/64" } ] diff --git a/doc/examples/kea6/leases-expiration.json b/doc/examples/kea6/leases-expiration.json index 8c2c1759c1..46a410ff3a 100644 --- a/doc/examples/kea6/leases-expiration.json +++ b/doc/examples/kea6/leases-expiration.json @@ -58,6 +58,7 @@ // least subnet and pool entries. "subnet6": [ { + "id": 1, "pools": [ { "pool": "2001:db8:1::/80" } ], "subnet": "2001:db8:1::/64", "interface": "eth0" diff --git a/doc/examples/kea6/multiple-options.json b/doc/examples/kea6/multiple-options.json index 2d4defe0ee..eae1d8e74b 100644 --- a/doc/examples/kea6/multiple-options.json +++ b/doc/examples/kea6/multiple-options.json @@ -158,6 +158,7 @@ ] } ], + "id": 1, "subnet": "2001:db8:1::/64", "interface": "eth0" } diff --git a/doc/examples/kea6/mysql-reservations.json b/doc/examples/kea6/mysql-reservations.json index 74beb2c631..f8a99a059f 100644 --- a/doc/examples/kea6/mysql-reservations.json +++ b/doc/examples/kea6/mysql-reservations.json @@ -65,6 +65,8 @@ // id will be used to search for the reservations within the database. "subnet6": [ { + "id": 1, + "subnet": "2001:db8:1::/48", "pools": [ { "pool": "2001:db8:1::/80" } ], diff --git a/doc/examples/kea6/pgsql-reservations.json b/doc/examples/kea6/pgsql-reservations.json index 6c61019650..35b571e189 100644 --- a/doc/examples/kea6/pgsql-reservations.json +++ b/doc/examples/kea6/pgsql-reservations.json @@ -62,6 +62,8 @@ // id will be used to search for the reservations within the database. "subnet6": [ { + "id": 1, + "subnet": "2001:db8:1::/48", "pools": [ { "pool": "2001:db8:1::/80" } ], diff --git a/doc/examples/kea6/reservations.json b/doc/examples/kea6/reservations.json index a41eb204a6..95a0e9df1b 100644 --- a/doc/examples/kea6/reservations.json +++ b/doc/examples/kea6/reservations.json @@ -41,6 +41,8 @@ // least subnet and pool entries. "subnet6": [ { + "id": 1, + "subnet": "2001:db8:1::/48", // This directive tells Kea that reservations may be made both in-pool diff --git a/doc/examples/kea6/several-subnets.json b/doc/examples/kea6/several-subnets.json index 8ef391674d..b32b56a3aa 100644 --- a/doc/examples/kea6/several-subnets.json +++ b/doc/examples/kea6/several-subnets.json @@ -33,13 +33,13 @@ // least subnet and pool entries. "subnet6": [ { "pools": [ { "pool": "2001:db8:1::/80" } ], - "subnet": "2001:db8:1::/64" }, + "id": 1, "subnet": "2001:db8:1::/64" }, { "pools": [ { "pool": "2001:db8:2::/80" } ], - "subnet": "2001:db8:2::/64" }, + "id": 2, "subnet": "2001:db8:2::/64" }, { "pools": [ { "pool": "2001:db8:3::/80" } ], - "subnet": "2001:db8:3::/64" }, + "id": 3, "subnet": "2001:db8:3::/64" }, { "pools": [ { "pool": "2001:db8:4::/80" } ], - "subnet": "2001:db8:4::/64" } ], + "id": 4, "subnet": "2001:db8:4::/64" } ], // The following configures logging. It assumes that messages with at // least informational level (info, warn, error and fatal) should be diff --git a/doc/examples/kea6/shared-network.json b/doc/examples/kea6/shared-network.json index 71ded47f6d..0b3416e7db 100644 --- a/doc/examples/kea6/shared-network.json +++ b/doc/examples/kea6/shared-network.json @@ -27,6 +27,7 @@ // This is regular subnet. It's not part of any shared-network. "subnet6": [ { + "id": 1, "pools": [ { "pool": "2001:db8:2::/80" } ], "subnet": "2001:db8:2::/64", "interface": "eth0" @@ -113,6 +114,7 @@ // are out-of-pool. // Ignored when reservations-in-subnet is false. "reservations-out-of-pool": false, + "id": 2, "subnet": "2001:db8:1::/64", "pools": [ { "pool": "2001:db8:1:0:abcd::/80" } ], "valid-lifetime": 40 @@ -140,6 +142,7 @@ // are out-of-pool. // Ignored when reservations-in-subnet is false. "reservations-out-of-pool": false, + "id": 3, "subnet": "3000::/16", "valid-lifetime": 40 } diff --git a/doc/examples/kea6/simple.json b/doc/examples/kea6/simple.json index 342c035320..06e51e93bf 100644 --- a/doc/examples/kea6/simple.json +++ b/doc/examples/kea6/simple.json @@ -35,6 +35,7 @@ // least subnet and pool entries. "subnet6": [ { + "id": 1, "pools": [ { "pool": "2001:db8:1::/80" } ], "subnet": "2001:db8:1::/64", "interface": "eth0" diff --git a/doc/examples/kea6/softwire46.json b/doc/examples/kea6/softwire46.json index 85d1d0cdde..e04821f22f 100644 --- a/doc/examples/kea6/softwire46.json +++ b/doc/examples/kea6/softwire46.json @@ -30,6 +30,7 @@ // least subnet and pool entries. "subnet6": [ { + "id": 1, "pools": [ { "pool": "2001:db8:1::/80" } ], "subnet": "2001:db8:1::/64", "interface": "eth0", diff --git a/doc/examples/kea6/tee-times.json b/doc/examples/kea6/tee-times.json index 0a0e8605f6..5db9c98d57 100644 --- a/doc/examples/kea6/tee-times.json +++ b/doc/examples/kea6/tee-times.json @@ -31,12 +31,14 @@ "subnet6": [ { // This subnet use default calculation + "id": 1, "subnet": "2001:db8:1::/64", "pools": [ { "pool": "2001:db8:1::/80" } ] }, { // This subnet will use explicit values. Explicit // values override calculation. + "id": 2, "subnet": "2001:db8:2::/64", "pools": [ { "pool": "2001:db8:2::/80" } ], "renew-timer": 1000, @@ -44,6 +46,7 @@ }, { // This subnet will use custom percents + "id": 3, "subnet": "2001:db8:3::/64", "pools": [ { "pool": "2001:db8:3::/80" } ], "t1-percent": .45, diff --git a/doc/examples/kea6/with-ddns.json b/doc/examples/kea6/with-ddns.json index 660213bba0..58dd7ada34 100644 --- a/doc/examples/kea6/with-ddns.json +++ b/doc/examples/kea6/with-ddns.json @@ -36,6 +36,7 @@ "subnet6": [ { "pools": [ { "pool": "2001:db8:1::/80" } ], + "id": 1, "subnet": "2001:db8:1::/64", "interface": "eth0" } diff --git a/doc/sphinx/arm/classify.rst b/doc/sphinx/arm/classify.rst index 2d0aac2e52..a4593d8801 100644 --- a/doc/sphinx/arm/classify.rst +++ b/doc/sphinx/arm/classify.rst @@ -997,6 +997,7 @@ this subnet. Such a configuration can be achieved in the following way: ], "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/24", "pools": [ { "pool": "192.0.2.10 - 192.0.2.20" } ], "client-class": "Client_foo" @@ -1031,6 +1032,7 @@ configuration restricts use of the addresses in the range 2001:db8:1::1 to ], "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/64", "pools": [ { "pool": "2001:db8:1::-2001:db8:1::ffff" } ], "client-class": "Client_enterprise" @@ -1075,6 +1077,7 @@ to use this pool. Such a configuration can be achieved in the following way: ], "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/24", "pools": [ { @@ -1113,6 +1116,8 @@ configuration restricts use of the addresses in the range 2001:db8:1::1 to ], "subnet6": [ { + "id": 1, + "subnet": "2001:db8:1::/64", "pools": [ diff --git a/doc/sphinx/arm/config.rst b/doc/sphinx/arm/config.rst index 10e88751a7..46833a34e5 100644 --- a/doc/sphinx/arm/config.rst +++ b/doc/sphinx/arm/config.rst @@ -85,7 +85,8 @@ A very simple configuration for DHCPv4 could look like this: "rebind-timer": 2000, "subnet4": [{ "pools": [ { "pool": "192.0.2.1-192.0.2.200" } ], - "subnet": "192.0.2.0/24" + "subnet": "192.0.2.0/24", + "id": 1 }], # Now loggers are inside the DHCPv4 object. @@ -133,6 +134,7 @@ example JSON comment looks like this: "Dhcp4": { "subnet4": [{ + "id": 1, "subnet": "192.0.2.0/24", "pools": [{ "pool": "192.0.2.10 - 192.0.2.20" }], "comment": "second floor" @@ -157,6 +159,7 @@ example user context looks like this: "Dhcp4": { "subnet4": [{ + "id": 1, "subnet": "192.0.2.0/24", "pools": [{ "pool": "192.0.2.10 - 192.0.2.20" }], "user-context": { diff --git a/doc/sphinx/arm/dhcp4-srv.rst b/doc/sphinx/arm/dhcp4-srv.rst index 5b2d94daa9..b23622bb6d 100644 --- a/doc/sphinx/arm/dhcp4-srv.rst +++ b/doc/sphinx/arm/dhcp4-srv.rst @@ -155,6 +155,7 @@ be created. The basic configuration is as follows: # Finally, we list the subnets from which we will be leasing addresses. "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/24", "pools": [ { @@ -300,14 +301,17 @@ syntax would be used: { "subnet4": [ { + "id": 1, "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ], "subnet": "192.0.2.0/24" }, { + "id": 2, "pools": [ { "pool": "192.0.3.100 - 192.0.3.200" } ], "subnet": "192.0.3.0/24" }, { + "id": 3, "pools": [ { "pool": "192.0.4.1 - 192.0.4.254" } ], "subnet": "192.0.4.0/24" } @@ -2951,6 +2955,7 @@ options and sub-options, using the respective option code. ], "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/24", "reservations": [ { @@ -3019,6 +3024,7 @@ configuration looks like this: "Dhcp4": { "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/24", "option-data": [ { @@ -3210,6 +3216,7 @@ class are allowed to use that pool. "Dhcp4": { "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/24", "pools": [ { "pool": "192.0.2.10 - 192.0.2.20" } ], "client-class": "VENDOR_CLASS_docsis3.0" @@ -3249,6 +3256,7 @@ DNS servers set to 192.0.2.1 and 192.0.2.2. ], "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/24", "pools": [ { "pool": "192.0.2.10 - 192.0.2.20" } ], "client-class": "Client_foo" @@ -4044,11 +4052,13 @@ for a particular subnet. Consider the following simplified server configuration: "match-client-id": true, "subnet4": [ { + "id": 1, "subnet": "192.0.10.0/24", "pools": [ { "pool": "192.0.2.23-192.0.2.87" } ], "match-client-id": false }, { + "id": 1, "subnet": "10.0.0.0/8", "pools": [ { "pool": "10.0.0.23-10.0.2.99" } ] } @@ -4188,6 +4198,7 @@ ISC tested the following configuration: "subnet4": [ { + "id": 1, "subnet": "10.10.10.0/24", "4o6-interface": "eno33554984", "4o6-subnet": "2001:db8:1:1::/64", @@ -4462,6 +4473,7 @@ enable the option for the whole subnet, the following configuration can be used: { "subnet4": [ { + "id": 1, "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ], "subnet": "192.0.2.0/24", "option-data": [ @@ -4645,6 +4657,7 @@ in a subnet: { "subnet4": [ { + "id": 1, "pools": [ { "pool": "192.0.2.1 - 192.0.2.200" } ], "subnet": "192.0.2.0/24", "interface": "eth0", @@ -4839,6 +4852,7 @@ configuration: { "subnet4": [ { + "id": 1, "subnet": "10.0.0.0/24", "pools": [ { "pool": "10.0.0.10-10.0.0.100" } ], "ddns-qualifying-suffix": "example.isc.org.", @@ -4868,6 +4882,7 @@ different clients with different domain names: { "subnet4": [ { + "id": 1, "subnet": "10.0.0.0/24", "pools": [ { "pool": "10.0.0.10-10.0.0.100" } ], "reservations": [ @@ -4924,9 +4939,11 @@ example demonstrates how standard options can be defined: } ] } - ] + ], + ... } - ] + ], + ... } Vendor-specific options can be reserved in a similar manner: @@ -4952,9 +4969,11 @@ Vendor-specific options can be reserved in a similar manner: } ] } - ] + ], + ... } - ] + ], + ... } Options defined at the host level have the highest priority. In other words, @@ -4987,9 +5006,11 @@ message fields: "server-hostname": "server-hostname.example.org", "boot-file-name": "/tmp/bootfile.efi" } - ] + ], + ... } - ] + ], + ... } Note that those parameters can be specified in combination with other @@ -5037,6 +5058,7 @@ to them. ], "subnet4": [ { + "id": 1, "subnet": "10.0.0.0/24", "pools": [ { "pool": "10.0.0.10-10.0.0.100" } ], "reservations": [ @@ -5254,6 +5276,7 @@ An example configuration that disables reservations looks as follows: "Dhcp4": { "subnet4": [ { + "id": 1, "pools": [ { "pool": "192.0.2.10-192.0.2.100" @@ -5285,6 +5308,7 @@ An example configuration using global reservations is shown below: ], "subnet4": [ { + "id": 1, "pools": [ { "pool": "192.0.2.10-192.0.2.100" @@ -5401,7 +5425,8 @@ An example configuration that disables reservations looks as follows: { "reservations-global": false, "reservations-in-subnet": false, - "subnet": "192.0.2.0/24" + "subnet": "192.0.2.0/24", + "id": 1 } ] } @@ -5432,7 +5457,8 @@ An example configuration using global reservations is shown below: "pool": "192.0.2.10-192.0.2.100" } ], - "subnet": "192.0.2.0/24" + "subnet": "192.0.2.0/24", + "id": 1 } ] } @@ -5554,6 +5580,7 @@ following can be used: "valid-lifetime": 600, "subnet4": [ { + "id": 1, "subnet": "10.0.0.0/24", # It is replaced by the "reservations-global", # "reservations-in-subnet", and "reservations-out-of-pool" @@ -5613,6 +5640,7 @@ within the subnet as follows: ], "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/24", "reservations": [ { @@ -5689,6 +5717,7 @@ following example: { "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/24", "pools": [ { @@ -5698,6 +5727,7 @@ following example: ] }, { + "id": 2, "subnet": "192.0.3.0/24", "pools": [ { @@ -5784,6 +5814,7 @@ the same IP address but different MAC addresses: "ip-reservations-unique": false, "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/24", "reservations": [ { @@ -5873,6 +5904,7 @@ have reservations) will get their default router configured. "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/24", "pools": [ { @@ -5913,6 +5945,7 @@ redirects those customers to a captive portal urging them to bring their account "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/24", "pools": [ { @@ -6006,10 +6039,12 @@ introduced: # There are two subnets in this example. "subnet4": [ { + "id": 1, "subnet": "10.0.0.0/8", "pools": [ { "pool": "10.0.0.1 - 10.0.0.99" } ] }, { + "id": 2, "subnet": "192.0.2.0/24", "pools": [ { "pool": "192.0.2.100 - 192.0.2.199" } ] } @@ -6025,6 +6060,7 @@ introduced: # This is a regular subnet. It is not part of any shared network. "subnet4": [ { + "id": 3, "subnet": "192.0.3.0/24", "pools": [ { "pool": "192.0.3.1 - 192.0.3.200" } ], "interface": "eth1" @@ -6076,6 +6112,7 @@ then override its value in the subnet scope. For example: "subnet4": [ { + "id": 1, "subnet": "10.0.0.0/8", "pools": [ { "pool": "10.0.0.1 - 10.0.0.99" } ], @@ -6092,6 +6129,7 @@ then override its value in the subnet scope. For example: } ] }, { + "id": 2, "subnet": "192.0.2.0/24", "pools": [ { "pool": "192.0.2.100 - 192.0.2.199" } ], @@ -6141,11 +6179,13 @@ example of what **NOT** to do: "name": "office-floor-2", "subnet4": [ { + "id": 1, "subnet": "10.0.0.0/8", "pools": [ { "pool": "10.0.0.1 - 10.0.0.99" } ], "interface": "eth0" }, { + "id": 2, "subnet": "192.0.2.0/24", "pools": [ { "pool": "192.0.2.100 - 192.0.2.199" } ], @@ -6177,10 +6217,12 @@ shown in the example below. "subnet4": [ { + "id": 1, "subnet": "10.0.0.0/8", "pools": [ { "pool": "10.0.0.1 - 10.0.0.99" } ] }, { + "id": 2, "subnet": "192.0.2.0/24", "pools": [ { "pool": "192.0.2.100 - 192.0.2.199" } ] } @@ -6209,6 +6251,7 @@ of what **NOT** to do: "name": "kakapo", "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/26", "relay": { "ip-addresses": [ "192.1.1.1" ] @@ -6216,6 +6259,7 @@ of what **NOT** to do: "pools": [ { "pool": "192.0.2.63 - 192.0.2.63" } ] }, { + "id": 2, "subnet": "10.0.0.0/24", "relay": { # Specifying a different relay address for this @@ -6248,10 +6292,12 @@ shared network. }, "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/26", "pools": [ { "pool": "192.0.2.63 - 192.0.2.63" } ] }, { + "id": 2, "subnet": "10.0.0.0/24", "pools": [ { "pool": "10.0.0.16 - 10.0.0.16" } ] } @@ -6309,10 +6355,12 @@ following example: "interface": "eth0", "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/26", "pools": [ { "pool": "192.0.2.1 - 192.0.2.63" } ] }, { + "id": 2, "subnet": "10.0.0.0/24", "pools": [ { "pool": "10.0.0.2 - 10.0.0.250" } ], "client-class": "b-devices" @@ -6359,11 +6407,13 @@ on option 93 values. "interface": "eth0", "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/26", "pools": [ { "pool": "192.0.2.1 - 192.0.2.63" } ], "client-class": "a-devices" }, { + "id": 2, "subnet": "10.0.0.0/24", "pools": [ { "pool": "10.0.0.2 - 10.0.0.250" } ], "client-class": "b-devices" @@ -6574,6 +6624,7 @@ selects that subnet for a relay with address 10.0.0.1. "Dhcp4": { "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/24", "pools": [ { "pool": "192.0.2.10 - 192.0.2.20" } ], "relay": { @@ -6610,6 +6661,7 @@ everything connected behind the modems should get addresses from the "Dhcp4": { "subnet4": [ { + "id": 1, "subnet": "10.1.1.0/24", "pools": [ { "pool": "10.1.1.2 - 10.1.1.20" } ], "client-class": "docsis3.0", @@ -6618,6 +6670,7 @@ everything connected behind the modems should get addresses from the } }, { + "id": 2, "subnet": "192.0.2.0/24", "pools": [ { "pool": "192.0.2.10 - 192.0.2.20" } ], "relay": { @@ -7409,6 +7462,7 @@ of LED devices could be configured in the following way: "Dhcp4": { "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/24", "pools": [ { diff --git a/doc/sphinx/arm/dhcp6-srv.rst b/doc/sphinx/arm/dhcp6-srv.rst index ac635ce6c0..245d740eef 100644 --- a/doc/sphinx/arm/dhcp6-srv.rst +++ b/doc/sphinx/arm/dhcp6-srv.rst @@ -156,6 +156,7 @@ be created. The basic configuration is as follows: # Finally, we list the subnets from which we will be leasing addresses. "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/64", "pools": [ { @@ -261,10 +262,12 @@ syntax would be used: { "subnet6": [ { + "id": 1, "pools": [ { "pool": "2001:db8:1::/112" } ], "subnet": "2001:db8:1::/64" }, { + "id": 2, "pools": [ { "pool": "2001:db8:2::1-2001:db8:2::ffff" } ], "subnet": "2001:db8:2::/64" } @@ -1143,12 +1146,14 @@ second subnet, use a command similar to the following: "Dhcp6": { "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/64", "pools": [ { "pool": "2001:db8:1::1-2001:db8:1::ffff" } ] }, { + "id": 2, "subnet": "2001:db8:2::/64", "pools": [ { "pool": "2001:db8:2::/64" } @@ -1195,6 +1200,7 @@ for the subnet: "Dhcp6": { "subnet6": [ { + "id": 1, "subnet": "2001:d8b:1::/64", "pd-pools": [ { @@ -1230,6 +1236,7 @@ and which is delegated a prefix from this pool. "Dhcp6": { "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/48", "pd-pools": [ { @@ -2605,6 +2612,7 @@ may be configured as follows: "Dhcp6": { "subnet6": [ { + "id": 1, "subnet": "2001:db8:beef::/48", "pools": [ { @@ -2634,6 +2642,7 @@ shown below: "Dhcp6": { "subnet6": [ { + "id": 1, "subnet": "2001:db8:beef::/48", "rapid-commit": true, "pools": [ @@ -2704,6 +2713,7 @@ with a value of "vlan123": "Dhcp6": { "subnet6": [ { + "id": 1, "subnet": "2001:db8:beef::/48", "pools": [ { @@ -2869,6 +2879,7 @@ servers set to 2001:db8:0::1 and 2001:db8:2::1. ], "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/64", "pools": [ { "pool": "2001:db8:1::-2001:db8:1::ffff" } ], "client-class": "Client_enterprise" @@ -2888,6 +2899,7 @@ eRouter1.0 client class are allowed to use that pool. "Dhcp6": { "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/64", "pools": [ { @@ -3559,6 +3571,7 @@ ISC tested the following configuration: "rebind-timer": 2000, "subnet6": [ { + "id": 1, "subnet": "2001:db8:1:1::/64", "interface": "eno33554984", "pools": [ { "pool": "2001:db8:1:1::1:0/112" } ] @@ -3936,6 +3949,7 @@ specific hosts: { "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/48", "pools": [ { "pool": "2001:db8:1::/80" } ], "pd-pools": [ @@ -4135,6 +4149,7 @@ configuration: { "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/48", "pools": [ { "pool": "2001:db8:1::/80" } ], "ddns-qualifying-suffix": "example.isc.org.", @@ -4166,6 +4181,7 @@ different clients with different domain names: { "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/48", "pools": [ { "pool": "2001:db8:1::/80" } ], "reservations": [ @@ -4294,7 +4310,9 @@ to them. } ], "subnet6": [ - { "pools": [ { "pool": "2001:db8:1::/64" } ], + { + "id": 1, + "pools": [ { "pool": "2001:db8:1::/64" } ], "subnet": "2001:db8:1::/48", "reservations": [ { @@ -4511,6 +4529,7 @@ An example configuration that disables reservations looks as follows: "Dhcp6": { "subnet6": [ { + "id": 1, "pools": [ { "pool": "2001:db8:1::-2001:db8:1::100" @@ -4542,6 +4561,7 @@ An example configuration using global reservations is shown below: ], "subnet6": [ { + "id": 1, "pools": [ { "pool": "2001:db8:1::-2001:db8:1::100" @@ -4658,7 +4678,8 @@ An example configuration that disables reservations looks as follows: { "reservations-global": false, "reservations-in-subnet": false, - "subnet": "2001:db8:1::/64" + "subnet": "2001:db8:1::/64", + "id": 1 } ] } @@ -4689,7 +4710,8 @@ An example configuration using global reservations is shown below: "pool": "2001:db8:1::-2001:db8:1::100" } ], - "subnet": "2001:db8:1::/64" + "subnet": "2001:db8:1::/64", + "id": 1 } ] } @@ -4861,6 +4883,7 @@ within the subnet as follows: ], "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/64", "reservations": [ { @@ -4937,6 +4960,7 @@ following example: { "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/64", "pools": [ { @@ -4946,6 +4970,7 @@ following example: ] }, { + "id": 2, "subnet": "2001:db8:2::/64", "pools": [ { @@ -5023,6 +5048,7 @@ the same IPv6 address but different MAC addresses: "ip-reservations-unique": false, "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/64", "reservations": [ { @@ -5114,6 +5140,7 @@ have reservations) will get their default DNS server configured. "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/48", "pools": [ { @@ -5155,6 +5182,7 @@ their accounts up to date. "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/48", "pools": [ { @@ -5255,10 +5283,12 @@ introduced: # There are two subnets in this example. "subnet6": [ { + "id": 1, "subnet": "2001:db8::/48", "pools": [ { "pool": "2001:db8::1 - 2001:db8::ffff" } ] }, { + "id": 2, "subnet": "3ffe:ffe::/64", "pools": [ { "pool": "3ffe:ffe::/64" } ] } @@ -5274,6 +5304,7 @@ introduced: # This is a regular subnet. It is not part of any shared-network. "subnet6": [ { + "id": 3, "subnet": "2001:db9::/48", "pools": [ { "pool": "2001:db9::/64" } ], "relay": { @@ -5326,6 +5357,7 @@ then override its value in the subnet scope. For example: "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/48", "pools": [ { "pool": "2001:db8:1::1 - 2001:db8:1::ffff" } ], @@ -5342,6 +5374,7 @@ then override its value in the subnet scope. For example: } ] }, { + "id": 2, "subnet": "2001:db8:2::/48", "pools": [ { "pool": "2001:db8:2::1 - 2001:db8:2::ffff" } ], @@ -5418,11 +5451,13 @@ of what **NOT** to do: "name": "office-floor-2", "subnet6": [ { + "id": 1, "subnet": "2001:db8::/64", "pools": [ { "pool": "2001:db8::1 - 2001:db8::ffff" } ], "interface": "eth0" }, { + "id": 2, "subnet": "3ffe:abcd::/64", "pools": [ { "pool": "3ffe:abcd::1 - 3ffe:abcd::ffff" } ], ... @@ -5454,10 +5489,12 @@ shown in the example below. "subnet6": [ { + "id": 1, "subnet": "2001:db8::/64", "pools": [ { "pool": "2001:db8::1 - 2001:db8::ffff" } ] }, { + "id": 2, "subnet": "3ffe:abcd::/64", "pools": [ { "pool": "3ffe:abcd::1 - 3ffe:abcd::ffff" } ] } @@ -5486,6 +5523,7 @@ of what **NOT** to do: "name": "kakapo", "subnet6": [ { + "id": 1, "subnet": "2001:db8::/64", "relay": { "ip-addresses": [ "2001:db8::1234" ] @@ -5493,6 +5531,7 @@ of what **NOT** to do: "pools": [ { "pool": "2001:db8::1 - 2001:db8::ffff" } ] }, { + "id": 2, "subnet": "3ffe:abcd::/64", "pools": [ { "pool": "3ffe:abcd::1 - 3ffe:abcd::ffff" } ], "relay": { @@ -5525,10 +5564,12 @@ shared network. }, "subnet6": [ { + "id": 1, "subnet": "2001:db8::/64", "pools": [ { "pool": "2001:db8::1 - 2001:db8::ffff" } ] }, { + "id": 2, "subnet": "3ffe:abcd::/64", "pools": [ { "pool": "3ffe:abcd::1 - 3ffe:abcd::ffff" } ] } @@ -5588,10 +5629,12 @@ following example: }, "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/64", "pools": [ { "pool": "2001:db8:1::20 - 2001:db8:1::ff" } ] }, { + "id": 2, "subnet": "2001:db8:3::/64", "pools": [ { "pool": "2001:db8:3::20 - 2001:db8:3::ff" } ], "client-class": "b-devices" @@ -5641,11 +5684,13 @@ on option 1234 values. }, "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/64", "pools": [ { "pool": "2001:db8:1::20 - 2001:db8:1::ff" } ], "client-class": "a-devices" }, { + "id": 2, "subnet": "2001:db8:3::/64", "pools": [ { "pool": "2001:db8:3::20 - 2001:db8:3::ff" } ], "client-class": "b-devices" @@ -6112,6 +6157,7 @@ selects that subnet for a relay with address 3000::1. "Dhcp6": { "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/64", "pools": [ { @@ -6151,6 +6197,7 @@ The following configuration can serve that situation: "Dhcp6": { "subnet6": [ { + "id": 1, "subnet": "3000::/64", "pools": [ { "pool": "3000::2 - 3000::ffff" } @@ -6161,6 +6208,7 @@ The following configuration can serve that situation: } }, { + "id": 2, "subnet": "2001:db8:1::/64", "pools": [ { @@ -7231,6 +7279,7 @@ option is actually needed. An example configuration looks as follows: "lw4over6-bind-prefix-len": 56 } } ], + "id": 1, "subnet": "2001:db8::/32", # This is a subnet-specific context. Any type of diff --git a/doc/sphinx/arm/hooks-ha.rst b/doc/sphinx/arm/hooks-ha.rst index e08a744a6b..681276a24e 100644 --- a/doc/sphinx/arm/hooks-ha.rst +++ b/doc/sphinx/arm/hooks-ha.rst @@ -271,6 +271,7 @@ Server 1: }], "subnet4": [{ + "id": 1, "subnet": "192.0.3.0/24", "pools": [{ "pool": "192.0.3.100 - 192.0.3.250" @@ -317,6 +318,7 @@ Server 2: }], "subnet4": [{ + "id": 1, "subnet": "192.0.3.0/24", "pools": [{ "pool": "192.0.3.100 - 192.0.3.250" @@ -702,6 +704,7 @@ only difference that ``this-server-name`` should be set to "server2" and }], "subnet4": [{ + "id": 1, "subnet": "192.0.3.0/24", "pools": [{ "pool": "192.0.3.100 - 192.0.3.150", @@ -1011,6 +1014,7 @@ library configuration has been removed from this example. }], "subnet4": [{ + "id": 1, "subnet": "192.0.3.0/24", "pools": [{ "pool": "192.0.3.100 - 192.0.3.125", @@ -1097,6 +1101,7 @@ The following is an example configuration of the primary server in a }], "subnet4": [{ + "id": 1, "subnet": "192.0.3.0/24", "pools": [{ "pool": "192.0.3.100 - 192.0.3.250", @@ -1174,6 +1179,7 @@ The following is an example configuration file for the primary server in a }], "subnet4": [{ + "id": 1, "subnet": "192.0.3.0/24", "pools": [{ "pool": "192.0.3.100 - 192.0.3.250" diff --git a/doc/sphinx/arm/hooks-legal-log.rst b/doc/sphinx/arm/hooks-legal-log.rst index 67ff4efa1d..41dc34e08c 100644 --- a/doc/sphinx/arm/hooks-legal-log.rst +++ b/doc/sphinx/arm/hooks-legal-log.rst @@ -262,6 +262,7 @@ of these subnets. For example: "Dhcp4": { "subnet4": [ { + "id": 1, "subnet": "192.0.2.0/24", "pools": [ { @@ -289,6 +290,7 @@ logging for an IPv6 subnet: "Dhcp6": { "subnet6": [ { + "id": 1, "subnet": "2001:db8:1::/64", "pools": [ { diff --git a/doc/sphinx/arm/hooks.rst b/doc/sphinx/arm/hooks.rst index b8e871170a..af31587d17 100644 --- a/doc/sphinx/arm/hooks.rst +++ b/doc/sphinx/arm/hooks.rst @@ -303,6 +303,7 @@ The DDNS-Tuning Hook uses user-context to configure per subnet behavior. Example :: "subnet4": [{ + "id": 1, "subnet": "192.0.2.0/24", "pools": [{ "pool": "192.0.2.10 - 192.0.2.20" -- 2.47.2