Permanente Route auf OS-X einrichten
Permanente Route auf OS-X einrichten
Zusätzliche Routen werden im Netzwerk immer mal wieder benötigt, wenn ein Netzwerk über einen anderen Router als über das Default Gateway zu erreichen sind.
Damit diese auch nach einem Neustart des Betriebssystems noch bestehen, müssen diese permanent gemacht werden. Unter Linux funktioniert das am einfachsten in den Startup Scripts der Netzwerk Interfaces. Unter Windows ist der Parameter „-p“ des „route“ Befehls dafür vorgesehen.
Ausgerechnet bei Apples Betriebssystem OS-X, welches für einfache Bediehnung bekannt ist, gestaltet sich die Sache etwas komplizierter.
Um eine temporäre Route anzulegen, in diesem Beispiel für das Netzwerk 10.10.10.0/24 über das Gateway 192.168.1.100 ist im Terminal folgender Befehl einzugeben: „sudo route add -net 10.10.10.0 -netmask 255.255.255.0 192.168.1.100„.
Viele Anleitungen zum Setzen einer permanenten Route empfehlen ein Script für den LaunchDaemon zu erstellen, welches die Route direkt anlegt. Die entsprechenden .plist Files liegen dann unter „/Library/LaunchDaemons/“.
Bei meinen Versuchen wurde die Route angelegt, wenn ich direkt in der Konsole startete: „launchctl load /Library/LaunchAgents/routes.static.plist„, nach einem Neustart fehlte die Route dann aber. Mir kam der Verdacht, das in dem Moment, wo die Route angelegt werden sollte, das entsprechende Netzwerkinterface noch gar nicht aktiv ist. Durch Ausgabe des Ergebnis in eine Log Datei wurde der Verdacht bestätigt.
Deshalb starte ich den Route Befehl nun über ein Shell Script, welches vorher mit „scutil“ prüft, ob das Interface up ist (hier für en0): „/usr/sbin/scutil -w State:/Network/Interface/en0/IPv4„
Hier ein komplettes Script als Beispiel, welches unter „/usr/local/bin/static-routes.sh“ liegt und mittels „chmod +x“ ausführbar gemacht wurde:
#!/bin/bash
function testandwait {
/usr/sbin/scutil -w State:/Network/Interface/en0/IPv4
if [ $? != 0 ] ; then
logger "warte auf Netzwerk"
sleep 30
testandwait
else
addroute
fi
}
function addroute {
route -n add -net 10.10.10.0 192.168.1.100
exit
}
testandwait
Das Script ist zwar alles andere als perfekt, aber auf diese Weise wird die Route angelegt sobald das Interface bereit ist.Veröffentlicht am 24. Februar 2018Von Jörg LeuschnerKategorisiert in Apple, NetzwerkVerschlagwortet mit Apple, Netzwerk, Router
6 Kommentare
- MircoDanke für den Tipp!
Falls noch die Frage aufkommt, wie man eine per networksetup erstellte Route wieder weg bekommt: Keine Routen mitgeben:
networksetup -setadditionalroutes „Ethernet 1“
Comments by wp-admin