diff options
| author | Christian Breunig <christian@breunig.cc> | 2025-09-23 16:42:35 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-09-23 16:42:35 +0200 |
| commit | 9952d21aa35fd40fe583de1ac20287a6784e8052 (patch) | |
| tree | a38577f8fc1f7770ee53f0ff43c0f81edd790eea /src | |
| parent | 5bb78168ee43bad1ad93b3353b4753ae94aa3bd5 (diff) | |
| parent | 868e45f86d39936ad04566e702ac95759b738149 (diff) | |
| download | vyos-1x-9952d21aa35fd40fe583de1ac20287a6784e8052.tar.gz vyos-1x-9952d21aa35fd40fe583de1ac20287a6784e8052.zip | |
Merge pull request #4743 from sarthurdev/kea3.0
kea: T7281: Fix Kea 3.0 service failures
Diffstat (limited to 'src')
13 files changed, 48 insertions, 35 deletions
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/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-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..0afaacd71 --- /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 /var/run/kea/kea-dhcp-ddns.conf diff --git a/src/etc/systemd/system/kea-dhcp-ddns@.service b/src/etc/systemd/system/isc-kea-dhcp-ddns-server@.service index b6360e573..9451addd4 100644 --- a/src/etc/systemd/system/kea-dhcp-ddns@.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/kea-dhcp4.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/kea-dhcp4.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/kea-dhcp4@.service b/src/etc/systemd/system/isc-kea-dhcp4-server@.service index f63364275..588cca216 100644 --- a/src/etc/systemd/system/kea-dhcp4@.service +++ b/src/etc/systemd/system/isc-kea-dhcp4-server@.service @@ -7,15 +7,19 @@ 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 +RuntimeDirectoryMode=0750 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 -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 [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 new file mode 100644 index 000000000..cc1885877 --- /dev/null +++ b/src/etc/systemd/system/isc-kea-dhcp6-server.service.d/override.conf @@ -0,0 +1,9 @@ +[Unit] +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 /var/run/kea/kea-dhcp6.conf diff --git a/src/etc/systemd/system/kea-dhcp6@.service b/src/etc/systemd/system/isc-kea-dhcp6-server@.service index 1d2330f74..7196239af 100644 --- a/src/etc/systemd/system/kea-dhcp6@.service +++ b/src/etc/systemd/system/isc-kea-dhcp6-server@.service @@ -7,15 +7,19 @@ 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 +RuntimeDirectoryMode=0750 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 -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 [Install] 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-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/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': { |
