Frage So laden Sie die Standard-Mac OSX-Routing-Tabelle ohne Neustart neu


Schöne Grüße,

Ich benutze vpnc für einen VPN-Client. Ich mache auch ein paar knifflige Sachen mit route um sicher zu stellen, dass ich immer noch auf mein lokales Netzwerk usw. zugreifen kann usw. (die Einzelheiten hier sind nicht sehr wichtig).

Manchmal bekomme ich die Routing-Tabelle so aufgebockt, dass ich komme ping: sendto: Network is unreachable für URLs, die sich sonst auflösen sollten.

Derzeit, wenn ich Mac OS X neu starte, ist alles wieder normal. Was ich tun möchte, ist, die Routing-Tabellen auf den "Standard" (z. B. was es beim Booten festgelegt ist) zurückzusetzen ohne ein vollständiger Systemneustart.

Ich denke, dass Schritt 1 ist route flush (um alle Routen zu entfernen). Und Schritt 2 muss alle Standardrouten neu laden.

Irgendwelche Gedanken darüber, wie man das macht? (z. B. was ist Schritt 2?)

BEARBEITEN Außerdem bemerke ich ein anderes Symptom ist traceroute scheitert auch an der Adresse in Frage. Zum Beispiel:

traceroute the.good.dns.name

traceroute: bind: Can't assign requested address


58
2017-10-26 15:43


Ursprung




Antworten:


Sie müssen die Routen spülen. Benutzen route -n bündig mehrmals . Fügen Sie anschließend Ihre Routen mit Route hinzufügen hinzu.


51
2017-11-02 09:51



Ich habe das zur akzeptierten Antwort geändert. Es klappt! Ich tat route -n flush mehrmals, dann habe ich gerade mein Netzwerk über die Systemeinstellungen neu gestartet. Es dauerte nur ein Jahr, um zurück zu kommen und das herauszufinden :) - Nate Murray
Dies löste ein ähnliches Problem für mich mit dem Aventail Connect-VPN-Client von Sonicwall, der besonders anfällig für Fehler "Fehlende angeforderte Adresse zuweisen" ist, insbesondere beim Wechsel von drahtlosen Netzwerken. Jetzt habe ich einen Weg zu lösen, der einen Power-Cycle nicht vermeidet. Vielen Dank! - Alan Donnelly


Ich bin auf dieses Problem gestoßen, als ich einen Home OpenVPN Server benutzt und mich mit der Anwendung Tunnelblick auf dem Mac verbunden habe.

Was an meinem Ende passierte, war, dass eine Route mit meiner Heim-IP als Ziel und einem falschen Gateway nach dem Trennen von dem VPN übrig blieb. Durch das Löschen dieser Route wurde das Problem behoben

$ sudo route -n delete the.good.dns.name

Beispiel: Ich bin in der Schule und nach einem frischen Computerstart stelle ich eine Verbindung zu einem drahtlosen Netzwerk her. Ich verbinde mich mit meinem Home OpenVPN Server mit Tunnelblick.

$ netstat -nr
Destination                   Gateway
....
[home-ip]/32                  [school-default-gateway-1] ....
....

Ich trenne die Verbindung zum VPN-Server. Ich ändere drahtlose Netzwerke. Dies ändert mein Standard-Gateway.

$ netstat -nr
Destination                   Gateway
...
[home-ip]/32                  [school-default-gateway-1] ...
...
$ ping [home-ip]
PING [home-ip]: 56 data bytes
ping: sendto: Network is unreachable
ping: sendto: Network is unreachable
Request timeout for icmp_seq 0
...

Unter diesen Umständen kann ich mich unter keinen Umständen mit meinem Heimnetzwerk (VPN, Ping, irgendetwas) verbinden. Wenn ich dann nur die Route lösche:

$ sudo route -n delete [home-ip]
delete net [home-ip]
$ ping [home-ip]
PING [home-ip]: 56 data bytes
64 bytes from [home-ip]: icmp_seq=1 ttl=56 time=13.111 ms

Es funktioniert gut.

Es könnte sein, dass ein Problem mit der Konfiguration des OpenVPN-Servers / -Clients auftaucht (und ich würde gerne herausfinden, was das ist), aber ich habe ein Tunnelblick-Skript nach der Verbindungstrennung installiert, das die Löschung dieser Route automatisiert.


