К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

3G роутер из Raspberry Pi

0 - 24.01.2018 - 10:14
Вот собственно вопрос как правильно это реализовать.
Предыстория: в интернете куча описаний, как это реализовать при помощи sakis, umtskeeper или при помощи wvdial и т.д.
Все это не особо нужно, так как есть штатный ppp.

Проблема заключается в том, что при загрузке долго инициализируется модем и не поднимается интерфейс. Так как он не поднимается, то не срабатывают правила arno-iptables-firewall

Сейчас сделано так:

Настроено подключение при помощи pon operator

в /etc/network/interfaces прописано

auto ppp0
iface ppp0 inet ppp
provider 3gsm (так обозвал при настройке)
post-up /etc/init.d/arno-iptables-firewall restart (перестартовывает правила чтобы заработал NAT на сетевую карту)

Так же в crone добавлен скрипт проверки поднятия интерфейса ppp и его перезагрузка

Собственно как я понимаю, все из-за того, что usb-modemswitch долго отрабатывает и не срабатывает подключение и собственно firewall.

Пока вот так костылями, а хочется по феншую, чтобы каждая следующая оператция ждала и срабатывала когда ей положено. Куда собственно копать? как правильно прописать я так понимаю в system.d и где еще, чтобы все выполнялось последовательно после отработки определения модема ?



1 - 24.01.2018 - 10:15
да, если нет костылей то при перезагрузке не подключается автоматом к интернету, если рестартануть ntwoking то ppp0 поднимается.
Гость
2 - 24.01.2018 - 12:11
Не готов физ интерфейс, из-за этого не поднимается виртуальный ppp, и т.д.
Подобное у меня кое где происходит, adsl не успевает поднятся к моменту старта роутера, для этого было сделано следующее
1. /etc/cron.d/rc.local
Код:
...
CronTAG=rc.local
...
*/15 * * * * root /usr/local/sbin/check-pppoe
...
2. /usr/local/sbin/check-pppoe
Код:
#!/bin/bash
echo=/bin/echo
if [ -n "$CronTAG" ]; then
  echo=:
fi

if [ `pgrep pppoe-connect` ]; then
  $echo pppoe run;exit
else
  echo `date "+%F %T.%N"`: $0: pppoe stopped, try start ppp0 >>/var/log/restart.log
  $echo pppoe stopped; ifup ppp0
  service exim start > /dev/null
fi
Поскольку внешний ip у меня везде статика, то он тупо прописан в скрипте загрузки правил iptables, который стартует независимо от состояний ppp0, и дергать его при поднятии ppp смысла нет. Если у вас динамический, то скрипт загрузки правил нужно поместить в сециально предусмотренный для таких целей /etc/ppp/ip-up.local
Гость
3 - 24.01.2018 - 12:30
Если не нужна отчетность/журналирование, то скрипт можно подсократить
Код:
#!/bin/bash
 if [ ! `pgrep pppoe-connect` ]; then ifup ppp0;fi
Гость
4 - 24.01.2018 - 12:43
Собственно, можно вообще обойтись одной строчкой в cron с нужной периодичностью
*/15 * * * * root /sbin/ifup ppp0

Где-то в недрах скриптов pppoe* закопана проверка на существование/резервирование имени интерфейса, но есть вероятность нарваться на ситуацию когда эта проверка отрабатывает некорректно, и вместо ppp0 подниметя ppp1 и т.д., наблюдал такое. Мне было лень искать где затык, поэтому сделал свой чекпоинт.

зы: кстати, usb_modeswitch, а не modeM
5 - 24.01.2018 - 13:11
2-harsh > спасибо. ну печатал быстро, по этому и modeM ...
Ну смысл вижу такой же, костылями через cron.

