From 974f9a5d5e13241e2b4ea54152bf835db6b7feff Mon Sep 17 00:00:00 2001 From: David Vølker Date: Fri, 15 Aug 2025 09:31:49 +0200 Subject: kea: T6211: add VRF support for KEA dhcp server --- .../include/dhcp/dhcp-server-common-config.xml.i | 342 +++++++++++++++++++++ .../include/dhcp/dhcpv6-server-common-config.xml.i | 276 +++++++++++++++++ interface-definitions/service_dhcp-server.xml.in | 341 +------------------- interface-definitions/service_dhcpv6-server.xml.in | 275 +---------------- interface-definitions/vrf.xml.in | 25 ++ 5 files changed, 645 insertions(+), 614 deletions(-) create mode 100644 interface-definitions/include/dhcp/dhcp-server-common-config.xml.i create mode 100644 interface-definitions/include/dhcp/dhcpv6-server-common-config.xml.i (limited to 'interface-definitions') diff --git a/interface-definitions/include/dhcp/dhcp-server-common-config.xml.i b/interface-definitions/include/dhcp/dhcp-server-common-config.xml.i new file mode 100644 index 000000000..60eb01489 --- /dev/null +++ b/interface-definitions/include/dhcp/dhcp-server-common-config.xml.i @@ -0,0 +1,342 @@ + +#include + + + Dynamically update Domain Name System (RFC4702) + + + #include + + + TSIG key definition for DNS updates + + #include + + Invalid TSIG key name. May only contain letters, numbers, hyphen and underscore + + + + + TSIG key algorithm + + md5 sha1 sha224 sha256 sha384 sha512 + + + md5 + MD5 HMAC algorithm + + + sha1 + SHA1 HMAC algorithm + + + sha224 + SHA224 HMAC algorithm + + + sha256 + SHA256 HMAC algorithm + + + sha384 + SHA384 HMAC algorithm + + + sha512 + SHA512 HMAC algorithm + + + (md5|sha1|sha224|sha256|sha384|sha512) + + Invalid TSIG key algorithm + + + + + TSIG key secret (base64-encoded) + + + + + + + + + + Forward DNS domain name + + + + Invalid forward DNS domain name + + + + + TSIG key name for forward DNS updates + + #include + + Invalid TSIG key name. May only contain letters, numbers, numbers, hyphen and underscore + + + #include + + + + + Reverse DNS domain name + + + + Invalid reverse DNS domain name + + + + + TSIG key name for reverse DNS updates + + #include + + Invalid TSIG key name. May only contain letters, numbers, numbers, hyphen and underscore + + + #include + + + + + + + DHCP high availability configuration + + + #include + + + Configure high availability mode + + active-active active-passive + + + active-active + Both server attend DHCP requests + + + active-passive + Only primary server attends DHCP requests + + + (active-active|active-passive) + + Invalid DHCP high availability mode + + active-active + + + + IPv4 remote address used for connection + + ipv4 + IPv4 address of high availability peer + + + + + + + + + Peer name used to identify connection + + #include + + Invalid failover peer name. May only contain letters, numbers and .-_ + + + + + High availability hierarchy + + primary secondary + + + primary + Configure this server to be the primary node + + + secondary + Configure this server to be the secondary node + + + (primary|secondary) + + Invalid DHCP high availability peer status + + + #include + #include + + + + + Updating /etc/hosts file (per client lease) + + + +#include +#include + + + Name of DHCP shared network + + #include + + Invalid shared network name. May only contain letters, numbers and .-_ + + + + + Dynamically update Domain Name System (RFC4702) + + + #include + + + + + Option to make DHCP server authoritative for this physical network + + + + #include + #include + #include + #include + + + DHCP subnet for shared network + + ipv4net + IPv4 address and prefix length + + + + + Invalid IPv4 subnet definition + + + #include + #include + #include + #include + + + Dynamically update Domain Name System (RFC4702) + + + #include + + + + + IP address to exclude from DHCP lease range + + ipv4 + IPv4 address to exclude from lease range + + + + + + + + + + Ignore client identifier for lease lookups + + + + + + Lease timeout in seconds + + u32 + DHCP lease time in seconds + + + + + DHCP lease time must be between 0 and 4294967295 (49 days) + + 86400 + + + + DHCP lease range + + #include + + Invalid range name, may only be alphanumeric, dot and hyphen + + + #include + + + First IP address for DHCP lease range + + ipv4 + IPv4 start address of pool + + + + + + + + + Last IP address for DHCP lease range + + ipv4 + IPv4 end address of pool + + + + + + + + + + + Hostname for static mapping reservation + + + + Invalid static mapping hostname + + + #include + #include + #include + #include + #include + #include + + + + + Unique ID mapped to leases in the lease file + + u32 + Unique subnet ID + + + + + + + + + + + diff --git a/interface-definitions/include/dhcp/dhcpv6-server-common-config.xml.i b/interface-definitions/include/dhcp/dhcpv6-server-common-config.xml.i new file mode 100644 index 000000000..798ecac4b --- /dev/null +++ b/interface-definitions/include/dhcp/dhcpv6-server-common-config.xml.i @@ -0,0 +1,276 @@ + +#include +#include + + + Do not install routes for delegated prefixes + + + + + + Additional global parameters for DHCPv6 server + + + #include + + + + + Preference of this DHCPv6 server compared with others + + u32:0-255 + DHCPv6 server preference (0-255) + + + + + Preference must be between 0 and 255 + + + + + DHCPv6 shared network name + + #include + + Invalid DHCPv6 shared network name. May only contain letters, numbers and .-_ + + + #include + #include + #include + #include + + + IPv6 DHCP subnet for this shared network + + ipv6net + IPv6 address and prefix length + + + + + + + #include + #include + + + Parameters setting ranges for assigning IPv6 addresses + + #include + + Invalid range name, may only be alphanumeric, dot and hyphen + + + #include + + + IPv6 prefix defining range of addresses to assign + + ipv6net + IPv6 address and prefix length + + + + + + + + + First in range of consecutive IPv6 addresses to assign + + ipv6 + IPv6 address + + + + + + + + + Last in range of consecutive IPv6 addresses + + ipv6 + IPv6 address + + + + + + + + + + + Parameters relating to the lease time + + + + + Default time (in seconds) that will be assigned to a lease + + u32:1-4294967295 + DHCPv6 valid lifetime + + + + + + + + + Maximum time (in seconds) that will be assigned to a lease + + u32:1-4294967295 + Maximum lease time in seconds + + + + + + + + + Minimum time (in seconds) that will be assigned to a lease + + u32:1-4294967295 + Minimum lease time in seconds + + + + + + + + + + + Parameters relating to IPv6 prefix delegation + + + + + IPv6 prefix to be used in prefix delegation + + ipv6 + IPv6 prefix used in prefix delegation + + + + + + + + + Length in bits of prefix + + u32:32-64 + Prefix length (32-64) + + + + + Prefix length must be between 32 and 64 + + + + + Length in bits of prefixes to be delegated + + u32:32-64 + Delegated prefix length (32-64) + + + + + Delegated prefix length must be between 32 and 96 + + + + + IPv6 prefix to be excluded from prefix delegation + + ipv6 + IPv6 prefix excluded from prefix delegation + + + + + + + + + Length in bits of excluded prefix + + u32:33-64 + Excluded prefix length (33-128) + + + + + Prefix length must be between 33 and 128 + + + + + + + + + Hostname for static mapping reservation + + + + Invalid static mapping hostname + + + #include + #include + #include + #include + + + Client IPv6 address for this static mapping + + ipv6 + IPv6 address for this static mapping + + + + + + + + + Client IPv6 prefix for this static mapping + + ipv6net + IPv6 prefix for this static mapping + + + + + + + + + + + Unique ID mapped to leases in the lease file + + u32 + Unique subnet ID + + + + + + + + + + + diff --git a/interface-definitions/service_dhcp-server.xml.in b/interface-definitions/service_dhcp-server.xml.in index 78f1cea4e..4d1172e03 100644 --- a/interface-definitions/service_dhcp-server.xml.in +++ b/interface-definitions/service_dhcp-server.xml.in @@ -9,346 +9,7 @@ 911 - #include - - - Dynamically update Domain Name System (RFC4702) - - - #include - - - TSIG key definition for DNS updates - - #include - - Invalid TSIG key name. May only contain letters, numbers, hyphen and underscore - - - - - TSIG key algorithm - - md5 sha1 sha224 sha256 sha384 sha512 - - - md5 - MD5 HMAC algorithm - - - sha1 - SHA1 HMAC algorithm - - - sha224 - SHA224 HMAC algorithm - - - sha256 - SHA256 HMAC algorithm - - - sha384 - SHA384 HMAC algorithm - - - sha512 - SHA512 HMAC algorithm - - - (md5|sha1|sha224|sha256|sha384|sha512) - - Invalid TSIG key algorithm - - - - - TSIG key secret (base64-encoded) - - - - - - - - - - Forward DNS domain name - - - - Invalid forward DNS domain name - - - - - TSIG key name for forward DNS updates - - #include - - Invalid TSIG key name. May only contain letters, numbers, numbers, hyphen and underscore - - - #include - - - - - Reverse DNS domain name - - - - Invalid reverse DNS domain name - - - - - TSIG key name for reverse DNS updates - - #include - - Invalid TSIG key name. May only contain letters, numbers, numbers, hyphen and underscore - - - #include - - - - - - - DHCP high availability configuration - - - #include - - - Configure high availability mode - - active-active active-passive - - - active-active - Both server attend DHCP requests - - - active-passive - Only primary server attends DHCP requests - - - (active-active|active-passive) - - Invalid DHCP high availability mode - - active-active - - - - IPv4 remote address used for connection - - ipv4 - IPv4 address of high availability peer - - - - - - - - - Peer name used to identify connection - - #include - - Invalid failover peer name. May only contain letters, numbers and .-_ - - - - - High availability hierarchy - - primary secondary - - - primary - Configure this server to be the primary node - - - secondary - Configure this server to be the secondary node - - - (primary|secondary) - - Invalid DHCP high availability peer status - - - #include - #include - - - - - Updating /etc/hosts file (per client lease) - - - - #include - #include - - - Name of DHCP shared network - - #include - - Invalid shared network name. May only contain letters, numbers and .-_ - - - - - Dynamically update Domain Name System (RFC4702) - - - #include - - - - - Option to make DHCP server authoritative for this physical network - - - - #include - #include - #include - #include - - - DHCP subnet for shared network - - ipv4net - IPv4 address and prefix length - - - - - Invalid IPv4 subnet definition - - - #include - #include - #include - #include - - - Dynamically update Domain Name System (RFC4702) - - - #include - - - - - IP address to exclude from DHCP lease range - - ipv4 - IPv4 address to exclude from lease range - - - - - - - - - - Ignore client identifier for lease lookups - - - - - - Lease timeout in seconds - - u32 - DHCP lease time in seconds - - - - - DHCP lease time must be between 0 and 4294967295 (49 days) - - 86400 - - - - DHCP lease range - - #include - - Invalid range name, may only be alphanumeric, dot and hyphen - - - #include - - - First IP address for DHCP lease range - - ipv4 - IPv4 start address of pool - - - - - - - - - Last IP address for DHCP lease range - - ipv4 - IPv4 end address of pool - - - - - - - - - - - Hostname for static mapping reservation - - - - Invalid static mapping hostname - - - #include - #include - #include - #include - #include - #include - - - - - Unique ID mapped to leases in the lease file - - u32 - Unique subnet ID - - - - - - - - - - + #include diff --git a/interface-definitions/service_dhcpv6-server.xml.in b/interface-definitions/service_dhcpv6-server.xml.in index a6763a345..d2b96061d 100644 --- a/interface-definitions/service_dhcpv6-server.xml.in +++ b/interface-definitions/service_dhcpv6-server.xml.in @@ -8,280 +8,7 @@ 900 - #include - #include - - - Do not install routes for delegated prefixes - - - - - - Additional global parameters for DHCPv6 server - - - #include - - - - - Preference of this DHCPv6 server compared with others - - u32:0-255 - DHCPv6 server preference (0-255) - - - - - Preference must be between 0 and 255 - - - - - DHCPv6 shared network name - - #include - - Invalid DHCPv6 shared network name. May only contain letters, numbers and .-_ - - - #include - #include - #include - #include - - - IPv6 DHCP subnet for this shared network - - ipv6net - IPv6 address and prefix length - - - - - - - #include - #include - - - Parameters setting ranges for assigning IPv6 addresses - - #include - - Invalid range name, may only be alphanumeric, dot and hyphen - - - #include - - - IPv6 prefix defining range of addresses to assign - - ipv6net - IPv6 address and prefix length - - - - - - - - - First in range of consecutive IPv6 addresses to assign - - ipv6 - IPv6 address - - - - - - - - - Last in range of consecutive IPv6 addresses - - ipv6 - IPv6 address - - - - - - - - - - - Parameters relating to the lease time - - - - - Default time (in seconds) that will be assigned to a lease - - u32:1-4294967295 - DHCPv6 valid lifetime - - - - - - - - - Maximum time (in seconds) that will be assigned to a lease - - u32:1-4294967295 - Maximum lease time in seconds - - - - - - - - - Minimum time (in seconds) that will be assigned to a lease - - u32:1-4294967295 - Minimum lease time in seconds - - - - - - - - - - - Parameters relating to IPv6 prefix delegation - - - - - IPv6 prefix to be used in prefix delegation - - ipv6 - IPv6 prefix used in prefix delegation - - - - - - - - - Length in bits of prefix - - u32:32-64 - Prefix length (32-64) - - - - - Prefix length must be between 32 and 64 - - - - - Length in bits of prefixes to be delegated - - u32:32-64 - Delegated prefix length (32-64) - - - - - Delegated prefix length must be between 32 and 96 - - - - - IPv6 prefix to be excluded from prefix delegation - - ipv6 - IPv6 prefix excluded from prefix delegation - - - - - - - - - Length in bits of excluded prefix - - u32:33-64 - Excluded prefix length (33-128) - - - - - Prefix length must be between 33 and 128 - - - - - - - - - Hostname for static mapping reservation - - - - Invalid static mapping hostname - - - #include - #include - #include - #include - - - Client IPv6 address for this static mapping - - ipv6 - IPv6 address for this static mapping - - - - - - - - - Client IPv6 prefix for this static mapping - - ipv6net - IPv6 prefix for this static mapping - - - - - - - - - - - Unique ID mapped to leases in the lease file - - u32 - Unique subnet ID - - - - - - - - - - + #include diff --git a/interface-definitions/vrf.xml.in b/interface-definitions/vrf.xml.in index 03128cb99..3fa95076e 100644 --- a/interface-definitions/vrf.xml.in +++ b/interface-definitions/vrf.xml.in @@ -116,6 +116,31 @@ + + + Enable services in the vrf itself + + + + + Dynamic Host Configuration Protocol (DHCP) for DHCP server + 912 + + + #include + + + + + DHCP for IPv6 (DHCPv6) server + 901 + + + #include + + + + Routing table associated with this instance -- cgit v1.2.3