Есть VPN сервер, к которому мы подключаемся при помощи РРТР клиента.Есть такая беда.
pptp должен быть включён всегда.
А он периодически помирает. Думаю что из-за таймаута установленого на сервере.
Подскажите как сделать так, что бы соединение было хотя бы не постоянное, ну так хоть само подключалось по новой когда умирает, или когда это требуется.
>Есть VPN сервер, к которому мы подключаемся при помощи РРТР клиента.
>
>Есть такая беда.
>pptp должен быть включён всегда.
>А он периодически помирает. Думаю что из-за таймаута установленого на сервере.
>Подскажите как сделать так, что бы соединение было хотя бы не постоянное,
>ну так хоть само подключалось по новой когда умирает, или когда
>это требуется.зависит от реализации ppp...
>зависит от реализации ppp...
причем тут это???
хотя может и причем-то :-)вот вам скрипт юзайте на здоровье :)))
#Your MUST set this variables
PEER_FILE=""
DOSYSLOGMSG="1"
PAUSE="15"
##
#Optional variables
PPPD_OPTIONS=""
TESTHOST1=""
TESTHOST2=""
TESTHOST3=""
##
##
#Functions
do_connect()
{
pppd call $PEER_FILE $PPPD_OPTIONS
sleep $PAUSE
#Postconnect actions
route add default gw 10.1.1.1
##
if do_test_connect
then
return 0
else
return 1
fi
}
do_kill_connect()
{
killall pppd 2> /dev/null
sleep $PAUSE
}
host_alive()
{
if ping -c 1 -I ppp0 $1 > /dev/null
then
return 0
else
return 1
fi
}
do_test_connect()
{
if host_alive ${TESTHOST1:-google.com}
then
return 0
else
if host_alive ${TESTHOST2:-kernel.org}
then
echo "${TESTHOST1:-google.com} is down"
return 0
else
if host_alive ${TESTHOST3:-ya.ru}
then
echo "${TESTHOST1:-google.com} and ${TESTHOST2:-kernel.org} are down"
return 0
else
return 1
fi
fi
fi
}
do_logger_test()
{
if [ -f /usr/bin/logger ]
then
return 0
else
echo "I can't find /usr/bin/logger . This is part of sys-apps/util-linux... If you want have report in syslog, please install it."
return 1
fi
}
##
#Body
if do_test_connect
then
# echo "connected"
exit 0
else
# echo "connect not detected"
do_kill_connect
if do_connect
then
exit 0
else
echo "`date` : Connection lost. I\'m CAN\'T connecting."
[ "$DOSYSLOGMSG" = "1" ] && do_logger_test && logger "`basename $0` Connection lost, can't reconnect."
exit 1
fi
fi
##
#EOFдолжно работать!!!
нравится?
Не знаю как в BSD, но ppp в linux сам умеет "поднимать" соединение./etc/ppp/peers/provider:
pty "pptp 1.2.3.4 --nolaunchpppd"
name CHAP_PAP_LOGIN_NAME # Логин/пароль в pap-secrets/chap-secrets
remotename provider
linkname provider
file /etc/ppp/options.pptp
ipparam provider
persist
maxfail 0
holdoff 30Запускаем:
pppd call provider
Да jonatan ты полностью прав!и еще можно запустить через /etc/inittab
тогда при падении соединение само восстановится!зато скрипт с тобой может говорить :-)
и если рассмотреть такой вариант:
соединение есть но не работает (и-нета нету) тогда как?
Если нет Инета, то никакие скрипты тут не помогут. Причину все равно будет определять админ :)
>Если нет Инета, то никакие скрипты тут не помогут. Причину все равно
>будет определять админ :)
я имел ввиду глюк ВПН-а
бывает такое что переконнектился и все ОК
правда очень-очень редко :-)