Newsgroup: it.comp.os.linux.iniziare
Titolo: Ancora sulle vpn: pptp e routing

Sto tentando di stabilire una vpn con un servizio online che d�
questa possibilit�. Si chiama itshidden.
Da quanto ho capito � richiesto di utilizzare il point to point
tunneling protocol e su linux questo equivale ad impostare pptp.
Niente di fantasmagorico, tant'� che sono riuscito a collegarmi
col servizio remoto. Ma ho qualche dubbio e sopratutto non sono
ancora riuscito ad impostare in modo corretto e funzionante il
routing in modo da tunnelizzare il traffico internet.
Iniziamo coi dubbi.
Dunque, la mia connessione fisicamente avviene via cellulare. Si
tratta di una connessione dialup via ppp. Ho da sempre usato il
comando "pppd call $script" per collegarmi ad internet ottenendo
un'interfaccia ppp0.
Con questo tunnel pptp vedo che vine creata una nuova interfaccia
ppp1 e questo mi crea dei dubbi circa la esecuzione dello script
ip-up.
Tale script infatti /etc/ppp/ip-up verrebbe eseguito una volta in
piedi l'interfaccia pppN.
Il punto � che questo script � stato modificato avendo in mente
la connessione a ppp0 (cio� il collegamento ad internet). Ora che
c'� anche ppp1, questo script potrebbe eseguire pi� volte comandi
non necessari, o fare pasticci.
Come si f� prescongiurare questo problema?
Esiste il modo di specificare diversi script "ip-up" per ognuna
delle differenti connessioni pppN concorenti?
Spero d�essermi spiegato...
Prima di passare alla questione del routing preferirei togliermi
questo dubbio, grazie in anticipo.

 non necessari, o fare pasticci.
Forse c'è qualche varibile/opzione/ecc. che faccia sapere allo script che
device è in uso e quindi lo script può decidere che operazioni fare.

 device � in uso e quindi lo script pu� decidere che operazioni fare.
Intendi per esempio includere tutte le operazioni relative ad una
certa interfaccia in un "if" all'interno dello script ip-up per esempio?
------------------------------------
if [ "$interfaccia" = "ppp0" ]; then
  [..]
  [..]
fi
---
Per� in questo modo potrebbe non essere il massimo della vita in
quanto se ci fossero 3 interfacce ppp?
Ok la prima � quella della connessione ad internet, quindi a ppp0
corrisponderanno univocamente le operazioni corrispondenti
all'attivazione della connessione ad internet.
Ma le eventuali altre due restanti, cio� ppp1 e ppp2 non sono
univocamente identificabili.
Per esempio mettiamo di avere due vpn pptp chiamate pippo e
pluto:
se avvio prima pippo: pppd call pippo, verr� associata a questo
l'interfaccia ppp1
E se in seguito avviassi pluto: pppd call pluto verrebbe
associata l'interfaccia ppp2.
Ma nulla mi vieterebbe di avviarle in un'altro ordine, per cui se
per device, intendevi l'interfaccia pppN direi che in generale
non andrebbe bene utilizzarlo come discriminante all'interno
dello script ip-up... Almeno nel modo che l'ho immaginato io.
Non ti pare?
Sarebbe utile un'opzione da usare nello script richiamato da pppd
(per capirci /etc/ppp/peers/pippo e /etc/ppp/peers/pluto) con cui
specificare un cero script da eseguire all'avvio, qualcosa come:
up_script /etc/ppp/ip-up.pippo
Il fatto � che dal man di pppd non ho trovato un corrispondente
dell'opzione "up_script"

 all'attivazione della connessione ad internet.
Dopo aver messo mano al solito ppp-howto...
La strada sopra "azzardata" va nella giusta direzione.
Per� il discriminante dei vari costrutti condizionali non
dovrebbe essere il device, perch� in generale potremmo avere
impostate pi� vpn via pptp e non saremmo in grado di capire
univocamente di quale si tratti solo sulla base del nome
dell'interfaccia:
se siamo sicuri che a ppp0 corrisponda la connessione dial-up
per foza di cose (che poi potremmo anche averne pi� di una con
diverse operazioni necessarie), non � assolutamente detto che a
ppp1 corrisponda la vpn "pippo" o la vpn "pluto", sappiamo
solo che a ppp1 corrisponder� la seconda connessione ppp
instaurata.
Per� pppd nel suo script supporta l'opzione ipparam, con cui
possiamo "etichettare" una certa connessione chiamandola pippo
pluto ecc in modo da identificarla con lo script ip-up.
Infatti lo script ip-up viene richiamato con i parametri da $1 a
$6. Il ppp-howto dice:
#  $1      il nome dell'interfaccia usata da pppd (p.e. ppp3)
#  $2      il nome del dispositivo tty
#  $3      la velocit� del dispositivo tty
#  $4      l'indirizzo IP locale per l'interfaccia
#  $5      l'indirizzo IP remoto
#  $6      il parametro specificato dall'opzione 'ipparam' di pppd
cos� potremmo scrivere ip-up strutturando un costrutto "case" sul
discriminante che preferiamo, nel mio caso direi $6.
------------
case "$6" in
  internet_isp1)
    operazioni necessarie
	 avviata la connessione
	 ad internet con l'isp
	 $isp1
	 ;;
  vpn_pippo)
    operazioni
	 necessarie
	 per la vpn "pippo"
	 ;;
  vpn_pluto)
    ecc
	 ecc
esac
exit 0
------
Ovviamente lo script di pppd corrispondente alla vpn pippo
/etc/ppp/peers/pippo dovrebbe contenere:
ipparam vpn_pippo
Ok direi cos� che la questione ip-up con pi� di una connessione
ppp simultanea � risolta.
Resta per� il discorso del routing che non mi riesce...