====== Uno script per risolvere i conflitti di routing con openvpn ====== Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **//02/05/2010//** \\ \\ Puo' capitare di avere una rete locale di classe C 192.168.1.0/24 (o con altri indirizzi ip) e dover raggiungere un' altra rete analoga tramite openvpn. Openvpn potrebbe inviare le rotte anche per la rete remota con un comando simile ''/sbin/route add -net 192.168.1.0 netmask 255.255.255.0 gw 10.8.0.9'' a questo punto il nostro SO avra' sicuramente dei problemi a trovare il gateway predefinito creando problemi alla nostra rete locale. \\ Lo script seguente non fa altro che avviare openvpn, cancellare le rotte inviate per la rete 192.168.1.0/24 (da modificare se necessario in base alle esigenze) e rimetterle di nuovo tutte escludendo 192.168.1.1 . **Avviare la vpn ** ersuvpn start **Terminare la vpn ** ersuvpn stop PS รจ senz'altro comodo copiare lo script in ''/usr/local/bin/'' in modo tale da non cercarlo ogni volta che si deve avviare la vpn. **ersuvpn** #!/bin/sh DEVICE=tun0 DIRSCRIPT=/home/fabio/Vpns/ersu/ NET=192.168.1.0/24 NETPREFIX=192.168.1. OPENVPNCONF=$DIRSCRIPT/openvpn.conf PIDFILE=$DIRSCRIPT/openvpn.pid if [ "$1" = "start" ];then echo "Inserire password utente sudo:" cd $DIRSCRIPT sudo openvpn --daemon --config $OPENVPNCONF --writepid $PIDFILE if [ -f $PIDFILE ] ; then sleep 10 sudo ip route del $NET dev $DEVICE for i in `seq 2 254`; do sudo ip route add $NETPREFIX$i dev $DEVICE done echo ; echo "Vpn avviata correttamente." else echo; echo "Impossibile avviare la vpn." fi fi if [ "$1" = "stop" ];then sudo ip route flush dev $DEVICE sudo kill -9 `cat $PIDFILE` rm -f $PIDFILE echo; echo "Vpn terminata." fi P.S. Qualora non fosse gia' attivato e' necessario attivare sudo per l'utente che lancera' lo script.