LINUX.ORG.RU

Вечный VPN.


0

0

Вообщем прошло более полугода с того момента как я таки
заимел выделенку, но...

один гиморный вопрос так и не оставляет меня, а именно,
как поддерживать соединение с VPN сервером постоянным. 

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

killall pptp

то он восстанавливает коннект а если это происходит без 
меня то ничего не выходит.

/********************************************/
#!/bin/bash

while true; do

route add -net 10.0.0.0/8 gw 10.20.0.1 >& /dev/null
route add -net 192.168.0.0/16 gw 10.20.0.1 >& /dev/null
route del default >& /dev/null

pptp vpn.lanport defaultroute nodetach name 00163 >& /dev/null
    
route del default >& /dev/null
ifconfig ppp0 down >& /dev/null
killall pptp >& /dev/null
killall -s KILL pppd >& /dev/null

done

/********************************************/

Прошло уже много времени с тех пор как появился vpn и 
может есть какие то системный тулзы для такой цели, как 
поддержание соединения.

Заранее спасибо!!!
★★★★★

а pptp вроде производное от pppd? тогда оно опции persist и holdoff должно иметь, отсутствие траффика сечь опцией idle

hooj ★★
()

IMHO смотреть надо в направлении lcp-echo и lcp-timeout. Впрочем, могу и ошибаться :-)

no-dashi ★★★★★
()

Поднимать VPN иногда удобнее запуском pppd, а не pptpd
# pppd file /etc/ppp/options.pptp pty "/usr/sbin/pptp ip-адрес-сервера --nolaunchpppd" user ЛОГИН другие_опции_если_нужно 

В этом случае можно применить опции pppd holdoff и perpersist.

Все манипуляции с маршрутами можно поместить в /etc/ppp/ip-up и /etc/ppp/ip-down.

ИМХО это лишнее:
>route del default >& /dev/null
>ifconfig ppp0 down >& /dev/null
когда pppd "умирает" интерфейс ppp0 исчезает и маршруты через него грохаются на автомате. Это было нужно в ядрах 2.0.x.

По поводу опции nodetach демона pppd. Когда pppd получает сигнал SIGTERM он отправляет сигнал SIGTERM всем процессам в своей группе процессов --- это сделано чтобы точно покилять всех потомков. Но в случае с nodetach процесс выполняется в той же группе, что и запустивший его скрипт, если сказть killall pppd, то скрипт тоже получит SIGTERM.

mky ★★★★★
()
Ответ на: комментарий от mky

TO mky:

интересный вариант, надо будет проверить, спасибо.

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