Corbina vs Arch Помогите настроить VPN

bobart
#!/bin/sh
ping -c 4 -w 10 tp.corbina.net > /dev/null || /etc/rc.d/network restart &&  
ping -c4 8.8.8.8 &> /dev/null
if [ ! $? -eq 0 ]
then
  /etc/rc.d/xl2tpd restart
fi
exit 0
Я бы сделал лучше так:
if [ $? -eq 0 ]; then
    exit 0
else
    /etc/rc.d/xl2tpd restart
fi
Спасибо, подкрутил.., последняя версия, на данном этапе (монстрам баша: спокойно, отнеситесь с юмором:)
#!/bin/sh
TCNFILE=~/.logs/conncheck.corbina.log
INETFILE=~/.logs/conncheck.internet.log
ping -c 4 -w 10 tp.corbina.net & > /dev/null || /etc/rc.d/network restart &&  
ping -c4 www.google.com &&
if [ $? -eq 0 ];then
echo "[`date`] [TP.CORBINA.NET] available, [GOOGLE.RU] available" > $TCNFILE  
   exit 0
else
echo "[`date`] [GOOGLE.RU] not available, try again (after NETWORK daemon restart)" > $INETFILE
   /etc/rc.d/xl2tpd restart
fi
exit 0
ps. PoZiTPoN, ты понял, я твой “суперскрипт” немного почикал, точнее, взял из него, вставил в “свой”, вобщем, кручу-верчу…, да, теперь при запуске вижу вывод, что и хотел:
bob@arch:~$ sh ~/.cron.daily/conncheck.sh
PING www.l.google.com (74.125.232.50) 56(84) bytes of data.
PING tp.corbina.net (83.102.254.223) 56(84) bytes of data.
64 bytes from vpnX-l0.spb.corbina.net (83.102.254.223): icmp_seq=1 ttl=250 time=0.805 ms
64 bytes from 74.125.232.50: icmp_seq=1 ttl=53 time=63.1 ms
64 bytes from vpnX-l0.spb.corbina.net (83.102.254.223): icmp_seq=2 ttl=250 time=0.832 ms
64 bytes from 74.125.232.50: icmp_seq=2 ttl=53 time=62.4 ms
64 bytes from vpnX-l0.spb.corbina.net (83.102.254.223): icmp_seq=3 ttl=250 time=0.834 ms
64 bytes from 74.125.232.50: icmp_seq=3 ttl=53 time=60.3 ms
64 bytes from vpnX-l0.spb.corbina.net (83.102.254.223): icmp_seq=4 ttl=250 time=1.20 ms
--- tp.corbina.net ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 0.805/0.919/1.205/0.165 ms
64 bytes from 74.125.232.50: icmp_seq=4 ttl=53 time=62.6 ms
--- www.l.google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 60.363/62.168/63.181/1.090 ms
bob@arch:~$ 
При этом не понятно, отчего вывод пинга по корбине полный, а по гуглу лишь статистика. И ещё это, www.l.google.com - что за l? Всё, дошло, www - не нужен.
Да, лог как-то трётся, то есть автоматом переписывается, там всегда одна строка - отчёт о последнем выполнении, это так задумано?

А если просто сделать ping -c 4 -w 10 tp.corbina.net, то
bob@arch:~$ ping -c 4 -w 10 tp.corbina.net
PING tp.corbina.net (83.102.254.223) 56(84) bytes of data.
64 bytes from vpnX-l0.spb.corbina.net (83.102.254.223): icmp_seq=1 ttl=250 time=0.999 ms
64 bytes from vpnX-l0.spb.corbina.net (83.102.254.223): icmp_seq=2 ttl=250 time=1.23 ms
64 bytes from vpnX-l0.spb.corbina.net (83.102.254.223): icmp_seq=3 ttl=250 time=1.74 ms
64 bytes from vpnX-l0.spb.corbina.net (83.102.254.223): icmp_seq=4 ttl=250 time=1.58 ms
--- tp.corbina.net ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 0.999/1.391/1.749/0.295 ms
остаётся только понять - почему.
Чтобы лог не терся - замени “>” на “>>”
“перезапись” и “добавление”? Что-то типа.. Спасибо. Скоро научусь 2+2 в уме складывать и стану виртуозом.
Пару дней можно последить, что там с сетью творится для общей картины, а там можно и тереть.
#!/bin/sh
INETFILE=~/.conncheck.corbina.log
ping -c 4 -w 10 tp.corbina.net &> /dev/null || /etc/rc.d/network restart &&  
ping -c4 google.com &> /dev/null
if [ $? -eq 0 ];then
   echo "[`date`] [TP.CORBINA.NET] available, [GOOGLE.RU] available" >> $INETFILE  
   exit 0
