1

Temat: Aero2 - automatyzacja resetowania i nie tylko

Mam propozycję plugina do OpenWRT i brak wiedzy w zakresie ich tworzenia.

Sytuację w Aero2 znamy: reset połączenia co godzinę, konieczność wpisana kodu, po czym reset połączenia obowiązkowy. Cezary opublikował świetny plugin z przyciskami na panelu logowania. Ale można pójść łatwo krok dalej i automatycznie resetować połączenie, gdy wykryty zostanie stan po wpisaniu kodu. Algorytm działania:

1. Aktywacja plugina w momencie wykrycia warunku - np. po nawiązaniu połączenia adres IP z zadanej puli
(w przypadku Aero2: 10.x.x.x)
2. Okresowe pobieranie strony internetowej z podanego URL
(Aero2: "wget -S -O /tmp/form.html --post-data viewForm=true http://bdi.free.aero2.net.pl:8080/" - wersja na 21 maja 2014)
3. Przeszukanie /tmp/form.html (albo od razu grepem) ciągu "Odpowiedź prawidłowa. Rozłącz i ponownie połącz się z Internetem" lub innego wskazanego w konfiguracji.
4. Wywołanie reset WWAN w przypadku spełnienia warunku 3.
5. Przejście w stan czuwania do czasu spełnienia warunku 1.

Na początek może być bez panelu konfiguracyjnego, jednak możliwość konfigurowania poszczególnych etapów wraz z czynnością jaką realizujemy w punkcie 4 daje nam całkiem uniwersalny pakiecik, który może automatyzować różne czynności - np. wywoływać URL, inicjować zdarzenia typu miganie diodami itd itp w przypadku wykrycia danego zdarzenia w sieci - Aero2 byłoby tylko dodatkiem, choć inicjującym stworzenie plugina.

Plugin powinien być mały tak, aby zmieścił się w pamięci urządzeń typu MR3420 MR3220 i innych popularnych wśród użytkowników Aero2.

Czy macie jakieś uwagi i pomysły do tego rozwiązania?

2

Odp: Aero2 - automatyzacja resetowania i nie tylko

Odnośnie punktu 2. - czy na pewno po wpisaniu kapcia na komputerze pobierze na innej maszynie strona z poleceniem zresetowania połączenia?

Do tej pory podczas korzystania z aero gdy wpiszę kapcia na jednej stronie i otworzę kolejną bez resetowania połączenia to wyskoczy standardowa strona aerowska, nieróżniąca się od tej sprzed wpisania CAPTCHy.

3

Odp: Aero2 - automatyzacja resetowania i nie tylko

Jak otworzysz
http://bdi.free.aero2.net.pl:8080/
To tak, pojawi się strona z "kliknij tutaj"...
Ale jak klikniesz tutaj, czyli de facto wykonasz:
wget -S -O /tmp/form.html --post-data viewForm=true http://bdi.free.aero2.net.pl:8080/"
to w przypadku poprawnego wpisania kodu pojawi się strona z informacją o tym, żeby połączenie zresetować. I tak jest od 1 kwietnia.
Oczywiście Aero2 może to zmienić i pomysł będzie do niczego, ale sam plugin napisany odpowiednio może być i do automatyzacji innych czynności.

4

Odp: Aero2 - automatyzacja resetowania i nie tylko

Problem w tym że wbudowany wget z busyboxa nie ma --post-data

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5 (edytowany przez Cezary 2014-12-25 16:06:42)

Odp: Aero2 - automatyzacja resetowania i nie tylko

Proszę, działa, właśnie sprawdziłem u siebie.

wget http://dl.eko.one.pl/projekty/99-aero2 -O /etc/hotplug.d/iface/99-aero2
chmod 755 /etc/hotplug.d/iface/99-aero2

