Добрый день!
Есть подключение к удаленному офису (cisco) через vpnc. Все работает отлично, но вот в случае обрыва связи vpnc отваливается. Дабы он восстанавливал подключение его нужно этому научить. Нашел на http://ddwrt.ru/wiki/index.php/VPNC скрипт, который щупает удаленный узел, и в случае обрыва связи заставляет vpnc переподключатся.
Код:
#!/bin/sh
vpn_concentrator="xxx.xxx.xxx.xxx"
pingtest1 () {
ping -q -c1 $param1 >> /dev/null
if [ "$?" == "0" ]; then
echo 0
else
echo 1
fi
}
while [ true ]; do
param1=$vpn_concentrator;
if [ "`pingtest1`" == "0" ]; then #Vpn concentrator reachable
doloop=1;
echo "1";
while [ $doloop -gt 0 ]; do
vpn_keepalive_host1="`ifconfig tun0 | grep 172.16.0 | cut -b 7-18`"
param1=$vpn_keepalive_host1;
if [ "`pingtest1`" == "0" ]; then
sleep 300
else
doloop=0;
/usr/local/sbin/vpnc-disconnect
vpnc
sleep 1
if [ "`pingtest1`" != "0" ]; then
sleep 10
fi
tundev="`ifconfig tun0 | grep 172.16.0 | cut -b 7-18`"
iptables -A FORWARD -o $tundev -j ACCEPT
iptables -A FORWARD -i $tundev -j ACCEPT
iptables -t nat -A POSTROUTING -o $tundev -j MASQUERADE
sleep 9
fi
done
else
sleep 10;
fi
done
return 0;
Есть подключение к удаленному офису (cisco) через vpnc. Все работает отлично, но вот в случае обрыва связи vpnc отваливается. Дабы он восстанавливал подключение его нужно этому научить. Нашел на http://ddwrt.ru/wiki/index.php/VPNC скрипт, который щупает удаленный узел, и в случае обрыва связи заставляет vpnc переподключатся.
Код:
#!/bin/sh
vpn_concentrator="xxx.xxx.xxx.xxx"
pingtest1 () {
ping -q -c1 $param1 >> /dev/null
if [ "$?" == "0" ]; then
echo 0
else
echo 1
fi
}
while [ true ]; do
param1=$vpn_concentrator;
if [ "`pingtest1`" == "0" ]; then #Vpn concentrator reachable
doloop=1;
echo "1";
while [ $doloop -gt 0 ]; do
vpn_keepalive_host1="`ifconfig tun0 | grep 172.16.0 | cut -b 7-18`"
param1=$vpn_keepalive_host1;
if [ "`pingtest1`" == "0" ]; then
sleep 300
else
doloop=0;
/usr/local/sbin/vpnc-disconnect
vpnc
sleep 1
if [ "`pingtest1`" != "0" ]; then
sleep 10
fi
tundev="`ifconfig tun0 | grep 172.16.0 | cut -b 7-18`"
iptables -A FORWARD -o $tundev -j ACCEPT
iptables -A FORWARD -i $tundev -j ACCEPT
iptables -t nat -A POSTROUTING -o $tundev -j MASQUERADE
sleep 9
fi
done
else
sleep 10;
fi
done
return 0;