Instrada permanentemente un host su VPN in OS X

4

Ho bisogno di VPN dall'università per ssh al mio computer dell'ufficio. Ma ogni volta che avvio la VPN, devo instradare l'host a ppp0 manualmente per usarlo,

sudo route add lab_computer.foo ppp0

perché il mio precedente tentativo di reindirizzamento è stato perso. E francamente è un dolore. Mi chiedo se sia possibile utilizzare alcuni script per reindirli automaticamente ogni volta che stabilisco la connessione VPN.

PS1. Sto usando OS X. Ma penso che per entrambi i sistemi unix e linux dovrebbero essere simili?

PS2. Non voglio eseguire il routing di tutte le connessioni a VPN in questo modo, la connessione ad altri host verrà rallentata inutilmente.

    
posta Chong 06.07.2014 - 06:32
fonte

1 risposta

8

Puoi inserire una configurazione extra in /etc/ppp/ip-up file, che è descritta in man pppd , e che è un file di script di shell standard che verrà generato quando pppd stabilisce una connessione.

Non uso più la VPN e sfortunatamente sembra che non abbia più una copia del mio file ip-up , ma il modo in cui lo facevo era qualcosa di simile al seguente (devi verificare questo con la pagina man di cui sopra).

Una volta che pppd stabilisce la connessione, chiamerà /etc/ppp/ip-up con i seguenti argomenti:

ip-up interface-name tty-device speed local-IP-address remote-IP-address ipparam

Lo script ip-up potrebbe quindi avere un aspetto simile a:

#!/bin/bash

IFNAME="${1}"
LOCALIP="${4}"
REMOTEIP="${5}"

if [[ "${REMOTEIP}" == "192.0.2.1" ]]; then
  /sbin/route add -host lab_computer.foo -interface "${IFNAME}"
fi

Tieni presente quanto segue:

  1. Suppongo che l'indirizzo IP del gateway VPN a cui ti colleghi è sempre lo stesso e non cambia mai, e nell'esempio sopra sono supponendo che sia l'intervallo di indirizzi 192.0.2.1 ( RFC5737 specificato per l'uso come esempi di documentazione - PER FAVORE CAMBIARLA). Il confronto qui viene utilizzato per aggiungere il percorso solo quando sei connesso tramite VPN a il tuo ufficio e nessuna altra connessione VPN o PPP.
  2. È anche meglio usare un indirizzo IP invece del nome host per il computer a cui si desidera aggiungere una route statica. Invece di usare lab_computer.foo Vorrei utilizzare un indirizzo IP nel comando route .
  3. Sto utilizzando -interface ${IFNAME} anziché hard coding ppp0 , che dovrebbe funzionare anche se hai due VPN connessioni stabilite contemporaneamente (o una VPN e un'altra forma di PPP, ad es. un modem 3G)
risposta data 06.07.2014 - 20:32
fonte

Leggi altre domande sui tag