Działa poprawnie dla połączeń ppp (interfejs wan z proto 3g) i aero2.
W praktyce wygląda to tak: przeglądamy internet, mija nam czas, następuje captcha. Wprowadzamy kod.
Tymczasem w tle... w routerze, przy podniesieniu interfejsu sprawdzane są w/w dane i jeżeli adres zaczyna się od 10....  to badane jest występowanie "ponownie połącz się z Internetem" w komunikacie (w utf-8). Jak jest to wykonywane jest ifup wan i skrypt kończy działanie. Skrypt czeka w pętli 600s od podniesienia interfejsu. Jeżeli w tym czasie (10min) nie wprowadzimy kodu to zakończy swoje działanie (do ponownego podniesienia interfejsu).

Skrypt pierwotnie wykorzystywał wget do pobierania danych, obecnie wykorzystuje nc w sposób przedstawiony w jednym z dalszych postów.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

6

Odp: Aero2 - automatyzacja resetowania i nie tylko

Dobreee! Przydałoby się dodać jeszcze jakieś zabezpieczenia (zatrzymujące skrypt), a mianowicie sprawdzanie jakiegoś pliczku w ramie. Jeśli jego zawartość to "1" wtedy skrypt kończyłby działanie / w ogóle się nie uruchamiał. Dzięki temu przy zmianie karty SIM (z Aero2 np. na Orange) można byłoby go sobie ręcznie wyłączyć. Da radę dodać coś takiego?

7

Odp: Aero2 - automatyzacja resetowania i nie tylko

Jest sprawdzany apn, więc jak zmienisz kartę z aero2 na orange to skrypt nie będzie się uruchamiał. Już pomyślałem  tym.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

8

Odp: Aero2 - automatyzacja resetowania i nie tylko

Cezary napisał/a:

Proszę, działa, właśnie sprawdziłem u siebie.

opkg update
opkg install wget-nossl
wget http://dl.eko.one.pl/projekty/99-aero2 -O /etc/hotplug.d/iface/99-aero2
chmod 755 /etc/hotplug.d/iface/99-aero2

Na mr3420 i podobnych się to nie zmieści, bo pełnego wgeta potrzebuje. Działa poprawnie dla połączeń ppp i aero2.
W praktyce wygląda to tak: przeglądamy internet, mija nam czas, następuje captcha. Wprowadzamy kod.
Tymczasem w tle... w routerze, przy podniesieniu interfejsu sprawdzane są w/w dane i jeżeli adres zaczyna się od 10....  to bada występowanie "ponownie połącz się z Internetem" w komunikacie (w utf-8). Jak jest to ifup wan jest wykonywane i skrypt kończy działanie.

Co jest niebezpiecznego: ktoś nie poda hasła i skrypt sobie będzie w nieskończoność latał w tle w routerze.

Świetna sprawa z tym smile

9

Odp: Aero2 - automatyzacja resetowania i nie tylko

Super sprawa. Jak naprawię extroota to przetestuję.

10

Odp: Aero2 - automatyzacja resetowania i nie tylko

Cezary napisał/a:

Jest sprawdzany apn, więc jak zmienisz kartę z aero2 na orange to skrypt nie będzie się uruchamiał. Już pomyślałem  tym.

Jednak przydałoby się jakieś zabezpieczenie umożliwiające zatrzymanie tego "while". Bo z tego co rozumiem jak wpadnie w loopa to w nieskończoność, co 1 sekundę będzie sprawdzać, niepotrzebnie obciążając router. Jak np. zmienię kartę SIM podczas loopa, to nadal będzie to działać w tle bez możliwości zatrzymania.
Czy taki skrypt jest poprawnie napisany?:

SECURITY=$(cat /tmp/aero2stoploop)
    if [ $SECURITY = "stop" ]; then
    logger -t $0 "...Wykryto wartosc stop w pliku /tmp/aero2stoploop - zatrzymano skrypt."
    rm $FORM
    exit
    fi

11

Odp: Aero2 - automatyzacja resetowania i nie tylko

Jak zmienisz kartę i zrób po prostu restart routera. W niczym Ci to nie zaszkodzi.

Wystarczy również samo sprawdzenie obecności pliku, nie musisz koniecznie sprawdzać jego zawartości.

PS. Zmodyfikuję wieczorem skrypt, żeby badał też czy się udało odczytać stroną z bdi/aero2 i jeżeli nie uda tak ze 60 razy to pętla zakończy działanie.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