else
   echo "[`date`] [GOOGLE.RU] not available, try again (after NETWORK daemon restart)" >> $INETFILE
   /etc/rc.d/xl2tpd restart
   sleep 10
   ping -c4 google.com &> /dev/null
   if [ $? -eq 0 ];then
       echo "[`date`] [TP.CORBINA.NET] available, [GOOGLE.RU] available" >> $INETFILE
       exit 0
   else
       echo "[`date`] [TP.CORBINA.NET] not available, [GOOGLE.RU] not available, try letter" >> $INETFILE
       exit 0
   fi
fi
Господа !
А никто не делал pkgbuild для http://code.google.com/p/vpnpptp/
Сильно бы помог по идее с Beeline-Corbina
bobart
Благодарю за скрипт.
#!/bin/sh
INETFILE=~/.conncheck.corbina.log
ping -c 4 -w 10 tp.corbina.net &> /dev/null || /etc/rc.d/network restart && 
ping -c4 google.com &> /dev/null
if [ $? -eq 0 ];then
   echo "[`date`] [TP.CORBINA.NET] available, [GOOGLE.RU] available" >> $INETFILE 
   exit 0
else
   echo "[`date`] [GOOGLE.RU] not available, try again (after NETWORK daemon restart)" >> $INETFILE
   /etc/rc.d/openl2tp stop
   sleep 4
   /etc/rc.d/openl2tp stop
   sleep 1
   /etc/rc.d/openl2tp start
   sleep 15
   /etc/rc.d/udpxy restart
   sleep 1
   ping -c4 google.com &> /dev/null
   if [ $? -eq 0 ];then
       echo "[`date`] [TP.CORBINA.NET] available, [GOOGLE.RU] available" >> $INETFILE
       exit 0
   else
       echo "[`date`] [TP.CORBINA.NET] not available, [GOOGLE.RU] not available, try letter" >> $INETFILE
       exit 0
   fi
fi
На данный момент наблюдаю следующую картину, если openl2tp отваливается то восстановить соединение не представляется возможным некоторое время, похоже на проблему провайдера (у меня билайно-корбина), приходиться поднимать vpn сессию. Можете ли вы помочь корректно добавить в приведенное выше нечто вроде - если после переподнятия openl2tp и ожидания в 15 секунд соединения всё еще нет то sudo pon provider. ? Потому что получается так: он пингует хост, ответа нет, перезапускает всю сеть, перезапускает демон openl2tpd и умолкает на этом, а соединения по прежнему нет, т.е дальнейших попыток не следует.
PoZiTPoH'а благодарите, скорее.
Подолью масла в огонь, не удержусь. Корбина, вообще - головная боль. Появилась возможность и я переключился к другому провайдеру, вот так. Сижу с IP-static и в ус не дую, без этих vpn'ов и прочей лабуды. Так что, если есть возможность …

По делу: почему не используете xl2tpd?
Ладно.
Не понял, почему в скрипте дважды openl2tp stop через sleep 4?
Почему просто не
#!/bin/sh
INETFILE=~/.conncheck.corbina.log
ping -c 4 -w 10 tp.corbina.net &> /dev/null || /etc/rc.d/network restart &&  
ping -c 4 google.com &> /dev/null
if [ $? -eq 0 ];then
   echo "[`date`] [TP.CORBINA.NET] available, [GOOGLE.RU] available" >> $INETFILE  
   exit 0
