Dann lege zwei (+X) Netzwerkumgebungen an und schalte die per Skript um, wenn eine nicht erreichbar ist

Das ganze per launchd regelmäßig laufen lassen, das Intervall hängt von Deinen Anforderungen ab.

Ich schalte auch per Skript, aber übers Menü ausgelöst, um, weil ich bei der Netzwerkumgebung vom System immer erst reinschauen muß, "wo" ich gerade bin und SmartDNS möchte ich z.B. nur im Bedarfsfall nutzen und danach wieder zurück auf's normale Netz. Und damit ich es nicht vergesse lasse ich es mir in der Menüleiste anzeigen.



Damit Du zum Basteln nicht suchen mußt, folgendes wirst Du brauchen

Liste Deiner Umgebungen:
> networksetup -listlocations
Hoppla Hotspot
SmartDNS
No Network
(<= so heißt meine Testumgebung ohne aktive Services, einfacher als Kabel ziehen & WLAN aus)

Deine aktuelle Umgebung
> networksetup -getcurrentlocation
SmartDNS

Umschalten auf eine andere Umgebung aus der obigen Liste
> networksetup -switchtolocation "$location_neu"

z.B.
> networksetup -switchtolocation "LAN"
found it!