12 (edytowany przez blank 2014-05-25 12:54:25)

Odp: Aero2 - automatyzacja resetowania i nie tylko

Przydatny skrypt wink Trochę inteligentniejszy niż mój ale mam kilka spostrzeżeń:

1.U mnie nie działa pobieranie IP za pomocą uci i jak czytam w internecie to "The uci state vars are deprecated and not used anymore for network related information.".

IP=$(uci -q -P /var/state get network.wan.ipaddr)

zastąpiłem

source /lib/functions/network.sh
network_get_ipaddr IP "wan"

2.Przydało by się na początku dać zmienną z nazwą interfejsu bo u mnie np. jest HSDPA a nie wan.

3. Jeszcze przed wprowadzeniem kodów trzeba było mieć skrypt sprawdzający czy pingi przechodzą na zewnątrz. Teraz jest to niepotrzebne? Z tego co mi się wydaje to kiedy kończy się internet trzeba zrobić reconnect po captche. Albo też sytuacja kiedy coś się zwiesi i nie ma internetu.

13

Odp: Aero2 - automatyzacja resetowania i nie tylko

1. Bo to do gargoyle było, które __jeszcze__ to posiada. W uci działa w ten sposób szybciej niż ma to pobrać ze skryptu jak to się tak jak pokazałeś robi.
2. j/w smile
3. Jak nie wprowadzisz kodu do aero2 nie odpowiada w sumie chyba na żadne pingi łącznie ze swoimi dnsami, więc i tak nic Ci po tym. Ponad to - w gargoyle od tego masz monitor połączenia.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

14

Odp: Aero2 - automatyzacja resetowania i nie tylko

Ok... Ja dzisiaj siedzę na Aero2 i mam problem z działaniem skryptu. Zainstalowałem oczywiście według instrukcji, ale w logach systemowych nigdzie nie mam: "Sprawdzanie poprawnosci wpisanego kodu..."
Logi: http://pastebin.com/uD90LbRf

coś muszę zmienić przy takich ustawieniach pewnie smile?
http://i.imgur.com/L6NBO2C.png

15

Odp: Aero2 - automatyzacja resetowania i nie tylko

A napisałem wyraźnie że skrypt działa dla ppp a nie ndisu...

Nie mam aktualnie modemu pracującego w ndisie więc nie wiem czy dla niego też będzie działać poprawnie, zamień sobie w skrypcie x3g na xndis i sprawdź.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

16

Odp: Aero2 - automatyzacja resetowania i nie tylko

Witam kolegów u mnie po sprawdzeniu aktualizacji nie chce przyjąć komendy  opkg install wget-nossl  pokazuje ERROR: Specified install destination is not writable, exiting co jest albo robie nie tak??

17

Odp: Aero2 - automatyzacja resetowania i nie tylko

opkg install opkg

albo faktycznie miejsce ci się we flash skończyło.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

18

Odp: Aero2 - automatyzacja resetowania i nie tylko

Cezary po komendzie którą podałeś też pokazuje error to chyba trzeba flasha dać większego

19

Odp: Aero2 - automatyzacja resetowania i nie tylko

Wyczyść flash lub zrób sobie extroota. A tak w ogóle to o jakim routerze piszesz?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

20

Odp: Aero2 - automatyzacja resetowania i nie tylko

jak wyczyścić flasha ??

21

Odp: Aero2 - automatyzacja resetowania i nie tylko

firstboot lub przywrócenie ustawień domyślnych z gui.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

22

Odp: Aero2 - automatyzacja resetowania i nie tylko

po firstboot dalej bez zmian chyba trzeba zmienić flasha

23

Odp: Aero2 - automatyzacja resetowania i nie tylko

Po firstboot MUSI działać. Jeszcze raz - jaki router, jakie firmware?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

24

Odp: Aero2 - automatyzacja resetowania i nie tylko

to jego error  ERROR: Not enough space in destination root to install specified packages:
        wget-nossl

25

Odp: Aero2 - automatyzacja resetowania i nie tylko

Jaki router?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.