私は Debian から に切り替えていますifupdown
がsystemd-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.target
、network-online.target
、 } )network-pre.target
multi-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.service
tinc を再構成するには、ブート時の依存関係としてのみ使用できます。私の経験では、tinc はネットワーク構成の変更に迅速に反応します。少なくとも Linux では、rtnetlink を使用してインターフェイスの変更をリッスンできます。