Anleitungen zur Erstellung von statischen Routen unter Mac OS X (und später) gibt es einige. Bei mir funktionierte jedoch keine davon, da zum Zeitpunkt der Erstellung der Route bei jenen Scripten noch gar keine Netzwerkgeräte (z.B. eth0) verfügbar waren. Daher musste ein Script her welches auf die Netzwerkgeräte beim Start wartet.
Leider kenne ich mich mit dem "launchd"-Daemon noch nicht aus, daher ist dieses Script noch in der veralterten (seit 10.6) Form als "StartupItem" erstellt worden.
1. Erstellung des Scriptes
Das Script für die statischen Routen trägt den Namen "AddRoutes". Bei Bedarf können beliebig viele Routen integriert werden. Die gewählten IP-Adressen dieses Scripts müssen für den jeweiligen Bedarf angepasst werden. Die nachfolgenden Änderungen benötigen root-Rechte (su oder sudo) auf dem System.
Die Erstellung von "StartupItems" für alle Benutzer erfolgt unter /Library/StartupItems.
> cd /Library/StartupItems
Nun folgt die Erstellung des Verzeichnisses "AddRoutes" und der anschließende Wechsel in dieses Verzeichnis.
> mkdir AddRoutes
> cd AddRoutes
Nun folgt das eigentliche Script. Zur Erstellung kann man den Editor "vi" oder den Editor "nano" benutzen, ganz nach den persönlichen Vorlieben.
> nano AddRoutes
Im Editor folgendes Script erstellen:
#!/bin/sh
##
# Load network kernel modules
##
. /etc/rc.common
StartService ()
{ConsoleMessage "Loading Network Local"
# add interface route (kernel should know how to reach router)
# in the case where the destination and gateway are not sufficient to specify the route just add
# -ifp <Interface name>
route add -net 10.0.0.0/24 192.168.0.1 -ifp vlan0
route add -host 228.34.67.12 192.168.0.1
}
StopService ()
{
return 0
}
RestartService ()
{
return 0
}
# waits for all interfaces to come up
ipconfig waitall
FOUND_RUN_SERVICE="grep -c RunService /etc/rc.common"
if [ "${FOUND_RUN_SERVICE}" == "1" ];
then RunService "$1"
else StartService
fi
Speichern Sie das Script unter "nano" mit CTRL-O und verlassen danach den Editor mit CTRL-X.
2. Erstellung der Startparameter für obiges Script
Erstellen Sie im Script-Verzeichnis "AddRoutes" die Datei "StartupParameters.plist" mit folgendem Inhalt:
{
Description = "Add static routing tables";
Provides = ("AddRoutes");
Requires = ("Network");
OrderPreference = "None";
}
3. Zuweisen der korrekten Dateirechte
Das Setzen der richtigen Rechte für die Dateien "AddRoutes" und "StartupParameters.plist" erfolgt mit:
> chmod 755 AddRoutes StartupParameters.plist