Systemd entfernt (Host-) Routen beim Aussetzen

366
allo

Das System entfernt benutzerdefinierte Routen nach dem Anhalten und Fortsetzen.

Wenn ich eine Route hinzufüge

ip route add 1.2.3.4 via 5.6.7.8 

Es wird nach dem Suspendieren entfernt und fortgesetzt. Dies ist annying, weil es zB Hostrouten von openvpn entfernt, wodurch die VPN-Verbindung danach unbrauchbar wird.

Ich habe den Fehler in Debian und Ubuntu bestätigt, und in Debian habe ich bestätigt, dass dies nicht mit sysvinit passiert.

Was muss ich konfigurieren, damit systemd die Routing-Tabelle überhaupt nicht berührt?
Ich habe einige Skripte, die ziemlich viel Netzwerkkonfiguration durchführen und möchte, dass kein anderer Teil des Systems die Konfiguration ändert.

0
Wenn Sie bestätigt haben, dass es sich um einen _bug_ handelt, warum können Sie sogar davon ausgehen, dass er weg konfiguriert werden kann? Die meisten Fehler benötigen Bugfixes. grawity vor 6 Jahren 0
Bevor ein Fehler bestätigt wird, muss ich wissen, ob es sich nicht nur um ein Konfigurationsproblem handelt. Ich würde nicht glauben, dass niemand bemerkt hat, dass systemd in einer Standardkonfiguration Routen entfernt. Es ist also wahrscheinlich kein Fehler, aber etwas, das Sie konfigurieren können. Ich hoffe es zumindest. allo vor 6 Jahren 0

1 Antwort auf die Frage

1
Ljm Dullaart

Willkommen bei den Wundern von Systemd. Soweit ich weiß, kann systemd das Routing nicht ignorieren. Soweit ich weiß, tut es dies explizit (dh Feature, nicht Fehler). Sie können jedoch Skripts zum Zeitpunkt des Ruhezustands ausführen. Siehe man systemd-suspend.serviceFeindetails.

Grundsätzlich fügen Sie ein Skript ein /usr/lib/systemd/system-sleep/, das Folgendes bewirkt:

#!/bin/bash if [ "$1" = "post" ] ; then ip route add 1.2.3.4 via 5.6.7.8 # or call the script that already creates the routing table fi 

Hinweis: Das Verzeichnis kann /lib/systemd/system-sleep/(ohne /usr) sein

Sie gehen davon aus, dass alle systemd-Funktionen in einem einzigen Programm enthalten sind. Der Service Manager berührt das Netzwerk nicht. Der _systemd-networkd_-Netzwerkmanager tut dies - das heißt, wenn OP diese Option aktiviert und verwendet hat. grawity vor 6 Jahren 0
Nein, ich bezog mich auf systemd als ganze Suite, nicht als einzelne Instanz des Daemons. Ljm Dullaart vor 6 Jahren 0
Es funktioniert als Workaround, aber ich muss vor dem Befehl vpn restart einen `` sleep`` setzen. `sleep 3`` funktioniert für mich, aber wahrscheinlich hängt es vom System ab und davon, wie langsam oder schnell systemd netzwerkbezogene Dinge nach dem Lebenslauf neu konfiguriert. allo vor 6 Jahren 0