Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Рестарт xl2tpd, скрипты  (Прочитано 3181 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Cewrio

  • Автор темы
  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
Рестарт xl2tpd, скрипты
« : 20 Января 2013, 21:43:33 »
Не очень мне понравилось, что ppp0 при включении сервера поднимается не всегда. Последствия разрывов тоже представляются не очень то хорошими.
На сколько я понял, для решения проблемы нужен скрипт, который будет пинать xl2tpd в случае, когда тот повиснет мертвым грузом.
На просторах интернета был найден следующий вариант:
Цитировать
#!/usr/bin/perl -w
use File::Copy;
use Net::Ping;
use POSIX ();
my $date = POSIX::strftime('%y.%m.%d  %H.%M.%S', localtime);
my $pidfile = "/var/run/xl2tpd.pid";
my $log = "/var/log/ping.log";
my $size = (-s $log);
my $max = "1024";
open (FH1, ">> $log");
my $ip = '8.8.8.8';
my $p = Net::Ping->new( "icmp", 5, 64 );
if ( $p->ping($ip) ) {
} else {
   if( -e($pidfile) && -T _)
   {
   system   (`/etc/init.d/xl2tpd restart`);
      print FH1 "$date ping NO L2TP restart", "\n";
   }
   else
   {
   system   (`/etc/init.d/xl2tpd start`);
      print FH1 "$date ping NO L2TP start", "\n";
   }
}
close (FH1);
Может быть есть и лучше - не знаю, предложите другие.
А пока этот отправился в nano /etc/init.d/check-inet
Получил права на выполнение chmod +x /etc/init.d/check-inet
И его адрес был записан мною в nano /etc/rc.local
/etc/init.d/check-inet перед строчкой exit 0

Но на сколько я понял, /etc/rc.local одноразово выполнит скрипт при загрузке системы. Хотел бы непрерывный ход проверки, пускай интернет поднимается сам, что бы ни случилось.
Cron раз в минуту выполнит - не чаще? Ожидать после разрыва столько - не то хотелось бы.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Рестарт xl2tpd, скрипты
« Ответ #1 : 21 Января 2013, 00:13:51 »
Вообще то для этого есть cron.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Self-Perfection

  • Активист
  • *
  • Сообщений: 331
  • Arch linux, KDE
    • Просмотр профиля
Re: Рестарт xl2tpd, скрипты
« Ответ #2 : 21 Января 2013, 00:33:56 »
А как же ключи redial = yes и autodial = yes в xl2tpd.conf?
Читайте документацию, наставницу вашу!
Памятка по описанию проблем:
Для решения [такой-то задачи] делаю [такие-то действия], но вместо [ожидаемый результат] получаю [описание отличий].

Оффлайн Cewrio

  • Автор темы
  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
Re: Рестарт xl2tpd, скрипты
« Ответ #3 : 21 Января 2013, 09:19:59 »
Эти опции не помогают. И не списывайте ни на что, после /etc/init.d/xl2tpd restart сразу поднимается. Но руками это делать каждый раз не вариант.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Рестарт xl2tpd, скрипты
« Ответ #4 : 21 Января 2013, 09:39:22 »
Cewrio, так, может, надо выяснить, почему не помогают?... не вечно же на костылях ходить?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Cewrio

  • Автор темы
  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
Re: Рестарт xl2tpd, скрипты
« Ответ #5 : 21 Января 2013, 09:54:31 »
У меня опыта и знаний не хватит что бы решить эту проблему столь основательно. Но в интернете не у одного меня она такая, и решения я пока не встречал кроме костылей-скриптов.

Оффлайн Self-Perfection

  • Активист
  • *
  • Сообщений: 331
  • Arch linux, KDE
    • Просмотр профиля
Re: Рестарт xl2tpd, скрипты
« Ответ #6 : 21 Января 2013, 22:14:31 »
Более того, лично у меня была такая же проблема. Но с достаточно свежим xl2tpd (1.3+) всё замечательно автопереподключается.

Если же всё-таки хотите костыль, то вам очень простой
ifconfig ppp0 || /etc/init.d/xl2tpd restartИ в крон.
Читайте документацию, наставницу вашу!
Памятка по описанию проблем:
Для решения [такой-то задачи] делаю [такие-то действия], но вместо [ожидаемый результат] получаю [описание отличий].

Оффлайн Cewrio

  • Автор темы
  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
Re: Рестарт xl2tpd, скрипты
« Ответ #7 : 22 Января 2013, 19:06:26 »
Да, у меня не новая версия - 1.2.7. Проверил 1.3.1, интернет вообще не появляется никак - ppp поднимается, адреса не пингуются. Даже tp.internet.beeline.ru Но в 1.2.7 такого небыло.

Оффлайн Self-Perfection

  • Активист
  • *
  • Сообщений: 331
  • Arch linux, KDE
    • Просмотр профиля
Re: Рестарт xl2tpd, скрипты
« Ответ #8 : 22 Января 2013, 19:18:19 »
Маршруты проверьте
ip ro
#Сокращённая версия ip route list
Помнится, в xl2tpd менялось поведение по выставлению машрута по-умолчанию.
Читайте документацию, наставницу вашу!
Памятка по описанию проблем:
Для решения [такой-то задачи] делаю [такие-то действия], но вместо [ожидаемый результат] получаю [описание отличий].

Оффлайн Cewrio

  • Автор темы
  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
Re: Рестарт xl2tpd, скрипты
« Ответ #9 : 23 Января 2013, 09:52:06 »
В 1.3.1 при поднятом ppp0 и не рабочем интернете:
root@debian:~# ip ro
85.21.0.246 dev ppp0  proto kernel  scope link  src 95.25.215.67
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.2
10.96.56.0/21 dev eth0  proto kernel  scope link  src 10.96.57.223
default dev ppp0  scope link

В рабочей 1.2.7 версии:
root@debian:~# ip ro
85.21.192.3 via 10.96.56.1 dev eth0
213.234.192.8 via 10.96.56.1 dev eth0
85.21.0.0/24 via 10.96.56.1 dev eth0
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.2
10.96.56.0/21 dev eth0  proto kernel  scope link  src 10.96.57.223
default dev ppp0  scope link

Пользователь решил продолжить мысль 23 Января 2013, 12:51:00:
Переустановил на 1.3.1

root@debian:~# ip ro
85.21.0.246 dev ppp0  proto kernel  scope link  src 176.14.240.212
85.21.192.3 via 10.96.56.1 dev eth0
213.234.192.8 via 10.96.56.1 dev eth0
85.21.0.0/24 via 10.96.56.1 dev eth0
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.2
10.96.56.0/21 dev eth0  proto kernel  scope link  src 10.96.57.223
default dev ppp0  scope link

Интернета нет

Пользователь решил продолжить мысль 23 Января 2013, 14:02:17:
ip route del 85.21.0.246 dev ppp0 и интернет появился.

При настройке интернета на 1.2.7 пользовался гайдом, там опубликован скрипт /etc/ppp/ip-up.d/corbinavpn:

#!/bin/sh

if [ ! $6 = "corbina" ]
then
   exit 0
fi

export GATEWAY=10.96.56.1

for i in $(grep "^nameserver" /etc/resolv.conf | awk '{print $2}') ; do
        route add -host $i gw 10.96.56.1
done

route del $5 dev $1
route add -net 85.21.0.0/24 gw $GATEWAY

Если я правильно понял, он занимается удалением того "паразитного" маршрута.
А в 1.3.1 что с ним может быть не так?
« Последнее редактирование: 23 Января 2013, 14:02:17 от Cewrio »

Оффлайн Self-Perfection

  • Активист
  • *
  • Сообщений: 331
  • Arch linux, KDE
    • Просмотр профиля
Re: Рестарт xl2tpd, скрипты
« Ответ #10 : 23 Января 2013, 16:48:39 »
Ну так отдебажьте. Замените первую строку на

Код: (bash) [Выделить]
#!/bin/sh -x
exec >>/tmp/ip-up.sh_log
exec 2>>/tmp/ip-up.sh_log

echo "$@" > /tmp/ip-up.d-params
env > /tmp/ip-up.d-env

И проверьте эти файлы после выполнения скрипта. BTW, мне совсем не нравится идея анализировать позиционные параметры скрипта. Вдруг из-за чего $5 станет $4.
« Последнее редактирование: 23 Января 2013, 18:45:14 от Self-Perfection »
Читайте документацию, наставницу вашу!
Памятка по описанию проблем:
Для решения [такой-то задачи] делаю [такие-то действия], но вместо [ожидаемый результат] получаю [описание отличий].

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Рестарт xl2tpd, скрипты
« Ответ #11 : 23 Января 2013, 18:27:48 »
BTW, мне совсем не нравится идея анализировать позиционные параметры скрипта. Вдруг из-за чего $5 станет $4.

Присоединяюсь.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Cewrio

  • Автор темы
  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
Re: Рестарт xl2tpd, скрипты
« Ответ #12 : 24 Января 2013, 12:09:22 »
С $5 и $4 все в порядке. То же самое в другом скрипте, но он работает.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28511
    • Просмотр профиля
Re: Рестарт xl2tpd, скрипты
« Ответ #13 : 24 Января 2013, 12:23:20 »
Cewrio, вы вообще поняли, о чём речь идёт?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн Cewrio

  • Автор темы
  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
Re: Рестарт xl2tpd, скрипты
« Ответ #14 : 24 Января 2013, 12:25:14 »
Порыв форумы, понял в чем дело - ipparam в 1.3.1 изменили.

Пользователь решил продолжить мысль 24 Января 2013, 12:26:04:
Cewrio, вы вообще поняли, о чём речь идёт?
Возможно либо не до конца понял, либо понял не правильно. Но свою проблему решил.

Пользователь решил продолжить мысль 24 Января 2013, 12:29:02:
Из интереса, по ссылке выше:
Цитировать
ADDRFAM='inet'
IFACE='eth0'
IFS='
'
IF_ADDRESS='192.168.1.12'
IF_GATEWAY='192.168.1.1'
IF_METRIC='100'
IF_NETMASK='255.255.255.240'
LOGICAL='eth0'
METHOD='static'
MODE='start'
OPTIND='1'
PATH='/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
PHASE='post-up'
PPID='5975'
PS1='# '
PS2='> '
PS4='+ '
PWD='~/'
VERBOSITY='0'
IF_ADDRESS, IF_GATEWAY можно использовать в скрипте как $IF_ADDRESS $IF_GATEWAY? Да, возможно мои мысли пошли вкорне не правильно - не вдаваясь в подробности это первое что пришло в голову.
« Последнее редактирование: 24 Января 2013, 12:48:14 от Cewrio »

 

Страница сгенерирована за 0.02 секунд. Запросов: 21.