URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 46940
[ Назад ]

Исходное сообщение
"Скрипт для VPN..."

Отправлено terri , 07-Авг-04 14:37 
Нужно написать скрипт, который следил бы за состоянием коннекта VPN (ppp0) и в случае его падения автоматически поднимал его ...
Причем наличие по ifconfig тунеля ppp0 не означает, что работает VPN, т.е бывают случаи когда он у прова падает, но ppp0 остается висеть ...
VPN запускается одним файлом, в котором все прописанно, понятно что нужно зделать killall pptp и start vpn, но как проследить есть ли коннект и все это оформить в скрипт.
Если кто делал такое, подскажите или ткните где почитать.
Slackware 10.0
pptp_client
ppp

Содержание

Сообщения в этом обсуждении
"Скрипт для VPN..."
Отправлено вася , 08-Авг-04 05:10 
>Нужно написать скрипт, который следил бы за состоянием коннекта VPN (ppp0) и
>в случае его падения автоматически поднимал его ...
>Причем наличие по ifconfig тунеля ppp0 не означает, что работает VPN, т.е
>бывают случаи когда он у прова падает, но ppp0 остается висеть
>...
>VPN запускается одним файлом, в котором все прописанно, понятно что нужно зделать
>killall pptp и start vpn, но как проследить есть ли коннект
>и все это оформить в скрипт.
>Если кто делал такое, подскажите или ткните где почитать.
>Slackware 10.0
>pptp_client
>ppp

зависшая сессия провавайдера, насколько я понимаю...
мне кажется, что если тунель есть, то проверить иначе, чем установлением соединения по этому тунелю низя. Я бы периодически, для проверки, пинговал что нить, например DNS-сервер провайдера.


"Скрипт для VPN..."
Отправлено terri , 08-Авг-04 10:52 
Да правильно понимаете...
Ваша мысль понятна, но только при зависании сессии - DNS может спокойно пинговаться...(проверенно)Пров у нас такой ..%)))
Тогда уж тупо ping www.ru.ru делать, т.е. проверять ходят ли пакеты в мир - если не ходят то killall pptp и start vpn, а если ходят, то все ОК.
Но тут вопрос, постоянный пинг сети, не вызовет ли лишней нагрузки на тунель ?
И как всетаки это в скрипт оформить ?



"Скрипт для VPN..."
Отправлено Gennadi , 08-Авг-04 15:14 
>Да правильно понимаете...
>Ваша мысль понятна, но только при зависании сессии - DNS может спокойно
>пинговаться...(проверенно)Пров у нас такой ..%)))
>Тогда уж тупо ping www.ru.ru делать, т.е. проверять ходят ли пакеты в
>мир - если не ходят то killall pptp и start vpn,
>а если ходят, то все ОК.
>Но тут вопрос, постоянный пинг сети, не вызовет ли лишней нагрузки на
>тунель ?
>И как всетаки это в скрипт оформить ?


Например так:

===============================================================================
#! /bin/bash
ping www.t-online.de | ping www.t-online.de | ping www.t-online.de |

res=`ping www.t-online.de -c 1 -q -W 2 -w 2 | grep '1 packets transmitted, 1 received, 0% packet loss' | wc -l`
#echo ">>> $res"
if [ "$res" -eq "1" ]
then echo OK
else  /etc/init.d/ipsec restart
fi
===============================================================================

В crontab запиши это :

-*/2 * * * *    root    /usr/sbin/testconnect.sh >/dev/null 2>&1

У меня VPN работает на FreeS/WAN

или /etc/init.d/network restart

Подкорректируй как тебе надо....


"Скрипт для VPN..."
Отправлено INM , 08-Авг-04 18:33 
А как насчет скриптов ip-up, ip-down?
# man pppd

"Скрипт для VPN..."
Отправлено _KAV_ , 09-Авг-04 13:22 
>>И как всетаки это в скрипт оформить ?
>
>
>Например так:
>
Еще проще - утилита fping возвращает 0 при удачном пинге и не 0 в других случаях... там можно неплохой разбор сделать



"Скрипт для VPN..."
Отправлено hatta , 09-Авг-04 16:50 
>Тогда уж тупо ping www.ru.ru делать, т.е. проверять ходят ли пакеты в
>мир - если не ходят то killall pptp и start vpn,
>а если ходят, то все ОК.
я думаю, роутер надо пинговать, другой конец pptp-линии...