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

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

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

systemdそのような機能はありますか?systemd-networkdどのように使用すればよいですか?

答え1

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

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

リンク先ギットラボ

答え2

Tinc は、直接シグナルを送信するのではなく、systemd ユニットとして更新する必要があります。これを実現するには、 セクションの適切なRequire=Before=After=行でユニット ファイルを連鎖するように構成する必要があります[Unit]。また、ネットワーク サービスに適切な を設定していることを確認してくださいWantedBy=。(つまり、ではなくWantedBy={ network.targetnetwork-online.target、 } )network-pre.targetmulti-user.target

systemctl restart systemd-networkd.serviceこれにより、ネットワークを再起動する実行が可能になります。これをsystemd-resolvd, udev/ dbus(wifi の場合はプラス[email protected]) と組み合わせると、ネットワークが正常に機能します。

ぜひ記事を読んでみてくださいsystemd-networkdへの切り替えそしてユニット依存関係これは、コマンドを介しsystemd.serviceてユニットに信号を送信する方法でもあります。systemctl kill管理者向け systemd ガイド

答え3

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

関連情報