Come ricaricare la tabella di routing predefinita di Mac OSX senza riavviare


71

Saluti,

Sto usando vpncper un client VPN. Sto anche facendo alcune cose difficili routeper assicurarmi di poter ancora accedere alla mia rete locale, ecc. Ecc. (I dettagli qui non sono molto importanti).

A volte ricevo la tabella di routing così rialzata ottengo ping: sendto: Network is unreachableurl che altrimenti dovrebbero risolversi.

Attualmente, se riavvio Mac OS X, tutto torna alla normalità. Quello che mi piacerebbe fare è ripristinare le tabelle di routing su "default" (ad es. Cosa è impostato all'avvio) senza riavviare l'intero sistema.

Penso che il passaggio 1 sia route flush(per rimuovere tutti i percorsi). E il passaggio 2 deve ricaricare tutti i percorsi predefiniti.

Qualche idea su come farlo? (ad es. cos'è il passaggio 2?)

EDIT Inoltre, sto notando che un altro sintomo traceroutenon riesce anche sull'indirizzo in questione. Per esempio:

traceroute the.good.dns.name

traceroute: bind: Can't assign requested address

Risposte:


64

Devi svuotare i percorsi. Usa route -n flush più volte. Successivamente aggiungi i tuoi percorsi con aggiungi percorso.


1
Ho cambiato questo con la risposta accettata. Funziona! L'ho fatto route -n flushdiverse volte, quindi ho appena riavviato il mio networking tramite le preferenze di Sistema. Mi ci è voluto solo un anno per tornare a capirlo :)
Nate Murray,

Ciò ha risolto un problema simile per me con il client VPN Aventail Connect di Sonicwall che trovo particolarmente incline agli errori "Impossibile assegnare l'indirizzo richiesto", in particolare quando si cambia rete wireless. Ora ho un modo per risolvere che non evita un ciclo di accensione. Grazie!
Alan Donnelly,

Wow! Mi ha anche aiutato con il mio problema con BarracudaVPN ... Attivo / disattivo il Wi-Fi e finalmente riesco a riconnettermi! Molte grazie!
Hans_meine,

19

Stavo riscontrando questo problema durante l'utilizzo di un server OpenVPN di casa e la connessione tramite l'applicazione Tunnelblick su Mac.

Quello che stava succedendo da parte mia è che un percorso con il mio IP di casa come destinazione e un gateway errato stava diventando residuo dopo la disconnessione dalla VPN. L'eliminazione di questa route ha risolto il problema, semplicemente

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

Esempio: sono a scuola e dopo un nuovo avvio del computer, mi collego a una rete wireless. Mi collego al mio server OpenVPN di casa con Tunnelblick.

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

Mi disconnetto dal server VPN. Cambio reti wireless. Questo cambia il mio gateway predefinito.

$ 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
...

Non posso in nessun caso connettermi alla mia rete domestica (VPN, ping, niente) dopo che ciò accade. Se poi elimino il percorso:

$ 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

Funziona bene

Potrebbe esserci un problema con la configurazione del server / client OpenVPN che sta lasciando questo (e sarei interessato a scoprire di cosa si tratta), ma ho installato uno script post-disconnect Tunnelblick che automatizza l'eliminazione di questa route.


In realtà sto riscontrando un problema simile qui. Davvero fastidioso.
Tom Busby,

Sto riscontrando lo stesso problema, anche con l'esempio ovpn script. L'unica soluzione che ho trovato è la stessa di OP, nell'eliminazione del percorso in uno script post-disconnect: /
jklp

C'è un modo per eseguire automaticamente questo script ad ogni disconnessione?
Whitecat,

@Whitecat Sì! Dai un'occhiata a: superuser.com/a/1305361
Elad Nava,

13

Innanzitutto è necessario un percorso per l'interfaccia di rete. Se la VPN è disconnessa, abbassa semplicemente l'interfaccia di rete e quindi ripristinala con ifconfig. Quindi usa il comando route per compilare il tuo gw predefinito. Quindi qualcosa come:

ifconfig en0 down

ifconfig en0 up

route add <ip address> default


1
Sì, ma come fa Mac OS X a sapere qual è l'indirizzo IP del percorso predefinito? Quello che mi piacerebbe davvero vedere è come Mac OS X esegue il processo di avvio e fa esattamente la stessa cosa.
Nate Murray,

1
...? Ottiene dal DHCP ...
Jordan Eunson,

5

Stavo riscontrando lo stesso problema di @Sean (sto eseguendo anche OS X), in quanto quando passavo da una rete domestica a un'altra, il percorso predefinito non veniva cancellato.

Per completezza, quando mi connetto alla mia VPN a casa ed eseguo il comando seguente, mostra il gateway predefinito come di seguito

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

E quando mi disconnettessi, il gateway [home-ip] sarebbe ancora lì. Quando mi connettevo alla mia rete di lavoro, non riuscivo a collegarmi a Internet e mi imbattevo nello stesso problema di OP

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

Dovrei quindi eliminare manualmente il percorso con

$ sudo route -n delete [home-ip]

Inizialmente ho inserito "route -n delete" in uno post-disconnect.shscript, ma era un po 'confuso, quindi ho trovato questo link

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

Apparentemente il motivo è dovuto all'impostazione di quanto segue nel mio .ovpnfile

user nobody
group nogroup

Ciò significa che la route è impostata come root, ma quando la connessione viene interrotta l'utente non è più root, quindi la route non può essere eliminata.

Commentare queste 2 righe nel mio .ovpnfile ha risolto il problema, senza dover usare a post-disconnect.sh.


Grazie, ha funzionato anche per me. È un peccato che il collegamento al codice google non funzioni più.
Toby,

Ho provato a utilizzare il tuo suggerimento, il problema è che quando mi collego alla VPN estrae i file di configurazione da qualche parte e sovrascrive le mie modifiche. Non li sta ottenendo dal server, per quanto posso dire perché quando cambio quei file non risolve il problema. Esiste una posizione sul lato client in cui posso trovare questi file e distruggerli / modificarli in modo che le mie modifiche rimangano?
Prezzo Finncent,

Stavo commettendo il banale errore di confondere ~ / Library con / Library. Oops! Per chiunque legga questo, si desidera modificare il file in ~ / Library / Application Support / Tunnelblick / Configurations / <vpnname> .tblk / Sommario / Risorse
Prezzo Finncent
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.