Wi-CAT LLC

Wireless Comprehensive Advanced Technology. Build your network now.

Wi-CAT LLC
Навигация Форума
Вы должны войти, чтобы создавать сообщения и темы.

(rwfs, решено) Cron перезапуск VPN по расписанию.

Интересует возможность через скрипты прошивки отключать WAN соединение с провом. Провайдер сам не рвёт PPPoE сесию неделями, из-за этого, а также его ремонтных работ по ночам часто с утра интернет не работает - соединение есть, но пакеты до адресата не доходят.

Хочу настроить автоматический разрыв/подключение WAN/VPN по cron-у, как это было на предыдущем роутере и забыть о "проблеме".

PS. Немного копался в скриптах и хочу уточнить, как будет "правильнее" для прерывания PPPoE  через cron, с учётом того, что следующей командой по крону через пять минут будет перезагрузка (reboot):

killall -q /etc/scripts/config-pppoe.sh или /etc/init.d/vpnhelper stop

Похоже всё таки вторая команда правильная - /etc/init.d/vpnhelper stop

Правда через командную строку ещё и локальную сетку "ложит", приходится перелогиниваться, чтоб результат посмотреть.

Теперь остался ещё один вопрос: если напрямую остановить vpnhelper кроном логика прошивки не перезапустит его автоматом по таймауту или ещё по чему?

Не надо никаких килов руками. Если вопрос только в рестарте VPN тупо кличем service vpnhelper restart.

Если хочется прям вот всю сетевую часть перестроить, то зовём на помощь internet.sh без параметров.

Можно и просто WAN портом моргнуть вызвав config-vlan.sh $switchmode WWWWW не забыв указать правильный режим свитча.

Как бы вариантов масса.

Кстати у прова DHCP нет, только голый PPPOE ? Я к тому что логика которая по lease fail мыргает портом уже есть и включается в misc. Запросто может и её хватить для решения проблемы (смотря какое время аренды пров выдаёт).

Цитата: RoxsAndy от 10/09/2018, 17:46

Правда через командную строку ещё и локальную сетку "ложит", приходится перелогиниваться, чтоб результат посмотреть.

Контрак сбрасывается при остановке туннелей воизбежание петли, потому кратковременно может отшибать.

Теперь остался ещё один вопрос: если напрямую остановить vpnhelper кроном логика прошивки не перезапустит его автоматом по таймауту или ещё по чему?

VPN стартует или пинком из dhcp клиента, или по apply в  роже или тупо линейно инитом при загрузке. Больше никто его не дёргает.

Опять таки если нужно тупо рестартануть pppoe то достаточно просто вызвать service vpnhelper restart.

Ксати PPPD вроде умеет перезванивать по какому-то сигналу. Т.е. вообще можно без рестарта сервисов обойтись. Вот только не помню по какому, надо сырцы pppd смотреть.

Мне надо для надёжности не только потушить pppoe, но и выждать некоторое время, иначе пров новый айпишник на PPPoE не выдаст, а если просто рестартануть сервис, то айпишник остаётся "прилипшим" старым и все потуги зря. У прова статика на WAN и в глобалку PPPoE (адреса по DHCP из диапазона прова).

Пока вписал в crontab вот так:

00 06 * * * /etc/init.d/vpnhelper stop
05 06 * * * reboot

Понаблюдаю пару дней. Ребут конечно это лишнее, потом переправлю на переподключение.

 

Ооочень странный пров. Т.е. получается что надо потушить, дождаться пока кто-то эту сессию pppoe  с этим ID подхватит потом перезванивать? Оооррригинально.

Если статика то можно смело остановить vpn и стартануть на родину просто stop/start с нужным интервалом. Ребут тут точно лишний.

Из провов это  один из самых надёжных, а поведение его PPPoE сервиса да - странное. Иногда на порту в личном кабинете можно увидеть вместо одного адреса целых два-три "залипших" после "авральных" ребутов. Поэтому чтоб этого не было приходится выкручиваться на клиентском оборудовании своими силами. :)

Да уж, повезло. Если это надёжность то я зря тапками своего закидываю. =))

Ладно не суть.

Всё же переделал конфиг, окончательный вариант выглядит так:

SHELL=/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/etc/scripts
MAILTO=root
HOME=/

# run-parts
* */2 * * * echo > /var/log/cron.log
# Тушим в 6-00 соединение VPN и в 6-10 рестартуем
00 06 * * * service vpnhelper stop
10 06 * * * service vpnhelper restart

Может кому ещё сгодиться. Надеюсь что отработает все как надо. Если что - отпишусь.

Вместо старт лучше использовать рестарт, а то вдруг в этот таймаут приспичет в роже что-то поменять и туннель уже будет поднят, а оно ему ещё раз прилетит. =) Рестарт гарантирует что оно будет опущено и поднято или просто поднято в зависимости от текущего состояния.

Просто перестраховка.

Ок, поправил.

В принципе, "проблема" решена. По крону переподключение отрабатывает как и положенно.

Тему можно закрывать.

Ок.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: