Скрипт для перезапуска VPN соединения при исчезновении пинга

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС.

Модераторы: SLEDopit, Модераторы разделов

dixi
Сообщения: 2

Скрипт для перезапуска VPN соединения при исчезновении пинга

Сообщение dixi »

Есть сервер на RH 9.0 на котором висит VPN соединение. Иногда случается что VPN соединение остается, но трафик по нему перестает ходить. Помогите пожалуйста написать скрипт, который бы данной ситуации перезапускал бы VPN соединение (например при исчезновении пинга до yandex.ru или корневых DNS). Сам бы скрипт я бы подвесил бы в crontab с периодичностью выполнения например 1 час.
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Скрипт для перезапуска VPN соединения при исчезновении пинга

Сообщение rm_ »

На основе чего VPN? У OpenVPN есть встроенные опции для этого, почитайте man.

Если всё же нужно писать скрипт, пригодится команда ping и шелловая связка "||", означающая, что команду после неё нужно выполнять при неуспешности команды перед ней. К примеру,

Код: Выделить всё

ping -c 1 google.com || /etc/init.d/<vpn-служба> restart

У пинга ещё можно покрутить опции -w и -W (см. man), ну и при желании поставить число пакетов побольше, если в сети бывают случайные потери.
Спасибо сказали:
dixi
Сообщения: 2

Re: Скрипт для перезапуска VPN соединения при исчезновении пинга

Сообщение dixi »

rm_ писал(а):
27.08.2008 12:02
На основе чего VPN? У OpenVPN есть встроенные опции для этого, почитайте man.

Если всё же нужно писать скрипт, пригодится команда ping и шелловая связка "||", означающая, что команду после неё нужно выполнять при неуспешности команды перед ней. К примеру,

Код: Выделить всё

ping -c 1 google.com || /etc/init.d/<vpn-служба> restart

У пинга ещё можно покрутить опции -w и -W (см. man), ну и при желании поставить число пакетов побольше, если в сети бывают случайные потери.

Спасибо большое, смысл понятен. А вообще VPN на основе pptpclient и pppd, перезапускаю его командой /etc/rc.d/init.d/pptp-client restart.
Спасибо сказали:
expdot
Сообщения: 176
ОС: Fedora 13, Win Vista

Re: Скрипт для перезапуска VPN соединения при исчезновении пинга

Сообщение expdot »

у меня клинический случай

тоже самое
поднимаю тоннель с помощью pptp-client
иногда провайдер отрубает соединение
есть ли возможность узнать что тоннель исчезает?
фактически пропабает устройство ppp0

как это можно проследить, чтобы предпринять последующие меры?

прошу пинги не предлагать
я верю, что существует более техничный способ
например через системные сообщения
только как это реализовать?

на форумах встречал, что не только меня интересует подобная проблема
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Скрипт для перезапуска VPN соединения при исчезновении пинга

Сообщение KiWi »

expdot писал(а):
28.08.2008 16:12
на форумах встречал, что не только меня интересует подобная проблема

Если соединение именно разрывается, то есть функции автоматического переподключения.
Спасибо сказали:
expdot
Сообщения: 176
ОС: Fedora 13, Win Vista

Re: Скрипт для перезапуска VPN соединения при исчезновении пинга

Сообщение expdot »

эмм.. не нашел такой функции

не могли бы вы подсказать?
Спасибо сказали:
Аватара пользователя
KiWi
Бывший модератор
Сообщения: 2521
Статус: статус, статус, статус

Re: Скрипт для перезапуска VPN соединения при исчезновении пинга

Сообщение KiWi »

expdot писал(а):
28.08.2008 20:34
эмм.. не нашел такой функции

не могли бы вы подсказать?

Как ни странно, она называется persist.
Спасибо сказали:
Аватара пользователя
rm_
Сообщения: 3340
Статус: It's the GNU Age
ОС: Debian

Re: Скрипт для перезапуска VPN соединения при исчезновении пинга

Сообщение rm_ »

фактически пропабает устройство ppp0

как это можно проследить, чтобы предпринять последующие меры?

Например:

Код: Выделить всё

 ifconfig ppp0 > /dev/null 2> /dev/null || echo "Командыръ, что-то пошло нье так!"

Это если почему-либо не удаётся воспользоваться persist, либо если моменты разрыва связи нужно отлавливать, и делать помимо переподключения ещё что-то.
Спасибо сказали:
expdot
Сообщения: 176
ОС: Fedora 13, Win Vista

Re: Скрипт для перезапуска VPN соединения при исчезновении пинга

Сообщение expdot »

спасибо за советы. буду пробовать

я просто думал, что возможно выполняется какой либо скрипт напр ppp_down или подобный
который можно подредактировать под свои нужды или hal(может и не он)) генерирует сист. вызов
который можно каким либо образом перхватить, и т.д.

и что значит эта конструкция?

сначала вывод перенаправляется в никуда, потом 2 туда же?
Спасибо сказали: