Debian 更新后 systemd 无法创建网络命名空间

Debian 更新后 systemd 无法创建网络命名空间

我正在运行我自己风格的 Debian(trixie、6.1.0-9-amd64)。我设置了一个自定义 systemd 服务来建立网络命名空间并通过它路由 VPN 流量(该服务已经完美运行了一年多)。最新的系统更新后,创建网络命名空间失败,并显示以下内容:

依赖作业[电子邮件受保护]失败的。有关详细信息,请参阅“journalctl -x e”。

以下是来自journalctl的相关(我希望)行:

Sep 29 23:23:50 [redacted] systemd[1]: /lib/systemd/system/[email protected]:10: Failed to resolve unit specifiers in 'netns@%I.service', ignoring: Invalid slot

Sep 29 23:23:54 [redacted] systemd[1]: Starting [email protected] - Named network namespace ovpn...
Sep 29 23:23:54 [redacted] env[xxxx]: umount: /var/run/netns/ovpn: not mounted.
Sep 29 23:23:54 [redacted] systemd[1]: [email protected]: Main process exited, code=exited, status=32/n/a
░░ Subject: Unit process exited
░░ An ExecStart= process belonging to unit [email protected] has exited.
░░ 
░░ The process' exit code is 'exited' and its exit status is 32.

Sep 29 23:23:54 [redacted] systemd[1]: Dependency failed for [email protected] - NAT service for netns ovpn.
Sep 29 23:23:54 [redacted] systemd[1]: [email protected]: Job [email protected]/start failed with result 'dependency'.

“无法解析...中的单位说明符”错误向我表明命名空间配置文件中现在存在问题,%I/%i但我尝试转义它们但无济于事。还有什么可能导致这些错误?

编辑添加

我使用启动命名空间,我相信它会调用并执行文件'systemctl start [email protected][电子邮件受保护]':

[Unit]
Description=NAT service for netns %I
Documentation=https://github.com/Jamesits/systemd-named-netns

BindsTo=netns@%i.service
After=netns@%i.service
Before=network.target network-online.target
Conflicts=netns-bridge@%i.service

JoinsNamespaceOf=netns@%I.service

[Install]
WantedBy=network-online.target
WantedBy=multi-user.target

[Service]
Type=oneshot
RemainAfterExit=yes

ExecStart=/usr/bin/env netnsinit nat %I up outside
ExecStart=/usr/bin/env ip netns exec %I /usr/bin/env netnsinit nat %I up inside

ExecStop=/usr/bin/env ip netns exec %I /usr/bin/env netnsinit nat %I down inside
ExecStop=/usr/bin/env netnsinit nat %I down outside

该脚本netnsinit可以在以下位置找到:https://github.com/Jamesits/systemd-named-netns/blob/master/scripts/netnsinit

答案1

我不知道上面到底发生了什么,但我怀疑我的 Debian 设置发生了更深层次的问题(其他一些程序开始抛出神秘的段错误)。从头开始重新安装 Debian 并再次设置命名空间后,一切正常。

相关内容