summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@vyos.io>2024-02-26 15:25:53 +0100
committerGitHub <noreply@github.com>2024-02-26 15:25:53 +0100
commit8b87836b371fdddb595ad3faf8a91a64f07c2bfb (patch)
treee08c9213d4d9453c1036f279eacf08f813157c02
parent52df4d62074a76eb173931c5fbaf5a4e22d6e346 (diff)
parent83b435ffe1a6cda47d260fea81c6c6cca1aedd48 (diff)
downloadvyos-1x-8b87836b371fdddb595ad3faf8a91a64f07c2bfb.tar.gz
vyos-1x-8b87836b371fdddb595ad3faf8a91a64f07c2bfb.zip
Merge pull request #3049 from sarthurdev/T6063
dhcp-server: T6063: Add `ignore-client-id` to relax client identifier checks for leases
-rw-r--r--interface-definitions/service_dhcp-server.xml.in6
-rw-r--r--python/vyos/kea.py3
-rwxr-xr-xsmoketest/scripts/cli/test_service_dhcp-server.py2
3 files changed, 11 insertions, 0 deletions
diff --git a/interface-definitions/service_dhcp-server.xml.in b/interface-definitions/service_dhcp-server.xml.in
index 5c9d4a360..1c10a462d 100644
--- a/interface-definitions/service_dhcp-server.xml.in
+++ b/interface-definitions/service_dhcp-server.xml.in
@@ -122,6 +122,12 @@
<multi/>
</properties>
</leafNode>
+ <leafNode name="ignore-client-id">
+ <properties>
+ <help>Ignore client identifier for lease lookups</help>
+ <valueless/>
+ </properties>
+ </leafNode>
<leafNode name="lease">
<properties>
<help>Lease timeout in seconds</help>
diff --git a/python/vyos/kea.py b/python/vyos/kea.py
index 894ac9e9a..2328d0b00 100644
--- a/python/vyos/kea.py
+++ b/python/vyos/kea.py
@@ -113,6 +113,9 @@ def kea_parse_subnet(subnet, config):
if 'bootfile_server' in config['option']:
out['next-server'] = config['option']['bootfile_server']
+ if 'ignore_client_id' in config:
+ out['match-client-id'] = False
+
if 'lease' in config:
out['valid-lifetime'] = int(config['lease'])
out['max-valid-lifetime'] = int(config['lease'])
diff --git a/smoketest/scripts/cli/test_service_dhcp-server.py b/smoketest/scripts/cli/test_service_dhcp-server.py
index 194289567..b582a2108 100755
--- a/smoketest/scripts/cli/test_service_dhcp-server.py
+++ b/smoketest/scripts/cli/test_service_dhcp-server.py
@@ -100,6 +100,7 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase):
pool = base_path + ['shared-network-name', shared_net_name, 'subnet', subnet]
self.cli_set(pool + ['subnet-id', '1'])
+ self.cli_set(pool + ['ignore-client-id'])
# we use the first subnet IP address as default gateway
self.cli_set(pool + ['option', 'default-router', router])
self.cli_set(pool + ['option', 'name-server', dns_1])
@@ -124,6 +125,7 @@ class TestServiceDHCPServer(VyOSUnitTestSHIM.TestCase):
self.verify_config_value(obj, ['Dhcp4', 'shared-networks'], 'name', shared_net_name)
self.verify_config_value(obj, ['Dhcp4', 'shared-networks', 0, 'subnet4'], 'subnet', subnet)
self.verify_config_value(obj, ['Dhcp4', 'shared-networks', 0, 'subnet4'], 'id', 1)
+ self.verify_config_value(obj, ['Dhcp4', 'shared-networks', 0, 'subnet4'], 'match-client-id', False)
self.verify_config_value(obj, ['Dhcp4', 'shared-networks', 0, 'subnet4'], 'valid-lifetime', 86400)
self.verify_config_value(obj, ['Dhcp4', 'shared-networks', 0, 'subnet4'], 'max-valid-lifetime', 86400)