Думал может есть более правильный путь, как в system.d типа загружай это только после того, как загрузится то-то и так далее.
Гость
6 - 24.01.2018 - 13:33
Угу, что-то после чего-то, и при отсутствии некоего устройства, например флешки 3G или сдохшего eth, на выходе, при старте получаем безнадежно висящую систему.
На мой взгляд это не "более правильный путь", а заблуждение.
7 - 24.01.2018 - 14:30
Так у меня при всем при этом происходит зависание системы если я дерну модем из порта.
Хотя почему это происходит не знаю.
Гость
8 - 24.01.2018 - 15:12
гм, если из работающей системы дернуть задействованый компонент, проц например, сетевую или хард, думаю, тоже зависнет.
Короче, если не нравится "костыль" с планировщиком, можно поправить скрипт-обертку для pppoe, чтобы pppoe-connect бесусловно форкался сразу же, незасисимо от того установлено соединение или нет. Но тут другое неудобство, придется вносить правку после каждого обновления пакета.
9 - 24.01.2018 - 15:29
оставлю пока так.. По крайней мере не наблюдал отваливание инета за сутки... костыль так костыль, главное чтобы работал...

з.ы. почему тогда виндовая машина не зависает если вытаскивать модем ?
Гость
10 - 26.01.2018 - 20:52
9-Перпетум Мобиле > в вашем исполнении может зависнуть и холодильник, и ходики, уверен на 146%.
Примерно полгода назад, летом 2017, уронил корзину с 4-мя работающими хардами с высоты мидлтауэра, около 450мм. Ось не зависла, чему я оч. удивился, корзину осторожно поднял, водрузил на место, и еще с неделю смотрел кино онлайн, прежде чем система стала говорить: - "НЕТ". Оказалось актуатор процарапал процентов 70 системного раздела, но система работала почти 10 дней.
Внимание вопрос. Какая ОС смогла такое пережить?
11 - 28.01.2018 - 10:57
10-harsh > модем E171, если дергаю его из порта, когда система подключена к интернету, система виснет.
ОС raspbian. пробовал раза два или три, результат всегда один и тот же. ПК Raspberry Pi B+. на 3-й не проверял
Гость
12 - 28.01.2018 - 15:29
Если мопед не дергать оно вообще стабильно работает ? Просто в свое время все играния с малиной второй заканчивались тем что при плохом SNR мопед пытается тянуть тока больше чем малина может выдать и начиналась всякая жесть, но в общем там малина сильно обвешана была usb. В итоге забросил эту затею и ушел на неттоп.
Гость
13 - 28.01.2018 - 19:12
11-Перпетум Мобиле > дурацкий вопрос: - зачем вы такое исполняете?
14 - 28.01.2018 - 20:12
13-harsh > специально не исполнял, просто имитировал обрыв интернета :) ну и удивился, что система подвисает. не помню, чтобы выдергивание мопеда на ноуте с Виндой система висла.

12-701054 > Малина первая B+, только что проверил, пингуется, хотя осталась в офисе включенной.
15 - 28.01.2018 - 20:14
И по SSH только что зашел, через openVPN. все четенько работает.
16 - 28.01.2018 - 20:16
12-701054 > может стоило поставить usbhub с доп питанием ?
Гость
17 - 28.01.2018 - 20:21
14-Перпетум Мобиле > если уже пошла такая пьянка,
будьте добры исполнять на одном и том же железе.
А потом будем рассуждать про суперустойчивую систему с виндой.
18 - 28.01.2018 - 20:32
17-harsh > так как же я проверю на том же железе ? Винду же на нее не поставить :).

Понятно, что ниче не понятно. А другой машины с Linux у меня нет под рукой. Ну могу через недельку проверить на Pi3.

Если к интернету не подключаться, то система не зависает, при выдергивании модема.
Говорю же, сам удивился такому поведению, думал ну пропадет интернет ессно и все на этом, а оно вона как.
Гость
19 - 29.01.2018 - 01:03
Значит винду вы поставить не можете, а заявлять о том, что винда не виснет можете, я ничего не перепутал?

Имитировать отсутствие связи можно экраном, железной кружкой например.
20 - 29.01.2018 - 10:22
19-harsh > не тупи, не могу поставить Винду на Raspberry Pi B+. насколько помню, Windows IoT не поддерживает эту модель, да даже если и поддерживала, это недоразумение на нее ставить не буду.
Проц там ARM а не X86 чтобы Винду вкорячивать. А на другом железе как сам заметил это не проверка.


К списку вопросов






Copyright ©, Все права защищены