diff options
author | Daniil Baturin <daniil@vyos.io> | 2024-02-26 15:25:53 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-26 15:25:53 +0100 |
commit | 8b87836b371fdddb595ad3faf8a91a64f07c2bfb (patch) | |
tree | e08c9213d4d9453c1036f279eacf08f813157c02 | |
parent | 52df4d62074a76eb173931c5fbaf5a4e22d6e346 (diff) | |
parent | 83b435ffe1a6cda47d260fea81c6c6cca1aedd48 (diff) | |
download | vyos-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.in | 6 | ||||
-rw-r--r-- | python/vyos/kea.py | 3 | ||||
-rwxr-xr-x | smoketest/scripts/cli/test_service_dhcp-server.py | 2 |
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) |