systemd-networkdでは、ネットワーク構成の変更時にアクションを実行します


10

Debianからに切り替えていますifupdownsystemd-networkd、ほとんど問題なく動作します。足りない点の1つは、ネットワークが変更されるたびにを呼び出しkillall -ARLM tincて、VPNがタイムリーに稼働するようにすることです。

systemdそのsystemd-networkdような機能はありますか、または提供していますか?どうやって使うの?

回答:


3

networkd-dispatcherインターフェイスのステータスが変更された後にイベントを実行するために使用しています:

networkd-dispatcherは、systemd-networkd接続ステータスの変更のためのディスパッチャデーモンです。このデーモンはNetworkManager-dispatcherに似ていますが、systemd-networkdの制限された性質のため、サポートするイベントのタイプがはるかに制限されています。

Gitlabへのリンク


これはDebian 10(Buster)に含まれています。
John Eikenberry、

2

Tincは、直接信号を送信するのではなく、systemdユニットとして更新する必要があります。これを達成するために適切なと連鎖させるために彼らのユニットファイルを設定する必要がありRequire=Before=After=の行[Unit]セクション。またWantedBy=、ネットワークサービスの正しい設定を確認してください。(すなわち、WantedBy={ network.targetnetwork-online.targetnetwork-pre.target}の代わりにmulti-user.target

これにより、実行systemctl restart systemd-networkd.serviceしてネットワークを再起動できます。これを/ (wifiの場合はプラス)と組み合わせるとsystemd-resolvd、ネットワークは正常に機能します。udevdbuswpa_supplicant@nic.service

systemd-networkdユニット依存への切り替えに関する記事を必ずお読みください。これは、systemd for administartorsガイドに記載されsystemd.serviceているsystemctl killコマンドを介してユニットに信号を送信する方法でもあります


私は本当についていません。したがって、tincがsystemdサービスとして実行されている場合systemctl kill、信号の配信に使用できます。しかし、ネットワーク構成の変更時にそれをトリガーする方法はわかりません。
Joachim Breitner、2015

systemdのシグナリングを使用して、ターゲットと関係の依存関係のみを使用することはありません。このように、ネットワークインターフェースたら(内部的にsystemdに)この信号の他の依存関係がアップしているnetwork.targetそして、network-online.targetそのユニットをキックオフします。これだけいるtinc.service含めるRequires=systemd-networkd.serviceと、WantedBy=network-online.targetそのオフにsystemd-networkdキックは、NICおよびTUNインタフェースを起動し、IPアドレスを確立し、その後、必要に応じて起動または再起動するTINCに通知しますときに。
ドワイトスペンサー

切断時にnetwork-online.targetが停止しないため、私もサービスの再起動をトリガーする方法を見つけることができませんでした(これについては、実際にバグレポートを提出する必要があります...)。私は/etc/NetworkManager/dispatcher.d/スクリプトを含む手段に頼りましたcase "$2" in up|connectivity-change) if /usr/bin/nm-online -qx; then systemctl reload autossh.service fi;; esac
eMPee584

1
私はそれはあなたが書かれた記事にリンクされていることを楽しま見つけることにより、その質問あなたが答えている人。:)もちろん、この回答を後から読む人にとっても役に立ちますが、それでもおもしろいです。
ワイルドカード

1

これは現在不可能です。ただしsystemd-networkd-wait-online.service、ティンクを再構成するには、ブートへの依存関係としてのみ使用できます。私の経験では、ティンクはネットワーク構成の変更にすばやく反応します。少なくともLinuxでは、rtnetlinkを使用してインターフェースの変更をリッスンできます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.