From f2f2d3c0f0c8f6772f4f24b4bd7203837c1afed9 Mon Sep 17 00:00:00 2001 From: sarthurdev <965089+sarthurdev@users.noreply.github.com> Date: Mon, 22 Sep 2025 22:29:45 +0200 Subject: kea: T7281: Use correct Kea unit files --- src/conf_mode/service_dhcp-server.py | 6 +++--- src/conf_mode/service_dhcpv6-server.py | 4 ++-- .../override.conf | 7 +++++++ .../system/isc-kea-dhcp-ddns-server@.service | 22 ++++++++++++++++++++++ .../isc-kea-dhcp4-server.service.d/override.conf | 9 +++++++++ .../systemd/system/isc-kea-dhcp4-server@.service | 22 ++++++++++++++++++++++ .../isc-kea-dhcp6-server.service.d/override.conf | 7 +++++++ .../systemd/system/isc-kea-dhcp6-server@.service | 22 ++++++++++++++++++++++ .../system/kea-dhcp-ddns.service.d/override.conf | 7 ------- src/etc/systemd/system/kea-dhcp-ddns@.service | 22 ---------------------- .../system/kea-dhcp4.service.d/override.conf | 9 --------- src/etc/systemd/system/kea-dhcp4@.service | 22 ---------------------- .../system/kea-dhcp6.service.d/override.conf | 7 ------- src/etc/systemd/system/kea-dhcp6@.service | 22 ---------------------- src/op_mode/dhcp.py | 12 ++++++------ src/op_mode/restart.py | 4 ++-- 16 files changed, 102 insertions(+), 102 deletions(-) create mode 100644 src/etc/systemd/system/isc-kea-dhcp-ddns-server.service.d/override.conf create mode 100644 src/etc/systemd/system/isc-kea-dhcp-ddns-server@.service create mode 100644 src/etc/systemd/system/isc-kea-dhcp4-server.service.d/override.conf create mode 100644 src/etc/systemd/system/isc-kea-dhcp4-server@.service create mode 100644 src/etc/systemd/system/isc-kea-dhcp6-server.service.d/override.conf create mode 100644 src/etc/systemd/system/isc-kea-dhcp6-server@.service delete mode 100644 src/etc/systemd/system/kea-dhcp-ddns.service.d/override.conf delete mode 100644 src/etc/systemd/system/kea-dhcp-ddns@.service delete mode 100644 src/etc/systemd/system/kea-dhcp4.service.d/override.conf delete mode 100644 src/etc/systemd/system/kea-dhcp4@.service delete mode 100644 src/etc/systemd/system/kea-dhcp6.service.d/override.conf delete mode 100644 src/etc/systemd/system/kea-dhcp6@.service (limited to 'src') diff --git a/src/conf_mode/service_dhcp-server.py b/src/conf_mode/service_dhcp-server.py index ae0338996..d92321ab8 100755 --- a/src/conf_mode/service_dhcp-server.py +++ b/src/conf_mode/service_dhcp-server.py @@ -582,9 +582,9 @@ def apply(dhcp): # if running in vrf, set base diffrently if argv and len(argv) > 1: vrf_name = argv[1] - services = [f'kea-dhcp4@{vrf_name}', f'kea-dhcp-ddns@{vrf_name}'] + services = [f'isc-kea-dhcp4-server@{vrf_name}', f'isc-kea-dhcp-ddns-server@{vrf_name}'] else: - services = ['kea-dhcp4', 'kea-dhcp-ddns'] + services = ['isc-kea-dhcp4-server', 'isc-kea-dhcp-ddns-server'] if not dhcp or 'disable' in dhcp: for service in services: @@ -598,7 +598,7 @@ def apply(dhcp): for service in services: action = 'restart' - if 'kea-dhcp-ddns-server' in service and 'dynamic_dns_update' not in dhcp: + if 'isc-kea-dhcp-ddns-server' in service and 'dynamic_dns_update' not in dhcp: action = 'stop' call(f'systemctl {action} {service}.service') diff --git a/src/conf_mode/service_dhcpv6-server.py b/src/conf_mode/service_dhcpv6-server.py index 1b2f07e43..b6a7a87c3 100755 --- a/src/conf_mode/service_dhcpv6-server.py +++ b/src/conf_mode/service_dhcpv6-server.py @@ -289,9 +289,9 @@ def apply(dhcpv6): # if running in vrf, set base diffrently if argv and len(argv) > 1: vrf_name = argv[1] - service_name = f'kea-dhcp6@{vrf_name}.service' + service_name = f'isc-kea-dhcp6-server@{vrf_name}.service' else: - service_name = 'kea-dhcp6.service' + service_name = 'isc-kea-dhcp6-server.service' # bail out early - looks like removal from running config if not dhcpv6 or 'disable' in dhcpv6: diff --git a/src/etc/systemd/system/isc-kea-dhcp-ddns-server.service.d/override.conf b/src/etc/systemd/system/isc-kea-dhcp-ddns-server.service.d/override.conf new file mode 100644 index 000000000..cdfdea8eb --- /dev/null +++ b/src/etc/systemd/system/isc-kea-dhcp-ddns-server.service.d/override.conf @@ -0,0 +1,7 @@ +[Unit] +After= +After=vyos-router.service + +[Service] +ExecStart= +ExecStart=/usr/sbin/kea-dhcp-ddns -c /run/kea/kea-dhcp-ddns.conf diff --git a/src/etc/systemd/system/isc-kea-dhcp-ddns-server@.service b/src/etc/systemd/system/isc-kea-dhcp-ddns-server@.service new file mode 100644 index 000000000..b6360e573 --- /dev/null +++ b/src/etc/systemd/system/isc-kea-dhcp-ddns-server@.service @@ -0,0 +1,22 @@ +[Unit] +Description=Kea DDNS Service +Documentation=man:kea-dhcp-ddns(8) +Wants=network-online.target +After=vyos-router.service + +[Service] +User=_kea +AmbientCapabilities=CAP_NET_BIND_SERVICE +Environment="KEA_LOCKFILE_DIR=/run/lock/kea" +ConfigurationDirectory=kea +RuntimeDirectory=kea lock/kea +RuntimeDirectoryPreserve=yes +LogsDirectory=kea +LogsDirectoryMode=0750 +StateDirectory=kea +ExecStart=sudo /bin/ip vrf exec %i /usr/sbin/kea-dhcp-ddns -c /run/kea/kea-%i-dhcp-ddns.conf +ExecStartPost=/bin/sh -c 'sleep 10 && sudo /usr/bin/chown _kea:_kea /run/kea/kea-%i-dhcp-ddns* && sudo /usr/bin/chown _kea:_kea /run/kea/logger_lockfile' +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/src/etc/systemd/system/isc-kea-dhcp4-server.service.d/override.conf b/src/etc/systemd/system/isc-kea-dhcp4-server.service.d/override.conf new file mode 100644 index 000000000..4a04892c0 --- /dev/null +++ b/src/etc/systemd/system/isc-kea-dhcp4-server.service.d/override.conf @@ -0,0 +1,9 @@ +[Unit] +After= +After=vyos-router.service + +[Service] +ExecStart= +ExecStart=/usr/sbin/kea-dhcp4 -c /run/kea/kea-dhcp4.conf +ExecStartPost=!/usr/bin/python3 /usr/libexec/vyos/system/sync-dhcp-lease-to-hosts.py --inet +Restart=on-failure diff --git a/src/etc/systemd/system/isc-kea-dhcp4-server@.service b/src/etc/systemd/system/isc-kea-dhcp4-server@.service new file mode 100644 index 000000000..f63364275 --- /dev/null +++ b/src/etc/systemd/system/isc-kea-dhcp4-server@.service @@ -0,0 +1,22 @@ +[Unit] +Description=Kea IPv4 DHCP daemon +Documentation=man:kea-dhcp4(8) +Wants=network-online.target +After=vyos-router.service + +[Service] +User=_kea +AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_NET_RAW +Environment="KEA_LOCKFILE_DIR=/run/lock/kea" +ConfigurationDirectory=kea +RuntimeDirectory=kea lock/kea +RuntimeDirectoryPreserve=yes +LogsDirectory=kea +LogsDirectoryMode=0750 +StateDirectory=kea +ExecStart=sudo /bin/ip vrf exec %i /usr/sbin/kea-dhcp4 -c /run/kea/kea-%i-dhcp4.conf +ExecStartPost=/bin/sh -c 'sleep 10 && sudo /usr/bin/chown _kea:_kea /run/kea/dhcp4-%i-ctrl* && sudo /usr/bin/chown _kea:_kea /run/kea/kea-%i-dhcp4* && sudo /usr/bin/chown _kea:_kea /run/kea/logger_lockfile' +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/src/etc/systemd/system/isc-kea-dhcp6-server.service.d/override.conf b/src/etc/systemd/system/isc-kea-dhcp6-server.service.d/override.conf new file mode 100644 index 000000000..cb33fc057 --- /dev/null +++ b/src/etc/systemd/system/isc-kea-dhcp6-server.service.d/override.conf @@ -0,0 +1,7 @@ +[Unit] +After= +After=vyos-router.service + +[Service] +ExecStart= +ExecStart=/usr/sbin/kea-dhcp6 -c /run/kea/kea-dhcp6.conf diff --git a/src/etc/systemd/system/isc-kea-dhcp6-server@.service b/src/etc/systemd/system/isc-kea-dhcp6-server@.service new file mode 100644 index 000000000..1d2330f74 --- /dev/null +++ b/src/etc/systemd/system/isc-kea-dhcp6-server@.service @@ -0,0 +1,22 @@ +[Unit] +Description=Kea IPv6 DHCP daemon +Documentation=man:kea-dhcp6(8) +Wants=network-online.target +After=vyos-router.service + +[Service] +User=_kea +AmbientCapabilities=CAP_NET_BIND_SERVICE +Environment="KEA_LOCKFILE_DIR=/run/lock/kea" +ConfigurationDirectory=kea +RuntimeDirectory=kea lock/kea +RuntimeDirectoryPreserve=yes +LogsDirectory=kea +LogsDirectoryMode=0750 +StateDirectory=kea +ExecStart=sudo /bin/ip vrf exec %i /usr/sbin/kea-dhcp6 -c /run/kea/kea-%i-dhcp6.conf +ExecStartPost=/bin/sh -c 'sleep 10 && sudo /usr/bin/chown _kea:_kea /run/kea/dhcp6-%i-ctrl* && sudo /usr/bin/chown _kea:_kea /run/kea/kea-%i-dhcp6* && sudo /usr/bin/chown _kea:_kea /run/kea/logger_lockfile' +Restart=on-failure + +[Install] +WantedBy=multi-user.target diff --git a/src/etc/systemd/system/kea-dhcp-ddns.service.d/override.conf b/src/etc/systemd/system/kea-dhcp-ddns.service.d/override.conf deleted file mode 100644 index cdfdea8eb..000000000 --- a/src/etc/systemd/system/kea-dhcp-ddns.service.d/override.conf +++ /dev/null @@ -1,7 +0,0 @@ -[Unit] -After= -After=vyos-router.service - -[Service] -ExecStart= -ExecStart=/usr/sbin/kea-dhcp-ddns -c /run/kea/kea-dhcp-ddns.conf diff --git a/src/etc/systemd/system/kea-dhcp-ddns@.service b/src/etc/systemd/system/kea-dhcp-ddns@.service deleted file mode 100644 index b6360e573..000000000 --- a/src/etc/systemd/system/kea-dhcp-ddns@.service +++ /dev/null @@ -1,22 +0,0 @@ -[Unit] -Description=Kea DDNS Service -Documentation=man:kea-dhcp-ddns(8) -Wants=network-online.target -After=vyos-router.service - -[Service] -User=_kea -AmbientCapabilities=CAP_NET_BIND_SERVICE -Environment="KEA_LOCKFILE_DIR=/run/lock/kea" -ConfigurationDirectory=kea -RuntimeDirectory=kea lock/kea -RuntimeDirectoryPreserve=yes -LogsDirectory=kea -LogsDirectoryMode=0750 -StateDirectory=kea -ExecStart=sudo /bin/ip vrf exec %i /usr/sbin/kea-dhcp-ddns -c /run/kea/kea-%i-dhcp-ddns.conf -ExecStartPost=/bin/sh -c 'sleep 10 && sudo /usr/bin/chown _kea:_kea /run/kea/kea-%i-dhcp-ddns* && sudo /usr/bin/chown _kea:_kea /run/kea/logger_lockfile' -Restart=on-failure - -[Install] -WantedBy=multi-user.target diff --git a/src/etc/systemd/system/kea-dhcp4.service.d/override.conf b/src/etc/systemd/system/kea-dhcp4.service.d/override.conf deleted file mode 100644 index 4a04892c0..000000000 --- a/src/etc/systemd/system/kea-dhcp4.service.d/override.conf +++ /dev/null @@ -1,9 +0,0 @@ -[Unit] -After= -After=vyos-router.service - -[Service] -ExecStart= -ExecStart=/usr/sbin/kea-dhcp4 -c /run/kea/kea-dhcp4.conf -ExecStartPost=!/usr/bin/python3 /usr/libexec/vyos/system/sync-dhcp-lease-to-hosts.py --inet -Restart=on-failure diff --git a/src/etc/systemd/system/kea-dhcp4@.service b/src/etc/systemd/system/kea-dhcp4@.service deleted file mode 100644 index f63364275..000000000 --- a/src/etc/systemd/system/kea-dhcp4@.service +++ /dev/null @@ -1,22 +0,0 @@ -[Unit] -Description=Kea IPv4 DHCP daemon -Documentation=man:kea-dhcp4(8) -Wants=network-online.target -After=vyos-router.service - -[Service] -User=_kea -AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_NET_RAW -Environment="KEA_LOCKFILE_DIR=/run/lock/kea" -ConfigurationDirectory=kea -RuntimeDirectory=kea lock/kea -RuntimeDirectoryPreserve=yes -LogsDirectory=kea -LogsDirectoryMode=0750 -StateDirectory=kea -ExecStart=sudo /bin/ip vrf exec %i /usr/sbin/kea-dhcp4 -c /run/kea/kea-%i-dhcp4.conf -ExecStartPost=/bin/sh -c 'sleep 10 && sudo /usr/bin/chown _kea:_kea /run/kea/dhcp4-%i-ctrl* && sudo /usr/bin/chown _kea:_kea /run/kea/kea-%i-dhcp4* && sudo /usr/bin/chown _kea:_kea /run/kea/logger_lockfile' -Restart=on-failure - -[Install] -WantedBy=multi-user.target diff --git a/src/etc/systemd/system/kea-dhcp6.service.d/override.conf b/src/etc/systemd/system/kea-dhcp6.service.d/override.conf deleted file mode 100644 index cb33fc057..000000000 --- a/src/etc/systemd/system/kea-dhcp6.service.d/override.conf +++ /dev/null @@ -1,7 +0,0 @@ -[Unit] -After= -After=vyos-router.service - -[Service] -ExecStart= -ExecStart=/usr/sbin/kea-dhcp6 -c /run/kea/kea-dhcp6.conf diff --git a/src/etc/systemd/system/kea-dhcp6@.service b/src/etc/systemd/system/kea-dhcp6@.service deleted file mode 100644 index 1d2330f74..000000000 --- a/src/etc/systemd/system/kea-dhcp6@.service +++ /dev/null @@ -1,22 +0,0 @@ -[Unit] -Description=Kea IPv6 DHCP daemon -Documentation=man:kea-dhcp6(8) -Wants=network-online.target -After=vyos-router.service - -[Service] -User=_kea -AmbientCapabilities=CAP_NET_BIND_SERVICE -Environment="KEA_LOCKFILE_DIR=/run/lock/kea" -ConfigurationDirectory=kea -RuntimeDirectory=kea lock/kea -RuntimeDirectoryPreserve=yes -LogsDirectory=kea -LogsDirectoryMode=0750 -StateDirectory=kea -ExecStart=sudo /bin/ip vrf exec %i /usr/sbin/kea-dhcp6 -c /run/kea/kea-%i-dhcp6.conf -ExecStartPost=/bin/sh -c 'sleep 10 && sudo /usr/bin/chown _kea:_kea /run/kea/dhcp6-%i-ctrl* && sudo /usr/bin/chown _kea:_kea /run/kea/kea-%i-dhcp6* && sudo /usr/bin/chown _kea:_kea /run/kea/logger_lockfile' -Restart=on-failure - -[Install] -WantedBy=multi-user.target diff --git a/src/op_mode/dhcp.py b/src/op_mode/dhcp.py index 6e6ad153b..905c9b80c 100755 --- a/src/op_mode/dhcp.py +++ b/src/op_mode/dhcp.py @@ -326,9 +326,9 @@ def show_server_pool_statistics( inet_suffix = '6' if family == 'inet6' else '4' if vrf: - service = f'kea-dhcp{inet_suffix}@{vrf}.service' + service = f'isc-kea-dhcp{inet_suffix}-server@{vrf}.service' else: - service = f'kea-dhcp{inet_suffix}.service' + service = f'isc-kea-dhcp{inet_suffix}-server.service' if not is_systemd_service_running(service): Warning(stale_warn_msg) @@ -376,9 +376,9 @@ def show_server_leases( inet_suffix = '6' if family == 'inet6' else '4' if vrf: - service = f'kea-dhcp{inet_suffix}@{vrf}.service' + service = f'isc-kea-dhcp{inet_suffix}-server@{vrf}.service' else: - service = f'kea-dhcp{inet_suffix}.service' + service = f'isc-kea-dhcp{inet_suffix}-server.service' if not is_systemd_service_running(service): Warning(stale_warn_msg) @@ -437,9 +437,9 @@ def show_server_static_mappings( inet_suffix = '6' if family == 'inet6' else '4' if vrf: - service = f'kea-dhcp{inet_suffix}@{vrf}.service' + service = f'isc-kea-dhcp{inet_suffix}-server@{vrf}.service' else: - service = f'kea-dhcp{inet_suffix}.service' + service = f'isc-kea-dhcp{inet_suffix}-server.service' if not is_systemd_service_running(service): Warning(stale_warn_msg) diff --git a/src/op_mode/restart.py b/src/op_mode/restart.py index 29bd690e3..4f05d6eb8 100755 --- a/src/op_mode/restart.py +++ b/src/op_mode/restart.py @@ -26,11 +26,11 @@ config = ConfigTreeQuery() service_map = { 'dhcp': { - 'systemd_service': 'kea-dhcp4', + 'systemd_service': 'isc-kea-dhcp4-server', 'path': ['service', 'dhcp-server'], }, 'dhcpv6': { - 'systemd_service': 'kea-dhcp6', + 'systemd_service': 'isc-kea-dhcp6-server', 'path': ['service', 'dhcpv6-server'], }, 'dns_dynamic': { -- cgit v1.2.3 From 99b032b017fc207371acff9bf271f29efe25aa66 Mon Sep 17 00:00:00 2001 From: sarthurdev <965089+sarthurdev@users.noreply.github.com> Date: Mon, 22 Sep 2025 22:54:08 +0200 Subject: kea: T7821: Update paths for Kea v2.7.9 security changes --- data/templates/dhcp-server/kea-dhcp-ddns.conf.j2 | 4 ++-- data/templates/dhcp-server/kea-dhcp4.conf.j2 | 4 ++-- data/templates/dhcp-server/kea-dhcp6.conf.j2 | 4 ++-- python/vyos/kea.py | 2 +- smoketest/scripts/cli/test_service_dhcp-server.py | 6 +++--- smoketest/scripts/cli/test_service_dhcpv6-server.py | 2 +- smoketest/scripts/cli/test_vrf.py | 4 ++-- .../system/isc-kea-dhcp-ddns-server.service.d/override.conf | 2 +- src/etc/systemd/system/isc-kea-dhcp-ddns-server@.service | 4 ++-- .../systemd/system/isc-kea-dhcp4-server.service.d/override.conf | 4 +++- src/etc/systemd/system/isc-kea-dhcp4-server@.service | 7 +++++-- .../systemd/system/isc-kea-dhcp6-server.service.d/override.conf | 4 +++- src/etc/systemd/system/isc-kea-dhcp6-server@.service | 7 +++++-- 13 files changed, 32 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/data/templates/dhcp-server/kea-dhcp-ddns.conf.j2 b/data/templates/dhcp-server/kea-dhcp-ddns.conf.j2 index e734a37f3..5393ec839 100644 --- a/data/templates/dhcp-server/kea-dhcp-ddns.conf.j2 +++ b/data/templates/dhcp-server/kea-dhcp-ddns.conf.j2 @@ -5,10 +5,10 @@ "control-socket": { {% if vrf_context is vyos_defined %} "socket-type": "unix", - "socket-name": "/run/kea/kea-ddns-{{ vrf_context }}-ctrl-socket" + "socket-name": "/var/run/kea/kea-ddns-{{ vrf_context }}-ctrl-socket" {% else %} "socket-type": "unix", - "socket-name": "/run/kea/kea-ddns-ctrl-socket" + "socket-name": "/var/run/kea/kea-ddns-ctrl-socket" {% endif %} }, "tsig-keys": {{ dynamic_dns_update | kea_dynamic_dns_update_tsig_key_json }}, diff --git a/data/templates/dhcp-server/kea-dhcp4.conf.j2 b/data/templates/dhcp-server/kea-dhcp4.conf.j2 index 60c9cf9b2..031b14137 100644 --- a/data/templates/dhcp-server/kea-dhcp4.conf.j2 +++ b/data/templates/dhcp-server/kea-dhcp4.conf.j2 @@ -17,10 +17,10 @@ "control-socket": { {% if vrf_context is vyos_defined %} "socket-type": "unix", - "socket-name": "/run/kea/dhcp4-{{ vrf_context }}-ctrl-socket" + "socket-name": "/var/run/kea/dhcp4-{{ vrf_context }}-ctrl-socket" {% else %} "socket-type": "unix", - "socket-name": "/run/kea/dhcp4-ctrl-socket" + "socket-name": "/var/run/kea/dhcp4-ctrl-socket" {% endif %} }, "lease-database": { diff --git a/data/templates/dhcp-server/kea-dhcp6.conf.j2 b/data/templates/dhcp-server/kea-dhcp6.conf.j2 index 4352bbae7..41e31d35e 100644 --- a/data/templates/dhcp-server/kea-dhcp6.conf.j2 +++ b/data/templates/dhcp-server/kea-dhcp6.conf.j2 @@ -12,10 +12,10 @@ "control-socket": { {% if vrf_context is vyos_defined %} "socket-type": "unix", - "socket-name": "/run/kea/dhcp6-{{ vrf_context }}-ctrl-socket" + "socket-name": "/var/run/kea/dhcp6-{{ vrf_context }}-ctrl-socket" {% else %} "socket-type": "unix", - "socket-name": "/run/kea/dhcp6-ctrl-socket" + "socket-name": "/var/run/kea/dhcp6-ctrl-socket" {% endif %} }, "lease-database": { diff --git a/python/vyos/kea.py b/python/vyos/kea.py index c7ae94b14..b2b92ef21 100644 --- a/python/vyos/kea.py +++ b/python/vyos/kea.py @@ -60,7 +60,7 @@ kea6_options = { 'capwap_controller': 'capwap-ac-v6', } -kea_ctrl_socket = '/run/kea/dhcp{inet}{vrf_append}-ctrl-socket' +kea_ctrl_socket = '/var/run/kea/dhcp{inet}{vrf_append}-ctrl-socket' def _format_hex_string(in_str): diff --git a/smoketest/scripts/cli/test_service_dhcp-server.py b/smoketest/scripts/cli/test_service_dhcp-server.py index f1abc5216..f32a8796b 100755 --- a/smoketest/scripts/cli/test_service_dhcp-server.py +++ b/smoketest/scripts/cli/test_service_dhcp-server.py @@ -33,9 +33,9 @@ from vyos.template import dec_ip PROCESS_NAME = 'kea-dhcp4' D2_PROCESS_NAME = 'kea-dhcp-ddns' -KEA4_CONF = '/run/kea/kea-dhcp4.conf' -KEA4_D2_CONF = '/run/kea/kea-dhcp-ddns.conf' -KEA4_CTRL = '/run/kea/dhcp4-ctrl-socket' +KEA4_CONF = '/var/run/kea/kea-dhcp4.conf' +KEA4_D2_CONF = '/var/run/kea/kea-dhcp-ddns.conf' +KEA4_CTRL = '/var/run/kea/dhcp4-ctrl-socket' HOSTSD_CLIENT = '/usr/bin/vyos-hostsd-client' base_path = ['service', 'dhcp-server'] interface = 'dum8765' diff --git a/smoketest/scripts/cli/test_service_dhcpv6-server.py b/smoketest/scripts/cli/test_service_dhcpv6-server.py index ab4604165..39142c720 100755 --- a/smoketest/scripts/cli/test_service_dhcpv6-server.py +++ b/smoketest/scripts/cli/test_service_dhcpv6-server.py @@ -26,7 +26,7 @@ from vyos.utils.process import process_named_running from vyos.utils.file import read_file PROCESS_NAME = 'kea-dhcp6' -KEA6_CONF = '/run/kea/kea-dhcp6.conf' +KEA6_CONF = '/var/run/kea/kea-dhcp6.conf' base_path = ['service', 'dhcpv6-server'] subnet = '2001:db8:f00::/64' diff --git a/smoketest/scripts/cli/test_vrf.py b/smoketest/scripts/cli/test_vrf.py index 66a95cd02..59b0b7254 100755 --- a/smoketest/scripts/cli/test_vrf.py +++ b/smoketest/scripts/cli/test_vrf.py @@ -652,7 +652,7 @@ class VRFTest(VyOSUnitTestSHIM.TestCase): # declare fiels process_name = 'kea-dhcp4' - kea4_conf = f'/run/kea/kea-{vrf}-dhcp4.conf' + kea4_conf = f'/var/run/kea/kea-{vrf}-dhcp4.conf' # create interface cidr_mask = subnet.split('/')[-1] @@ -791,7 +791,7 @@ class VRFTest(VyOSUnitTestSHIM.TestCase): # declare fiels process_name = 'kea-dhcp6' - kea6_conf = f'/run/kea/kea-{vrf}-dhcp6.conf' + kea6_conf = f'/var/run/kea/kea-{vrf}-dhcp6.conf' # create interface self.cli_set(['interfaces', 'dummy', interface, 'address', f'{interface_addr}']) diff --git a/src/etc/systemd/system/isc-kea-dhcp-ddns-server.service.d/override.conf b/src/etc/systemd/system/isc-kea-dhcp-ddns-server.service.d/override.conf index cdfdea8eb..0afaacd71 100644 --- a/src/etc/systemd/system/isc-kea-dhcp-ddns-server.service.d/override.conf +++ b/src/etc/systemd/system/isc-kea-dhcp-ddns-server.service.d/override.conf @@ -4,4 +4,4 @@ After=vyos-router.service [Service] ExecStart= -ExecStart=/usr/sbin/kea-dhcp-ddns -c /run/kea/kea-dhcp-ddns.conf +ExecStart=/usr/sbin/kea-dhcp-ddns -c /var/run/kea/kea-dhcp-ddns.conf diff --git a/src/etc/systemd/system/isc-kea-dhcp-ddns-server@.service b/src/etc/systemd/system/isc-kea-dhcp-ddns-server@.service index b6360e573..9451addd4 100644 --- a/src/etc/systemd/system/isc-kea-dhcp-ddns-server@.service +++ b/src/etc/systemd/system/isc-kea-dhcp-ddns-server@.service @@ -14,8 +14,8 @@ RuntimeDirectoryPreserve=yes LogsDirectory=kea LogsDirectoryMode=0750 StateDirectory=kea -ExecStart=sudo /bin/ip vrf exec %i /usr/sbin/kea-dhcp-ddns -c /run/kea/kea-%i-dhcp-ddns.conf -ExecStartPost=/bin/sh -c 'sleep 10 && sudo /usr/bin/chown _kea:_kea /run/kea/kea-%i-dhcp-ddns* && sudo /usr/bin/chown _kea:_kea /run/kea/logger_lockfile' +ExecStart=sudo /bin/ip vrf exec %i /usr/sbin/kea-dhcp-ddns -c /var/run/kea/kea-%i-dhcp-ddns.conf +ExecStartPost=/bin/sh -c 'sleep 10 && sudo /usr/bin/chown _kea:_kea /var/run/kea/kea-%i-dhcp-ddns* && sudo /usr/bin/chown _kea:_kea /run/kea/logger_lockfile' Restart=on-failure [Install] diff --git a/src/etc/systemd/system/isc-kea-dhcp4-server.service.d/override.conf b/src/etc/systemd/system/isc-kea-dhcp4-server.service.d/override.conf index 4a04892c0..f315e197b 100644 --- a/src/etc/systemd/system/isc-kea-dhcp4-server.service.d/override.conf +++ b/src/etc/systemd/system/isc-kea-dhcp4-server.service.d/override.conf @@ -3,7 +3,9 @@ After= After=vyos-router.service [Service] +Environment="KEA_DHCP_DATA_DIR=/config/dhcp" +Environment="KEA_HOOK_SCRIPTS_PATH=/usr/libexec/vyos/system" ExecStart= -ExecStart=/usr/sbin/kea-dhcp4 -c /run/kea/kea-dhcp4.conf +ExecStart=/usr/sbin/kea-dhcp4 -c /var/run/kea/kea-dhcp4.conf ExecStartPost=!/usr/bin/python3 /usr/libexec/vyos/system/sync-dhcp-lease-to-hosts.py --inet Restart=on-failure diff --git a/src/etc/systemd/system/isc-kea-dhcp4-server@.service b/src/etc/systemd/system/isc-kea-dhcp4-server@.service index f63364275..155333359 100644 --- a/src/etc/systemd/system/isc-kea-dhcp4-server@.service +++ b/src/etc/systemd/system/isc-kea-dhcp4-server@.service @@ -7,15 +7,18 @@ After=vyos-router.service [Service] User=_kea AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_NET_RAW +Environment="KEA_DHCP_DATA_DIR=/config/dhcp" +Environment="KEA_HOOK_SCRIPTS_PATH=/usr/libexec/vyos/system" Environment="KEA_LOCKFILE_DIR=/run/lock/kea" ConfigurationDirectory=kea +ConfigurationDirectoryMode=0750 RuntimeDirectory=kea lock/kea RuntimeDirectoryPreserve=yes LogsDirectory=kea LogsDirectoryMode=0750 StateDirectory=kea -ExecStart=sudo /bin/ip vrf exec %i /usr/sbin/kea-dhcp4 -c /run/kea/kea-%i-dhcp4.conf -ExecStartPost=/bin/sh -c 'sleep 10 && sudo /usr/bin/chown _kea:_kea /run/kea/dhcp4-%i-ctrl* && sudo /usr/bin/chown _kea:_kea /run/kea/kea-%i-dhcp4* && sudo /usr/bin/chown _kea:_kea /run/kea/logger_lockfile' +ExecStart=sudo /bin/ip vrf exec %i /usr/sbin/kea-dhcp4 -c /var/run/kea/kea-%i-dhcp4.conf +ExecStartPost=/bin/sh -c 'sleep 10 && sudo /usr/bin/chown _kea:_kea /var/run/kea/dhcp4-%i-ctrl* && sudo /usr/bin/chown _kea:_kea /var/run/kea/kea-%i-dhcp4* && sudo /usr/bin/chown _kea:_kea /run/kea/logger_lockfile' Restart=on-failure [Install] diff --git a/src/etc/systemd/system/isc-kea-dhcp6-server.service.d/override.conf b/src/etc/systemd/system/isc-kea-dhcp6-server.service.d/override.conf index cb33fc057..cc1885877 100644 --- a/src/etc/systemd/system/isc-kea-dhcp6-server.service.d/override.conf +++ b/src/etc/systemd/system/isc-kea-dhcp6-server.service.d/override.conf @@ -3,5 +3,7 @@ After= After=vyos-router.service [Service] +Environment="KEA_DHCP_DATA_DIR=/config/dhcp" +Environment="KEA_HOOK_SCRIPTS_PATH=/usr/libexec/vyos/system" ExecStart= -ExecStart=/usr/sbin/kea-dhcp6 -c /run/kea/kea-dhcp6.conf +ExecStart=/usr/sbin/kea-dhcp6 -c /var/run/kea/kea-dhcp6.conf diff --git a/src/etc/systemd/system/isc-kea-dhcp6-server@.service b/src/etc/systemd/system/isc-kea-dhcp6-server@.service index 1d2330f74..8e71b51ee 100644 --- a/src/etc/systemd/system/isc-kea-dhcp6-server@.service +++ b/src/etc/systemd/system/isc-kea-dhcp6-server@.service @@ -7,15 +7,18 @@ After=vyos-router.service [Service] User=_kea AmbientCapabilities=CAP_NET_BIND_SERVICE +Environment="KEA_DHCP_DATA_DIR=/config/dhcp" +Environment="KEA_HOOK_SCRIPTS_PATH=/usr/libexec/vyos/system" Environment="KEA_LOCKFILE_DIR=/run/lock/kea" ConfigurationDirectory=kea +ConfigurationDirectoryMode=0750 RuntimeDirectory=kea lock/kea RuntimeDirectoryPreserve=yes LogsDirectory=kea LogsDirectoryMode=0750 StateDirectory=kea -ExecStart=sudo /bin/ip vrf exec %i /usr/sbin/kea-dhcp6 -c /run/kea/kea-%i-dhcp6.conf -ExecStartPost=/bin/sh -c 'sleep 10 && sudo /usr/bin/chown _kea:_kea /run/kea/dhcp6-%i-ctrl* && sudo /usr/bin/chown _kea:_kea /run/kea/kea-%i-dhcp6* && sudo /usr/bin/chown _kea:_kea /run/kea/logger_lockfile' +ExecStart=sudo /bin/ip vrf exec %i /usr/sbin/kea-dhcp6 -c /var/run/kea/kea-%i-dhcp6.conf +ExecStartPost=/bin/sh -c 'sleep 10 && sudo /usr/bin/chown _kea:_kea /var/run/kea/dhcp6-%i-ctrl* && sudo /usr/bin/chown _kea:_kea /var/run/kea/kea-%i-dhcp6* && sudo /usr/bin/chown _kea:_kea /run/kea/logger_lockfile' Restart=on-failure [Install] -- cgit v1.2.3 From 25efe38a3a9ce7278e99500b1dcefc3f0a1abb27 Mon Sep 17 00:00:00 2001 From: sarthurdev <965089+sarthurdev@users.noreply.github.com> Date: Tue, 23 Sep 2025 09:34:55 +0200 Subject: kea: T7281: Set folder permissions to expected 0750 --- src/etc/systemd/system/isc-kea-dhcp4-server@.service | 1 + src/etc/systemd/system/isc-kea-dhcp6-server@.service | 1 + 2 files changed, 2 insertions(+) (limited to 'src') diff --git a/src/etc/systemd/system/isc-kea-dhcp4-server@.service b/src/etc/systemd/system/isc-kea-dhcp4-server@.service index 155333359..1139ab88b 100644 --- a/src/etc/systemd/system/isc-kea-dhcp4-server@.service +++ b/src/etc/systemd/system/isc-kea-dhcp4-server@.service @@ -14,6 +14,7 @@ ConfigurationDirectory=kea ConfigurationDirectoryMode=0750 RuntimeDirectory=kea lock/kea RuntimeDirectoryPreserve=yes +RuntimeDirectoryMode=0750 LogsDirectory=kea LogsDirectoryMode=0750 StateDirectory=kea diff --git a/src/etc/systemd/system/isc-kea-dhcp6-server@.service b/src/etc/systemd/system/isc-kea-dhcp6-server@.service index 8e71b51ee..2f115c0f7 100644 --- a/src/etc/systemd/system/isc-kea-dhcp6-server@.service +++ b/src/etc/systemd/system/isc-kea-dhcp6-server@.service @@ -14,6 +14,7 @@ ConfigurationDirectory=kea ConfigurationDirectoryMode=0750 RuntimeDirectory=kea lock/kea RuntimeDirectoryPreserve=yes +RuntimeDirectoryMode=0750 LogsDirectory=kea LogsDirectoryMode=0750 StateDirectory=kea -- cgit v1.2.3 From 868e45f86d39936ad04566e702ac95759b738149 Mon Sep 17 00:00:00 2001 From: sarthurdev <965089+sarthurdev@users.noreply.github.com> Date: Tue, 23 Sep 2025 09:48:07 +0200 Subject: kea: T7281: Preserve systemd unit environment in VRF exec --- src/etc/sudoers.d/vyos | 3 ++- src/etc/systemd/system/isc-kea-dhcp4-server@.service | 2 +- src/etc/systemd/system/isc-kea-dhcp6-server@.service | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/etc/sudoers.d/vyos b/src/etc/sudoers.d/vyos index 2dd8850c4..0feaabc2e 100644 --- a/src/etc/sudoers.d/vyos +++ b/src/etc/sudoers.d/vyos @@ -48,6 +48,7 @@ Cmnd_Alias DIAGNOSTICS = /bin/ip vrf exec * /bin/ping *, \ Cmnd_Alias KEA_IP6_ROUTES = /sbin/ip -6 route replace *,\ /sbin/ip -6 route del * Cmnd_Alias KEA_DHCP = /bin/ip vrf exec * /usr/sbin/kea-dhcp*,\ + /usr/bin/chown * /var/run/kea/*,\ /usr/bin/chown * /run/kea/* %operator ALL=NOPASSWD: DATE, IPTABLES, ETHTOOL, IPFLUSH, HWINFO, \ PPPOE_CMDS, PCAPTURE, /usr/sbin/wanpipemon, \ @@ -64,4 +65,4 @@ Cmnd_Alias KEA_DHCP = /bin/ip vrf exec * /usr/sbin/kea-dhcp*,\ %sudo ALL=NOPASSWD: /usr/bin/mokutil _kea ALL=NOPASSWD: KEA_IP6_ROUTES -_kea ALL=NOPASSWD: KEA_DHCP +_kea ALL=NOPASSWD:SETENV: KEA_DHCP diff --git a/src/etc/systemd/system/isc-kea-dhcp4-server@.service b/src/etc/systemd/system/isc-kea-dhcp4-server@.service index 1139ab88b..588cca216 100644 --- a/src/etc/systemd/system/isc-kea-dhcp4-server@.service +++ b/src/etc/systemd/system/isc-kea-dhcp4-server@.service @@ -18,7 +18,7 @@ RuntimeDirectoryMode=0750 LogsDirectory=kea LogsDirectoryMode=0750 StateDirectory=kea -ExecStart=sudo /bin/ip vrf exec %i /usr/sbin/kea-dhcp4 -c /var/run/kea/kea-%i-dhcp4.conf +ExecStart=sudo -E /bin/ip vrf exec %i /usr/sbin/kea-dhcp4 -c /var/run/kea/kea-%i-dhcp4.conf ExecStartPost=/bin/sh -c 'sleep 10 && sudo /usr/bin/chown _kea:_kea /var/run/kea/dhcp4-%i-ctrl* && sudo /usr/bin/chown _kea:_kea /var/run/kea/kea-%i-dhcp4* && sudo /usr/bin/chown _kea:_kea /run/kea/logger_lockfile' Restart=on-failure diff --git a/src/etc/systemd/system/isc-kea-dhcp6-server@.service b/src/etc/systemd/system/isc-kea-dhcp6-server@.service index 2f115c0f7..7196239af 100644 --- a/src/etc/systemd/system/isc-kea-dhcp6-server@.service +++ b/src/etc/systemd/system/isc-kea-dhcp6-server@.service @@ -18,7 +18,7 @@ RuntimeDirectoryMode=0750 LogsDirectory=kea LogsDirectoryMode=0750 StateDirectory=kea -ExecStart=sudo /bin/ip vrf exec %i /usr/sbin/kea-dhcp6 -c /var/run/kea/kea-%i-dhcp6.conf +ExecStart=sudo -E /bin/ip vrf exec %i /usr/sbin/kea-dhcp6 -c /var/run/kea/kea-%i-dhcp6.conf ExecStartPost=/bin/sh -c 'sleep 10 && sudo /usr/bin/chown _kea:_kea /var/run/kea/dhcp6-%i-ctrl* && sudo /usr/bin/chown _kea:_kea /var/run/kea/kea-%i-dhcp6* && sudo /usr/bin/chown _kea:_kea /run/kea/logger_lockfile' Restart=on-failure -- cgit v1.2.3