| 8 Jul 2025 |
Zhaofeng Li | or it has to be 2.6.x for backport reasons (surprising they changed this behavior in a revision) | 22:22:28 |
hexa | yeah, we need the 2.6.3 backport | 22:23:10 |
hexa | and yeah, the behavior change is what breaks the runtime environment | 22:23:26 |
hexa | for reasons I don't understand | 22:23:30 |
Zhaofeng Li | ok, let me try | 22:26:18 |
Zhaofeng Li | built, the KEA_CONTROL_SOCKET_DIR appears to be honored fine
router # [ 8.927187] kea-ctrl-agent[805]: 2025-07-08 22:43:26.795 INFO [kea-ctrl-agent.dctl/805.140519184328576] DCTL_STARTING Control-agent starting, pid: 805, version: 2.6.3 (stable)
router # [ 8.929422] kea-ctrl-agent[805]: 2025-07-08 22:43:26.798 ERROR [kea-ctrl-agent.ctrl-agent/805.140519184328576] CTRL_AGENT_CONFIG_FAIL Control Agent configuration failed: invalid path specified: '/run/kea/VALUE-IN-CONFIG', supported path is '/run/kea/meow'
router # [ 8.931635] kea-ctrl-agent[805]: 2025-07-08 22:43:26.798 FATAL [kea-ctrl-agent.dctl/805.140519184328576] DCTL_CONFIG_FILE_LOAD_FAIL Control-agent reason: invalid path specified: '/run/kea/VALUE-IN-CONFIG', supported path is '/run/kea/meow'
| 22:46:20 |
Zhaofeng Li | then there's a permission issue, checking
router # [ 8.841737] kea-ctrl-agent[780]: 2025-07-08 22:45:53.570 ERROR [kea-ctrl-agent.ctrl-agent/780.139821817276288] CTRL_AGENT_CONFIG_FAIL Control Agent configuration failed: socket path:/run/kea does not exist or does not have permssions = 750
| 22:47:04 |
hexa | RuntimeDirectoryMode = "750";
| 22:51:40 |
hexa | * RuntimeDirectory = "kea";
RuntimeDirectoryMode = "750";
| 22:52:01 |
hexa | not sure why this part doesn'tw ork | 22:53:09 |
hexa | * not sure why this part doesn't ork | 22:53:11 |
hexa | * not sure why this part doesn't work | 22:53:13 |
Zhaofeng Li | yeah, saw that | 22:53:29 |
Zhaofeng Li | using socket-name = "/run/private/kea/dhcp4.sock"; works, curious | 22:53:31 |
Zhaofeng Li | the source does if (::stat(path.c_str(), &statbuf) < 0) for the permission check which should follow symlinks, looking | 22:54:19 |
hexa | huh | 22:56:28 |
Zhaofeng Li | yeah, this sandbox is weird... let me just nsenter into it I guess | 23:09:48 |
Zhaofeng Li | the log spam is killing me, is there a way to suppress the serial output from the interactive driver? 🫠| 23:22:28 |
Zhaofeng Li | anyways, it appears that kea is actually right that it does not have the correct permissions
In [29]: print(router.succeed("nsenter -a -t 761 ls -lah /run/kea/"))
router: must succeed: nsenter -a -t 761 ls -lah /run/kea/
router: (finished: must succeed: nsenter -a -t 761 ls -lah /run/kea/, in 0.02 seconds)
total 56K
drwxr-xr-x 2 kea kea 100 Jul 8 23:19 .
| 23:22:50 |
hexa | huh, 755 instead of 750 | 23:23:33 |
hexa | wild | 23:23:34 |
Zhaofeng Li | but I don't get how /run/private/kea/dhcp4.sock worked then (the real directory is 755 too), maybe something changed the permission | 23:24:47 |
hexa | kea's umask is 0077 fwiw | 23:25:28 |
hexa | maybe weird behavior with DynamicUser and RuntimeDirectoryPreserve? | 23:26:10 |
hexa | maybe we can find out using an audit rule | 23:27:11 |
Zhaofeng Li | ok, got distracted | 23:49:42 |
Zhaofeng Li | change socket-path to /run/private/kea/dhcp4.sock -> permission is correct
then, change kea-ctrl-agent to have ExecStart = "/bin/sh -c \"while true; do sleep 1000; done\""; -> bad permission??
| 23:50:03 |
hexa | uhhhhhhhhhhhh | 23:51:32 |
hexa | diff --git a/nixos/modules/services/networking/kea.nix b/nixos/modules/services/networking/kea.nix
index 6e0af62425a4..e55e7aa101c0 100644
--- a/nixos/modules/services/networking/kea.nix
+++ b/nixos/modules/services/networking/kea.nix
@@ -277,7 +277,7 @@ in
User = "kea";
ConfigurationDirectory = "kea";
RuntimeDirectory = "kea";
- RuntimeDirectoryMode = "750";
+ RuntimeDirectoryMode = "0750";
RuntimeDirectoryPreserve = true;
StateDirectory = "kea";
UMask = "0077";
| 23:51:46 |
hexa | * diff --git a/nixos/modules/services/networking/kea.nix b/nixos/modules/services/networking/kea.nix
index 6e0af62425a4..e55e7aa101c0 100644
--- a/nixos/modules/services/networking/kea.nix
+++ b/nixos/modules/services/networking/kea.nix
@@ -277,7 +277,7 @@ in
User = "kea";
ConfigurationDirectory = "kea";
RuntimeDirectory = "kea";
- RuntimeDirectoryMode = "750";
+ RuntimeDirectoryMode = "0750";
RuntimeDirectoryPreserve = true;
StateDirectory = "kea";
UMask = "0077";
| 23:51:50 |