3G роутер из Raspberry Pi Вот собственно вопрос как правильно это реализовать. Предыстория: в интернете куча описаний, как это реализовать при помощи 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 и где еще, чтобы все выполнялось последовательно после отработки определения модема ? |
да, если нет костылей то при перезагрузке не подключается автоматом к интернету, если рестартануть ntwoking то ppp0 поднимается. |
Не готов физ интерфейс, из-за этого не поднимается виртуальный ppp, и т.д. Подобное у меня кое где происходит, adsl не успевает поднятся к моменту старта роутера, для этого было сделано следующее 1. /etc/cron.d/rc.local [code] ... CronTAG=rc.local ... */15 * * * * root /usr/local/sbin/check-pppoe ...[/code] 2. /usr/local/sbin/check-pppoe [code] #!/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 [/code] Поскольку внешний ip у меня везде статика, то он тупо прописан в скрипте загрузки правил iptables, который стартует независимо от состояний ppp0, и дергать его при поднятии ppp смысла нет. Если у вас динамический, то скрипт загрузки правил нужно поместить в сециально предусмотренный для таких целей /etc/ppp/ip-up.local |
Если не нужна отчетность/журналирование, то скрипт можно подсократить [code] #!/bin/bash if [ ! `pgrep pppoe-connect` ]; then ifup ppp0;fi [/code] |
Собственно, можно вообще обойтись одной строчкой в cron с нужной периодичностью */15 * * * * root /sbin/ifup ppp0 Где-то в недрах скриптов pppoe* закопана проверка на существование/резервирование имени интерфейса, но есть вероятность нарваться на ситуацию когда эта проверка отрабатывает некорректно, и вместо ppp0 подниметя ppp1 и т.д., наблюдал такое. Мне было лень искать где затык, поэтому сделал свой чекпоинт. зы: кстати, usb_modeswitch, а не modeM |
2-harsh > спасибо. ну печатал быстро, по этому и modeM ... Ну смысл вижу такой же, костылями через cron. Думал может есть более правильный путь, как в system.d типа загружай это только после того, как загрузится то-то и так далее. |
Угу, что-то после чего-то, и при отсутствии некоего устройства, например флешки 3G или сдохшего eth, на выходе, при старте получаем безнадежно висящую систему. На мой взгляд это не "более правильный путь", а заблуждение. |
Так у меня при всем при этом происходит зависание системы если я дерну модем из порта. Хотя почему это происходит не знаю. |
гм, если из работающей системы дернуть задействованый компонент, проц например, сетевую или хард, думаю, тоже зависнет. Короче, если не нравится "костыль" с планировщиком, можно поправить скрипт-обертку для pppoe, чтобы pppoe-connect бесусловно форкался сразу же, незасисимо от того установлено соединение или нет. Но тут другое неудобство, придется вносить правку после каждого обновления пакета. |
оставлю пока так.. По крайней мере не наблюдал отваливание инета за сутки... костыль так костыль, главное чтобы работал... з.ы. почему тогда виндовая машина не зависает если вытаскивать модем ? |
9-Перпетум Мобиле > в вашем исполнении может зависнуть и холодильник, и ходики, уверен на 146%. Примерно полгода назад, летом 2017, уронил корзину с 4-мя работающими хардами с высоты мидлтауэра, около 450мм. Ось не зависла, чему я оч. удивился, корзину осторожно поднял, водрузил на место, и еще с неделю смотрел кино онлайн, прежде чем система стала говорить: - "НЕТ". Оказалось актуатор процарапал процентов 70 системного раздела, но система работала почти 10 дней. Внимание вопрос. Какая ОС смогла такое пережить? |
10-harsh > модем E171, если дергаю его из порта, когда система подключена к интернету, система виснет. ОС raspbian. пробовал раза два или три, результат всегда один и тот же. ПК Raspberry Pi B+. на 3-й не проверял |
Если мопед не дергать оно вообще стабильно работает ? Просто в свое время все играния с малиной второй заканчивались тем что при плохом SNR мопед пытается тянуть тока больше чем малина может выдать и начиналась всякая жесть, но в общем там малина сильно обвешана была usb. В итоге забросил эту затею и ушел на неттоп. |
11-Перпетум Мобиле > дурацкий вопрос: - зачем вы такое исполняете? |
13-harsh > специально не исполнял, просто имитировал обрыв интернета :) ну и удивился, что система подвисает. не помню, чтобы выдергивание мопеда на ноуте с Виндой система висла. 12-701054 > Малина первая B+, только что проверил, пингуется, хотя осталась в офисе включенной. |
И по SSH только что зашел, через openVPN. все четенько работает. |
12-701054 > может стоило поставить usbhub с доп питанием ? |
14-Перпетум Мобиле > если уже пошла такая пьянка, будьте добры исполнять на одном и том же железе. А потом будем рассуждать про суперустойчивую систему с виндой. |
17-harsh > так как же я проверю на том же железе ? Винду же на нее не поставить :). Понятно, что ниче не понятно. А другой машины с Linux у меня нет под рукой. Ну могу через недельку проверить на Pi3. Если к интернету не подключаться, то система не зависает, при выдергивании модема. Говорю же, сам удивился такому поведению, думал ну пропадет интернет ессно и все на этом, а оно вона как. |
Значит винду вы поставить не можете, а заявлять о том, что винда не виснет можете, я ничего не перепутал? Имитировать отсутствие связи можно экраном, железной кружкой например. |
19-harsh > не тупи, не могу поставить Винду на Raspberry Pi B+. насколько помню, Windows IoT не поддерживает эту модель, да даже если и поддерживала, это недоразумение на нее ставить не буду. Проц там ARM а не X86 чтобы Винду вкорячивать. А на другом железе как сам заметил это не проверка. |
Текущее время: 02:28. Часовой пояс GMT +3. |