LINUX.ORG.RU
ФорумAdmin

Отваливается соединение pptp


0

0

Debian, сижу в районой сети, доступ в интернет через vpn.

вот скрипт подключения:

/etc/init.d/pptp-vpn.sh 
#!/bin/sh
 
USER="user"
NETWORK=111.111.111.0
NETMASK=255.255.255.0
VPNSERVER=172.17.7.11
VPN_NET=172.16.0.0
VPN_NET_MASK=255.255.0.0
GATEWAY=111.111.111.1
DEVICE=eth0
DEVICE_VPN=ppp0
 
#
# vpn stuff
#
PPPD=/usr/sbin/pppd
PPTP=/usr/sbin/pptp
 
if [ ! -x $PPPD ]; then
 echo "$0: $PPPD not found"
 exit 1
fi
 
if [ ! -x $PPTP ]; then
 echo "$0: $PPTP not found"
 exit 1
fi
case "$1" in
 start)
 if [ ! -d /var/run/pptp ]; then
 mkdir /var/run/pptp
 fi
 if [ -f /var/run/pptp/remote ]; then
 if ping -vc1 'cat /var/run/pptp/remote'; then
 exit 1
 fi
 killall -HUP pptp
 killall -TERM pppd
 sleep 2
 fi
 rm -rf /var/run/pptp/* >/dev/null
 route del default
 route add -net $VPN_NET netmask $VPN_NET_MASK gw $GATEWAY
 echo -n "===> Starting vpn: "
 ($PPTP $VPNSERVER defaultroute noauth user $USER && \
 echo -n "done") || echo -n "failed"
sleep 5
 (route delete -host $VPNSERVER && \
 echo "wrong route delete") || echo "error delete wrong route"
 echo
 ;;
 stop)
 echo -n "===> Stopping vpn: "
 killall -HUP pptp
 killall -TERM pppd
 sleep 2
 rm /var/run/pptp/* >/dev/null
 route add default gw $GATEWAY
 echo "done"
 ;;
 restart)
 $0 stop
 sleep 2
 $0 start
 ;;
 *)
 echo "*** Usage: vpn {start|stop|restart}"
 exit 1
 ;;
esac
 
exit 0

иногда соединение рвется, интерфейс ppp0 пропадает и полный абзац.

так вот, я пробовал изменять в скрипте строку подключения на
($PPTP $VPNSERVER defaultroute persist maxfail 0 noauth user $USER
в результате получилось, что интерфейс остается ppp0, но не работает.

как сделать так, чтобы соединение само переподключалось при падении?
anonymous

у меня скрипт на перле, который форкается на два процесса. Первый процесс пингует раз в 5-10-15-20(по желанию) секунд единоразовым пингом какойлибо удаленный хост. Если пинг не проходит, по пингует еще три раза. Если три раза пинг не проходит, то шлется команда во второй процесс, в котором запускается соединение, которая убивает старое соединение и включает его заново.

vilfred ☆☆
()

Просто засуньте вызов pppd в /etc/inittab и после падения init сам его поднимет.

qwe ★★★
()

А да, и посмотрите man pppd на предмет lcp-echo-interval и lcp-echo-failure.

qwe ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.