15
2018-04-17 17:46



Ich habe hier ein ähnliches Problem. Ziemlich nervig. - Tom Busby
Ich laufe auf dasselbe Problem, sogar mit dem Beispiel ovpn Skript. Die einzige Lösung, die ich gefunden habe, ist die gleiche wie beim Löschen der Route in einem Post-Disconnect-Skript: - jklp
Gibt es eine Möglichkeit, dieses Skript bei jeder Trennung automatisch auszuführen? - Whitecat
@Whitecat Ja! Sieh dir das an: superuser.com/a/1305361 - Elad Nava


Zuerst benötigen Sie eine Route für Ihre Netzwerkschnittstelle. Wenn das VPN getrennt ist, nehmen Sie einfach Ihre Netzwerkschnittstelle herunter und bringen Sie sie dann mit ifconfig wieder hoch. Verwenden Sie dann die Route commnand, um Ihr Standard-GW zu erstellen. So etwas wie:

ifconfig en0 down

ifconfig en0 up

route add <ip address> default


9
2017-10-26 20:34



Ja, aber woher weiß Mac OS X, wie die IP-Adresse der Standardroute ist? Was ich wirklich gerne sehen würde, ist, wie Mac OS X den Boot-Vorgang ausführt und genau dasselbe macht. - Nate Murray
...? Es bekommt es von DHCP ... - Jordan Eunson


Ich stieß auf das gleiche Problem wie @Sean (ich betreibe auch OS X), in dem, als ich zwischen Heim- und Arbeitsnetzwerken wechselte, die Standardroute nicht gelöscht wurde.

Zur Vollständigkeit: Wenn ich mich zu Hause mit meinem VPN verbinde und den folgenden Befehl ausführe, wird das Standard-Gateway wie folgt angezeigt

$ netstat -nr
Destination                   Gateway
...
[home-ip]/32                  [work-default-gateway-1]

Und wenn ich die Verbindung getrennt habe, wäre das [home-ip] Gateway immer noch da. Als ich mich mit meinem Arbeitsnetzwerk verbinden konnte, konnte ich überhaupt keine Verbindung zum Internet herstellen und stieß auf das gleiche Problem wie bei OP

$ traceroute the.good.dns.name    
$ traceroute: bind: Can't assign requested address

Ich müsste dann die Route manuell mit löschen

$ sudo route -n delete [home-ip]

Anfangs habe ich die "route -n delete" in a post-disconnect.sh Skript, aber das war ein bisschen unordentlich, stattdessen fand ich diesen Link

https://code.google.com/p/tunnelblick/issues/detail?id=177

Anscheinend liegt der Grund darin, das Folgende in meinem zu setzen .ovpn Datei

user nobody
group nogroup

Dies bedeutet, dass die Route als root eingerichtet ist, aber wenn die Verbindung abgebaut wird, ist der Benutzer nicht mehr root, sodass die Route nicht gelöscht werden kann.

Kommentieren Sie diese 2 Zeilen in meinem .ovpn Datei behebt das Problem, ohne eine verwenden zu müssen post-disconnect.sh.


5
2017-10-05 23:29



Danke, das hat auch für mich funktioniert. Es ist schade, dass der Google-Code-Link nicht mehr funktioniert. - Toby
Ich habe versucht, Ihren Vorschlag zu verwenden, das Problem ist, dass, wenn ich mich an das VPN anmelde, zieht es die Konfigurationsdateien von irgendwo und überschreibt meine Änderungen. Es bekommt sie nicht vom Server, soweit ich das beurteilen kann, denn wenn ich diese Dateien ändere, behebt es das Problem nicht. Gibt es einen clientseitigen Speicherort, an dem ich diese Dateien finden und sie zerstören / modifizieren kann, so dass meine Änderungen bleiben? - Finncent Price
Ich machte den trivialen Fehler, ~ / Library mit / Library zu verwirren. Hoppla! Für jeden, der dies liest, möchten Sie die Datei unter ~ / Library / Application Support / Tunnelblick / Konfigurationen / <vpnname> .tblk / Contents / Resources ändern - Finncent Price