Автор Тема: ppp0 и hamachi  (Прочитано 5759 раз)

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

Vena

  • Собеседник
  • ****
  • Сообщений: 375
    • Просмотр профиля
ppp0 и hamachi
« : Вторник, 24 Февраля, 2015, 16:08:51 »
Вот что-то не разберусь пока, как правильно сделать?
Имею debian8, 3G модем и vpn hamachi.
Автостарт ppp0 от 3G модема, а так же восстановление ppp0 после выдёргивания/вставки модема или обрыва/восстановления связи я добился. Старт hamachi тоже
sudo update-rc.d logmein-hamachi defaultsВот только видимо он стартует не в то время, так как в ifconfig ham0 (интерфейс от хамачи) появляется, а не работает, пока его не перезапущу
sudo /etc/init.d/logmein-hamachi restartтогда vpn работает.
Потом выдёргиваю модем, ppp0 отваливает, а ham0 нет. Вставляю модем обратно, через некоторое время ppp0 восстанавливается, а через ham0 данные идти не хотят до перезапуска
sudo /etc/init.d/logmein-hamachi restartМне нужно, чтобы данный vpn "следил" за состоянием модема и переконекчивался после поднятия ppp0, как и в начале работы нужно запускать хамачи после поднятия ppp0.
Пока тупик :(

vovka

  • Global Moderator
  • Про
  • *****
  • Сообщений: 787
    • Просмотр профиля
    • www.nixzeya.ru.net
Re: ppp0 и hamachi
« Ответ #1 : Вторник, 24 Февраля, 2015, 16:34:39 »
А если создать скрипт рестарта нужных вещей и поместить его в один из каталогов?
/etc/ppp/ip-down.d
/etc/ppp/ip-up.d
*nix - свобода мысли, свобода творчества!

Vena

  • Собеседник
  • ****
  • Сообщений: 375
    • Просмотр профиля
Re: ppp0 и hamachi
« Ответ #2 : Среда, 25 Февраля, 2015, 00:50:00 »
Это мысль. Надо попробовать.

Vena

  • Собеседник
  • ****
  • Сообщений: 375
    • Просмотр профиля
Re: ppp0 и hamachi
« Ответ #3 : Среда, 25 Февраля, 2015, 08:27:10 »
В /etc/ppp/ip-up.d

#!/bin/sh
sleep 30s
/etc/init.d/logmein-hamachi restart

30s опытным путём

В /etc/ppp/ip-down.d

#!/bin/sh
/etc/init.d/logmein-hamachi stop

Проверка показала, что теперь всё как надо, огромное спасибо. Все как говорится рядом, знать бы где посмотреть. Продолжаю настройку :)

vovka

  • Global Moderator
  • Про
  • *****
  • Сообщений: 787
    • Просмотр профиля
    • www.nixzeya.ru.net
Re: ppp0 и hamachi
« Ответ #4 : Среда, 25 Февраля, 2015, 11:20:19 »
/etc/ppp/ip-up.d
Цитировать
#!/bin/sh
sleep 30s
/etc/init.d/logmein-hamachi restart
Если не принципиально, то скрипт выполняется всегда при старте любого интерфейса, будь то ppp* или lo или eth* . Если нужно, чтобы скрипт выполнял какие-то действия  только для определённого интерфейса, то нужно в скрипт вставить обработку входящего параметра - в данном случае это имени интерфейса. В примере ниже дан вариант запуска строк только если активирующийся интерфейс = ppp0
Пример:
#!/bin/sh
if [[ $PPP_IFACE = "ppp0" ]]; then
     sleep 30s
     /etc/init.d/logmein-hamachi restart
fi
Суть: при старте любого интерфейса, его параметры помещаются в переменные, среди которых $PPP_IFACE (подробности - в /etc/ppp/ip-up ) . Далее подсистема управления интерфейсами поочерёдно запускает все скрипты, находящиеся в /etc/ppp/ip-up.d , а они в свою очередь берут параметры из этих переменных и обрабатывают их. Если ppp-интерфейсов много, то с помощью параметра unit в конфиге ppp указывается фиксированный номер каждому интерфейсу и в скрипте в /etc/ppp/ip-up.d можно для конкретного отфильтровать действия.
*nix - свобода мысли, свобода творчества!

