Come instradare selettivamente il traffico di rete tramite VPN su Mac OS X Leopard?


96

Non voglio inviare tutto il mio traffico di rete alla VPN quando sono connesso alla rete della mia azienda (tramite VPN) da casa. Ad esempio, quando lavoro da casa, vorrei poter eseguire il backup di tutti i miei file sul Time Capsule a casa e poter comunque accedere alla rete interna dell'azienda.

Sto usando il client VPN integrato di Leopard. Ho provato a deselezionare "Invia tutto il traffico tramite connessione VPN". In tal caso, perderò l'accesso ai siti Web interni della mia azienda, sia tramite arricciatura o browser Web (sebbene gli IP interni siano ancora raggiungibili). Sarebbe l'ideale se potessi scegliere selettivamente un set di IP o domini da instradare tramite VPN e mantenere il resto sulla mia rete. Ciò è realizzabile con il client VPN integrato di Leopard? Se hai qualche consiglio sul software, mi piacerebbe anche ascoltarli.


2
La prima soluzione funzionerà solo su una VPN PPP. La seguente soluzione funzionerà su una VPN Cisco (e altri tipi nulla di specifico a Cisco) superuser.com/questions/91191/…
dr jimbob

Risposte:


84

Crea il file / etc / ppp / ip-up con il seguente contenuto:

#!/bin/sh
/sbin/route add <SUBNET> -interface $1 

sostituendo <SUBNET>con la sottorete, si desidera instradare tramite VPN (ad es. 192.168.0.0/16)

eseguire come root:

chmod 0755 /etc/ppp/ip-up

Questo file verrà eseguito ogni volta che ti connetti alla VPN.

I parametri forniti allo script:

  • $1: L'interfaccia VPN (ad es. ppp0)
  • $2: Sconosciuto, era 0nel mio caso
  • $3: IP del server VPN
  • $4: Indirizzo gateway VPN
  • $5: Gateway normale (non VPN) per le connessioni lan

1
La punta di Aleksei ha funzionato per me. Mi chiedo solo se la prima riga (#! / Bin / sh) sta facendo qualcosa. Non è commentato. Lo sto chiedendo poiché lo sto descrivendo per l'uso nella nostra azienda e più semplice è il migliore :-) Grazie, Edgar
Edgar Wieringa,

1
@EdgarWieringa: ha convertito la tua risposta in un commento. Spero sia meglio! :)
studiohack

6
@Edgar - no. Quella prima riga è speciale. en.wikipedia.org/wiki/Shebang_(Unix)
James Moore,

6
Su 10.7 / Lion, ho avuto più fortuna con: / sbin / route add 172.16.0.0/16 -interface $ 1 Gli argomenti che ho visto ottenere su ip-up sono: $ 1 = interfaccia VPN, ad esempio 'ppp0' $ 2 = '0' (non sicuro quale sia questo valore) $ 3 = Il tuo IP VPN $ 4 = Indirizzo IP del gateway pubblico VPN $ 5 = Gateway predefinito normale per Ethernet / Wi
-Fi

4
Cosa succede se ho configurato due o più connessioni VPN? Come faccio a distinguerli in /etc/ppp/ip-upmodo da poter aggiungere i percorsi di conseguenza? Il nome VPN amichevole verrà passato come sesto argomento ( ipparam)?
Kal,

11

Volevo fare una cosa simile. Connetti la VPN e quindi instrada una rete aggiuntiva tramite quella VPN. Ho finito con il seguente bit di Applescript:

-- Connect Work VPN

tell application "System Events"
    tell network preferences
        tell current location
            tell service "Work"
                connect
                tell current configuration
                    repeat until get connected = true
                        delay 1
                    end repeat
                end tell
            end tell
        end tell
    end tell
end tell

set gateway to "192.168.1.1"

do shell script "route add 172.16.0.0/16 " & gateway with administrator privileges

È necessario modificare "Work"il nome della connessione VPN, 192.168.1.1l'indirizzo del gateway e 172.16.0.0/16l'indirizzo della rete a cui si desidera instradare. È possibile aggiungere reti aggiuntive ripetendo la riga finale con indirizzi diversi.


1
(Inoltre, per coloro che si chiedono questo indirizzo IP: proprio come l'interlocutore ha parlato, 172.16.0.0/16 è uno spazio di indirizzi privato proprio come 10.xxx e 192.168.xx Quindi, in realtà, fa parte della VPN, e non un sito Web esterno o altro.)
Arjan,

1
Quindi il 192.168.1.1tuo router è sulla VPN o il router sulla LAN? E non è necessario impostare il percorso predefinito sulla propria LAN?
Jack M.

8

C'è una funzione nascosta nelle Preferenze di rete su MacOS: puoi ordinare le interfacce .

Apri Preferenze di Sistema -> Rete -> Fai clic in gearbasso a sinistra ->Set service Order...

<code> Imposta ordine di servizio ... </code> Ordine VPN

È fondamentale che le interfacce di rete siano ordinate nell'ordine in cui si desidera che vengano utilizzate. Se vuoi che TUTTI i dati non LAN vadano sulla VPN, metti l'interfaccia VPN in alto. Ordina in questo modo

  1. VPN
  2. Ethernet
  3. Aeroporto

Non così:

  1. Aeroporto
  2. Ethernet
  3. VPN

In questo modo, non è necessario controllare le seguenti impostazioni in Session Options:

Invia tutto il traffico tramite la connessione VPN

✅ Testato alla L2TP VPNconnessione


Non credo che questo risponda alla domanda, a meno che l'OP non esegua il backup su Time Machine tramite Ethernet e si colleghi alla vista della rete aziendale Aeroporto (connessione wireless)
Josh Newman,

1
Ho usato il trucco di avvio ppp, ma non ha funzionato fino a quando non ho spostato la mia connessione VPN sotto la connessione wireless. Questa è una risposta valida
Arosboro,

Sarebbe davvero la risposta principale! Grazie mille, sarebbe impossibile capire!
Andre Soares,

1
Questo funziona per le VPN IPSec L2TP, ma NON per le VPN IPSec Cisco. Le VPN Cisco IPSec non sono disponibili nella finestra di dialogo "Imposta ordine di servizio"
goofology

1

Ho cercato online per vedere se riesco a trovare qualcosa e, per quanto posso capire, sembra che tu voglia utilizzare il tuo computer come di consueto, potendo anche collegarmi ai siti Web interni dell'azienda, quindi potresti è necessario impostare una tabella di routing personalizzata.

Apparentemente questo link si applica solo alla 10.4, ma le cose della riga di comando potrebbero ancora funzionare.

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.