Debianのアップデート後、Systemdはネットワークネームスペースを作成できません。

Debianのアップデート後、Systemdはネットワークネームスペースを作成できません。

私は独自のDebianバージョン(trixie、6.1.0-9-amd64)を実行しています。ネットワークネームスペースを設定し、それを介してVPNトラフィックをルーティングするためにカスタムsystemdサービスを設定しました(サービスは1年以上完璧に機能しました)。最新のシステム更新後、次のようにネットワーク名前空間の作成が失敗します。

依存タスク[Eメール保護]失敗。詳細については、「journalctl -xe」を参照してください。

以下は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でした。このエラーを引き起こすもう1つの原因は何ですか?

追加するには編集してください。

私はファイルを呼び出して実行すると思われる起動名前空間を使用します。systemctl start [email protected][Eメール保護]':

[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を最初から再インストールし、ネームスペースをリセットした後、すべてがうまくいきました。

関連情報