Führen Sie mit systemd-networkd eine Aktion aus, wenn sich die Netzwerkkonfiguration ändert

Führen Sie mit systemd-networkd eine Aktion aus, wenn sich die Netzwerkkonfiguration ändert

Ich wechsele von Debian ifupdownzu systemd-networkdund es funktioniert größtenteils gut. Was fehlt, ist, dass ich bei jeder Netzwerkänderung anrufen möchte killall -ARLM tinc, damit mein VPN rechtzeitig hochfährt.

Bietet systemdoder systemd-networkdverfüge ich über eine solche Funktionalität? Wie würde ich sie verwenden?

Antwort1

Ich verwende networkd-dispatcherzum Ausführen von Ereignissen nach Änderungen des Schnittstellenstatus:

Networkd-Dispatcher ist ein Dispatcher-Daemon für Verbindungsstatusänderungen von systemd-networkd. Dieser Daemon ähnelt NetworkManager-Dispatcher, ist aber aufgrund der eingeschränkten Natur von systemd-networkd in den unterstützten Ereignistypen viel eingeschränkter.

Link zuGitlab

Antwort2

Tinc sollte als systemd-Einheit aktualisiert werden, anstatt direkte Signale zu senden. Um dies zu erreichen, müssen die Unit-Dateien so konfiguriert werden, dass sie mit den entsprechenden Zeilen Require=, Before=, und After=im [Unit]Abschnitt verkettet werden. Stellen Sie außerdem sicher, dass Sie die richtigen Einstellungen WantedBy=für Netzwerkdienste vornehmen. (d. h. WantedBy={ network.target, network-online.target, network-pre.target} statt multi-user.target)

Damit kann man systemctl restart systemd-networkd.servicedas Netzwerk neu starten. Kombiniert man dies mit systemd-resolvd, udev/ dbus(plus [email protected]bei WLAN) und das Netzwerk funktioniert einfach.

Lesen Sie unbedingt die Artikel überUmstellung auf systemd-networkdUndEinheitenabhängigkeitensystemd.service. Dies ist auch eine Möglichkeit, Signale an Ihre Einheiten über den Befehl zu senden, systemctl killwie imsystemd-Handbuch für Administratoren

Antwort3

Dies ist derzeit nicht möglich. Sie können es jedoch nur systemd-networkd-wait-online.serviceals Abhängigkeit beim Booten verwenden, um Tinc neu zu konfigurieren. Meiner Erfahrung nach reagiert Tinc schnell auf Änderungen in der Netzwerkkonfiguration. Zumindest unter Linux könnte es rtnetlink verwenden, um auf Schnittstellenänderungen zu warten.

verwandte Informationen