summaryrefslogtreecommitdiff
path: root/src/etc
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@vyos.io>2025-08-19 15:25:31 +0100
committerGitHub <noreply@github.com>2025-08-19 15:25:31 +0100
commit731e2193322867a89b8ea2c2fd755c174149e9b3 (patch)
treea87c8fbdcf62db5661f74ab32ad1432bfc613cc4 /src/etc
parente83507a30cc8082895a39a25052ebee03036b170 (diff)
parent974f9a5d5e13241e2b4ea54152bf835db6b7feff (diff)
downloadvyos-1x-731e2193322867a89b8ea2c2fd755c174149e9b3.tar.gz
vyos-1x-731e2193322867a89b8ea2c2fd755c174149e9b3.zip
Merge pull request #4508 from davi2367/vrf-dhcp
kea: T6211: add VRF support for KEA dhcp server
Diffstat (limited to 'src/etc')
-rw-r--r--src/etc/sudoers.d/vyos3
-rw-r--r--src/etc/systemd/system/kea-dhcp-ddns-server@.service22
-rw-r--r--src/etc/systemd/system/kea-dhcp4-server@.service22
-rw-r--r--src/etc/systemd/system/kea-dhcp6-server@.service22
4 files changed, 69 insertions, 0 deletions
diff --git a/src/etc/sudoers.d/vyos b/src/etc/sudoers.d/vyos
index 198b9b9aa..2dd8850c4 100644
--- a/src/etc/sudoers.d/vyos
+++ b/src/etc/sudoers.d/vyos
@@ -47,6 +47,8 @@ Cmnd_Alias DIAGNOSTICS = /bin/ip vrf exec * /bin/ping *, \
/usr/libexec/vyos/op_mode/*
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 * /run/kea/*
%operator ALL=NOPASSWD: DATE, IPTABLES, ETHTOOL, IPFLUSH, HWINFO, \
PPPOE_CMDS, PCAPTURE, /usr/sbin/wanpipemon, \
DMIDECODE, DISK, CONNTRACK, IP6TABLES, \
@@ -62,3 +64,4 @@ Cmnd_Alias KEA_IP6_ROUTES = /sbin/ip -6 route replace *,\
%sudo ALL=NOPASSWD: /usr/bin/mokutil
_kea ALL=NOPASSWD: KEA_IP6_ROUTES
+_kea ALL=NOPASSWD: KEA_DHCP
diff --git a/src/etc/systemd/system/kea-dhcp-ddns-server@.service b/src/etc/systemd/system/kea-dhcp-ddns-server@.service
new file mode 100644
index 000000000..b6360e573
--- /dev/null
+++ b/src/etc/systemd/system/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/kea-dhcp4-server@.service b/src/etc/systemd/system/kea-dhcp4-server@.service
new file mode 100644
index 000000000..f63364275
--- /dev/null
+++ b/src/etc/systemd/system/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/kea-dhcp6-server@.service b/src/etc/systemd/system/kea-dhcp6-server@.service
new file mode 100644
index 000000000..1d2330f74
--- /dev/null
+++ b/src/etc/systemd/system/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