else
   echo "[`date`] [GOOGLE.RU] not available, try again (after NETWORK daemon restart)" >> $INETFILE
   /etc/rc.d/openl2tp stop
   sleep 1
   /etc/rc.d/openl2tp start
   sleep 30
   ping -c 4 google.com &> /dev/null
   if [ $? -eq 0 ];then
       echo "[`date`] [TP.CORBINA.NET] available, [GOOGLE.RU] available" >> $INETFILE
       exit 0
   else
       echo "[`date`] [TP.CORBINA.NET] not available, [GOOGLE.RU] not available, try letter" >> $INETFILE
       exit 0
   fi
fi
/etc/rc.d/udpxy - это кто такой?
Просто с корбиной всё запущено, то ppp0 отвалится, а tp.corbina.net при этом пингуется, то dns-сервера перестают отвечать и не пингуется tp.corbina.net - и тогда только сеть рестартить и остаётся.
Вообще, ставьте xl2tpd - выше всё описано, и вроде должно быть понятно. Кстати, после того как я прописал маршруты в /etc/rc.conf (выше в теме всё это есть), ppp0 стал подниматься быстрее и как-то стабильнее, чтоли.., или мне так показалось? Вобщем, для меня это уже не актуально.

ps. По скрипту: надо постоянно практиковать, а так, от случая к случаю, забывается. Может-быть, PoZiTPoH что подскажет.
bobart
PoZiTPoH что подскажет.
:D стоит только написать один сложный скрипт и пару-тройку раз помочь, как о ABSG забывают :D
По делу: почему не используете xl2tpd?
Ладно.
Не понял, почему в скрипте дважды openl2tp stop через sleep 4?
Почему просто не
bobart
Всё просто, xl2tpd не завелся сразу после изменений со стороны провайдера, хотя всё делалось как всегда. Потом спустя какое то был настроен openl2td, скорость выше, все работает терпимо. Udpxy это замена igmproxy по сути, работает иначе, но смысл тот же - прием и раздача IPTV в локальную сеть.
Эти sleep потому что оно не выгружается как надо, иногда нужно сделать повторный stop.
Возможности? Перейти на что еще? - сколько угодно в моем регионе, но пока работает, будут еще проблемы можно будет подумать и потом не думаю что при переходе не возникнет других проблем на другом провайдере(у другого провайдера).
Не похоже на то чтобы PoZiTPoH горел желанием помочь, вы долго правили скрипт и поэтому была надежда что смогли бы немного допилить его.
А /etc/rc.d/openl2tp restart - так работает?
Вообще, перечитайте всю тему, с первой страницы, прочувствуйте, проникнитесь..
Там и про IPTV есть. Не понимаю пока, как это “xl2tpd не завелся сразу после изменений со стороны провайдера” - что они там ещё придумали? Как я понимаю, настройки стандартные для всех, различаются только dns-сервера и районные (дефолтные) шлюзы.
Отмотайте пару, или страницу назад: там рабочий конфиг для xl2tpd, плюс в начале темы h4tr3d дал совет насчёт метрик, можете воспользоваться.
Но это к нашему скрипту непосредственного отношения не имеет, понятно.
Повторяю, openl2td я не настраивал (в чём разница?), провайдер сейчас другой, так что играю втёмную и касательно скрипта: свою голову тоже подключайте, все команды вам известны, экспериментируйте.
На пальцах: скрипт-то, по-любому, в кроне, запустилось-не запустилось - он будет каждые 5 минут тупо долбиться к корбине. Обратите внимание, sleep можно увеличить, или сколько ему там надо отсыпаться, чтобы приконнектиться, полчаса?
Последнее вообще не понял: вы хотите, если не поднялся ppp0 по l2tp, просто автоматом перепрыгивать на vpn? Как-бы “pon provider” намекает.

ps. PoZiTPoH - злой следователь, bobart - добрый. Шутка.
 
Зарегистрироваться или войдите чтобы оставить сообщение.