Vena

  • Собеседник
  • ****
  • Сообщений: 375
    • Просмотр профиля
Re: ppp0 и hamachi
« Ответ #5 : Четверг, 26 Февраля, 2015, 09:32:46 »
Спасибо.
Цитировать
скрипт выполняется всегда при старте любого интерфейса, будь то ppp* или lo или eth*
Я предполагал, что в папке /etc/ppp/ip-up.d не может идти "речь" о eth0, например.
По аналогии, получается, что в /etc/ppp/ip-down.d мой второй скрипт должен отключить ham0 при выдёргивании сетевухи, хотя vpn создан мобилкой (3G).
Проверить пока не могу, но ночью обязательно попробую.

Но у меня есть еще вопрос в тему.
Я выполнил проброс порта утилитой rinetd. После установки в /etc/ppp/ip-up.d появился скрипт
#! /bin/sh

set -e

if [ -x /usr/sbin/rinetd ]; then
        /etc/init.d/rinetd reload > /dev/null
fi

Этот rinetd тоже после полного поднятия ham0 надо перестартовать, тогда все работает. Я по аналогии, поставил в этом скрипте sleep 1m в начале, полагая, что 30 сек в предыдущем скрипте перезапустят ham0, он пока устаканится и тд.
Но так как выполнение поочерёдное, а скрипт по алфавиту идёт последним (он на букву начинается, а перед ним на цифирь), то вероятно надо слип уменьшить до 10 сек например? Так как 30 сек в предыдущем были? И судя по информации о том, что всё это касаемо всех интерфейсов, а не только ppp0, то стоит тоже условие и тут задать?
#! /bin/sh
sleep 1m
set -e

if [ -x /usr/sbin/rinetd ]; then
        /etc/init.d/rinetd reload > /dev/null
fi

« Последнее редактирование: Четверг, 26 Февраля, 2015, 09:34:47 от Vena »

vovka

  • Global Moderator
  • Про
  • *****
  • Сообщений: 787
    • Просмотр профиля
    • www.nixzeya.ru.net
Re: ppp0 и hamachi
« Ответ #6 : Пятница, 27 Февраля, 2015, 16:43:48 »
Спасибо.
Цитировать
скрипт выполняется всегда при старте любого интерфейса, будь то ppp* или lo или eth*
Я предполагал, что в папке /etc/ppp/ip-up.d не может идти "речь" о eth0, например.
По аналогии, получается, что в /etc/ppp/ip-down.d мой второй скрипт должен отключить ham0 при выдёргивании сетевухи, хотя vpn создан мобилкой (3G).
Проверить пока не могу, но ночью обязательно попробую.
Да, верно, для ppp - другая система инициализации интерфейсов, отличная от eth*-интерфейсов базовой системы и все ppp*-интерфейсы (pppoe, pptp, ppp) управляются из /etc/ppp/

Но у меня есть еще вопрос в тему.
....
Можно скомбинировать всё в один скрипт, а можно - разными скриптами с установкой разных задержек:

#!/bin/sh
#rinetd init script

set -e

if [ -x /usr/sbin/rinetd ]; then
        sleep 1m
        /etc/init.d/rinetd reload > /dev/null
fi


#!/bin/sh
#hamachi init script

sleep 30s

/etc/init.d/logmein-hamachi restart


или в одном скрипте:

#!/bin/sh
set -e

sleep 30s
/etc/init.d/logmein-hamachi restart
sleep 30s
if [ -x /usr/sbin/rinetd ]; then
         /etc/init.d/rinetd reload > /dev/null
fi



На счёт проверки на ppp0 - дело вкуса. Если не планируется более никаких ppp-соединений запускать кроме существующего,
или
связку hamachi + rinetd нужно запускать при активации любого ppp-соединения, то фильтр можно не ставить в принципе.
Мне на своей машине приходилось иногда запускать и pppoe и pptp одновременно и для каждого нужно было активировать свою процедуру маршрутизации. Кроме как назначением фиксированного номера pppN и фильтрации, нет способа сделать автоматизацию.
*nix - свобода мысли, свобода творчества!