Szybkie szukanie |
Gargoyle/OpenWRT i automatyczne resetowanie połączenia
|
11-02-2015, 02:30
(Ten post był ostatnio modyfikowany: 12-02-2015 12:08 przez jakubd.)
Post: #1
|
|||
|
|||
Gargoyle/OpenWRT i automatyczne resetowanie połączenia
Właśnie odkryłem coś bardzo ciekawego: można wreszcie całkowicie zautomatyzować resetowanie połączenia dla routerów MR3420 i analogicznych działających pod kontrolą OpenWRT/Gargoyle.
Efekt jest taki: 1. Korzystamy sobie z sieci 2. Połączenie się resetuje i zostajemy poczęstowani kodem CAPTCHA 3. Rozwiązujemy kod i... 4. ...po chwili router sam rozpoznaje to, że kod został wpisany poprawnie i resetuje połączenie. Czyż to nie jest piękne? Rozwiązanie było gotowe już kilka miesięcy temu, ale nie mieściło się w pamięci flash większości routerów. Na szczęście ktoś genialny wpadł na pomysł zastąpienia wget'a z obsługą POST starym dobrym netcatem (nc), który jest wbudowany w OpenWRT. Efekt: działa pysznie, nie ma żadnych istotnych wymagań co do wolnej pamięci flash. Instrukcja sprawdzona dla MR3420v2 z Gargoyle 1.6.2.2 (najnowszy z września 2014): Logujemy się do konsoli (putty przez SSH, user root, pass - taki jak daliśmy do routera) i odpalamy polecenia (wymagany dostęp do Internetu): Kod: wget http://dl.eko.one.pl/projekty/99-aero2 -O /etc/hotplug.d/iface/99-aero2 Ograniczenia: działa tylko dla modemów sterowanych przez ppp (czyi E3131 w każdej wersji poza HiLink spełnia ten wymóg). Routery MR3420 w jdtech.pl od dziś oferuję już przygotowane w ten sposób. KUDOS należą się oczywiście Cezaremu (admin eko.one.pl, twórca Gargoyle po polsku) oraz koledze summner, który wpadł na to genialne w swojej prostocie rozwiązanie. Historia tego wynalazku: http://eko.one.pl/forum/viewtopic.php?id=8754 |
|||
11-02-2015, 12:38
(Ten post był ostatnio modyfikowany: 11-02-2015 12:40 przez szopen.)
Post: #2
|
|||
|
|||
Gargoyle/OpenWRT i automatyzne resetowanie połączenia
dodajmy jeszcze, że tylko "gargoyle by obsy" czyli powstałe u Cezarego
http://eko.one.pl/?p=openwrt-gargoylepl jest "z pudełka" przygotowane do pracy z Aero2 (głównie to łatka umożliwiająca DNS rebind dla aero2 ale i inne udogodnienia) natomiast gargoyle stamtąd https://www.gargoyle-router.com/ nie ma tych udogodnień, za to jest dostępna wersja 1.7.0 bazowana na OpenWRT Barrier Breaker (1.6.x są oparte na AA) Statystyki Folding@home |
|||
11-02-2015, 14:01
Post: #3
|
|||
|
|||
Gargoyle/OpenWRT i automatyzne resetowanie połączenia
I dodam jeszcze artykuł z bloga aktualny: http://jdtech.pl/2015/02/aero2-automatyc...terze.html
|
|||
11-02-2015, 23:45
Post: #4
|
|||
|
|||
Gargoyle/OpenWRT i automatyzne resetowanie połączenia
Uzupełniając tą historię dodam tylko iż wydaje mi się, że na pomysł automatycznego resetowania połączenia z poziomu routera wpadłem jako pierwszy
Już na początku maja 2014 sprzedałem na Allegro router mobilny Zalip z taką funkcją. |
|||
12-02-2015, 01:24
Post: #5
|
|||
|
|||
Gargoyle/OpenWRT i automatyzne resetowanie połączenia
Pamiętam. Ale najważniejszą sprawą jest w tym wypadku szerokie udostępnienie rozwiązania dla wielu urządzeń (rozwiązanie z wget dla routerów z nadmiarem flash było dostępne od wakcji 2014), stałe wsparcie - wraz ze ewentualnymi zmianami na stronie operatora.
Dla OpenWRT pierwsza wersja po mojej propozycji praktycznego rozwiązania pojawiła się prawie natychmiast już 21 maja 2014 (inspirowana twoim pomysłem po weryfikacji praktycznej zasady działania). Czekaliśmy tylko na to, żeby zrobić to w 1-2kbajt a nie 1-2MB pamięci flash. |
|||
12-02-2015, 01:27
Post: #6
|
|||
|
|||
RE: Gargoyle/OpenWRT i automatyzne resetowanie połączenia
Hmmm... dla hilinka pewnie też by się dało, ale trzeba by lekko zmodyfikować i rozbudować skrypt:
1) Sprawdzenie czy uci wan.proto == dhcp 2) Jeżeli tak pobranie urządzenia (eth1, eth2) za pomocą uci wan.ifname 3) Mając urządzenie pobrać adres modemu (hmmm... da się sprawdzić za pomocą ifconfig device jakie IP ma dla modemu hilink router, wtedy po modyfikacji drobnej byłby adres modemu) Mając adres urządzenia dalej posługujemy się już api HiLinka: 4) Pobrać APN i sprawdzić czy to Aero (darmowy) za pomocą api hilinka metodą GET dla adresu /api/dialup/profiles a tam na podstawie indeksu obecnego profilu (CurrentProfile) pobrać nazwę APN (ApnName), 5) Jeżeli potwierdzone powyższe plus sprawdzone czy kapeć wpisany wtedy można zrobić reboota z API metodą POST dla adresu api kończącego się api/device/control z odpowiednim requestem (patrz przykład 1a lub 1b używania API i opis api device/control) P.S. Niektóre komendy wpisałem jako skróty myślowe |
|||
12-02-2015, 01:51
Post: #7
|
|||
|
|||
RE: Gargoyle/OpenWRT i automatyzne resetowanie połączenia
Moje rozwiązanie opiera się na tcpdump - 350KB.
|
|||
12-02-2015, 12:06
Post: #8
|
|||
|
|||
Gargoyle/OpenWRT i automatyzne resetowanie połączenia
tcpdump też fajna metoda, zupełnie inne podejście, ale:
1. MRxx20 mają najwyżej 320 kb wolnego flash po hardreset 2. Trzeba zobaczyć, jakie jest obciążenie procesora działającym tcpdumpem 3. Musi być dodatkowa logika, żeby nie włączało się to przy innych operatorach - w LTE a nawet szybkich 3G może nieźle ograniczyć wydajność. Co do rozwiązania VipeRsan: super sprawa, tylko trzeba chyba jeszcze sprawdzać wersję modemu - nie wiem, czy przypadkiem API nie zmienia się w zależności od modemu. Poza tym może być po drugiej stronie ZTE, a nie Huawei i strzelanie na ślepo URLami nie jest najzdrowszym pomysłem. Fajnie by było napisać jakiś uniwersalny programik do resetowania połączenia, który działałby w shellu tak, aby można było go wrzucić do Windows, Linuksa, jak i routera. |
|||
12-02-2015, 12:30
(Ten post był ostatnio modyfikowany: 12-02-2015 12:32 przez VipeRsan.)
Post: #9
|
|||
|
|||
Gargoyle/OpenWRT i automatyczne resetowanie połączenia
API HiLinka jest (z tego co na razie widziałem) nie zmienne, ale nie wiadomo jak będzie z nowszym firmware bo w wynalazku jaki jest u ruskich E3372h z nowym firmware (fw 22.491.03.*) ponoć nie chce coś działać API lub sprawdzanie tokena :/ Jak ktoś miałby taki modem i/lub takie oprogramowanie lub wyższe to niech się zgłosi
Co do ZTE to pfff... no cóż nie wiem co tam w środku piszczy |
|||
12-02-2015, 23:25
Post: #10
|
|||
|
|||
RE: Gargoyle/OpenWRT i automatyczne resetowanie połączenia
(12-02-2015 12:06)jakubd napisał(a): tcpdump też fajna metoda, zupełnie inne podejście, ale: Stwierdzę nawet, że tcpdump to metoda fajniejsza 1. Czasami jak się dobrze przejrzy soft, to okazuje się że pewne pliki niczemu nie służą. Być może jednak w przypadku tego routera nie da się wygospodarować ani kilobajta. 2. Obciążenie jest żadne, patrz punkt 3. 3. Nie potrzeba dodatkowej logiki, wystarczy uruchomić tcpdump z parametrem "host bdi.free.aero2.net.pl" i analizujemy tylko pakiety z tego serwera. |
|||
13-02-2015, 00:38
Post: #11
|
|||
|
|||
Gargoyle/OpenWRT i automatyczne resetowanie połączenia
Gdyby odpalać go tylko po wejściu w kapeć... to by miało sens. Ale jak analizujesz wszelki ruch, to przy 30 Mbit/s tcpdump może spowalniać system (a ja nie wiem, czy klient będzie używał routera tylko do Aero2, czy nie).
W samym routerze MR3420 po prostu nie ma co wywalać, jeżeli chcemy zachować obsługę wielu modemów. Ale być może można skompilować tcpdumpa bez modułów nadmiarowych i jakoś skompresować elfa. |
|||
13-02-2015, 00:53
(Ten post był ostatnio modyfikowany: 13-02-2015 01:03 przez gbr.)
Post: #12
|
|||
|
|||
RE: Gargoyle/OpenWRT i automatyczne resetowanie połączenia
(13-02-2015 00:38)jakubd napisał(a): Gdyby odpalać go tylko po wejściu w kapeć... to by miało sens. Ale jak analizujesz wszelki ruch, to przy 30 Mbit/s tcpdump może spowalniać system (a ja nie wiem, czy klient będzie używał routera tylko do Aero2, czy nie). Z parametrem "host bdi.free.aero2.net.pl" tcpdump przechwytuje tylko pakiety dotyczące serwera captcha, reszta jest ignorowana, więc nie obciąża systemu. Poza tym w przypadku mojego routera funkcja "auto restartu" jest konfigurowalna z interfejsu WWW. Można ją wyłączyć, zmienić adres serwera oraz zmienić frazę wyszukiwaną w komunikacie o poprawności odczytania kapcia. |
|||
13-02-2015, 13:33
Post: #13
|
|||
|
|||
Gargoyle/OpenWRT i automatyczne resetowanie połączenia
No to widzę, że zrobiłeś pełen kombajn
Co do tcpdump - dumpuje tylko to, co dopasowane, ale PRZEGLĄDA cały ruch. |
|||
13-02-2015, 23:14
Post: #14
|
|||
|
|||
RE: Gargoyle/OpenWRT i automatyczne resetowanie połączenia | |||
06-03-2015, 11:17
Post: #15
|
|||
|
|||
RE: Gargoyle/OpenWRT i automatyczne resetowanie połączenia
U mnie od wczoraj przestało działać samoczynne resetowanie połączenia, w formie stworzonej przez Cezarego (pierwsza strona tego tematu). Ponowne wbicie tych komend nie dało efektu. W routerze nic nie zmieniałem. Wczoraj śmigało, a dzisiaj ani razu i musiałem się przeprosić z guzikiem Restart WAN. Ktoś ma ten sam problem?
Cezary zasugerował coś takiego: ACTION=ifup INTERFACE=wan sh -x /etc/hotplug.d/iface/99-aero2 Ale jeszcze nie próbowałem. |
|||
06-03-2015, 13:03
Post: #16
|
|||
|
|||
Gargoyle/OpenWRT i automatyczne resetowanie połączenia
Trzeba by zobaczyć, czy coś się zmieniło na stronie Aero2.
|
|||
« Starszy wątek | Nowszy wątek »
|
Podobne wątki | |||||
Wątek: | Autor | Odpowiedzi: | Wyświetleń: | Ostatni post | |
Program do powiadomień dzwiękowych w przypadku utraty połączenia | alowska | 13 | 16 019 |
26-09-2015 02:25 Ostatni post: szopen |
|
Program do resetowania połączenia w TP-Link TL-MR3420 | mshmaster | 51 | 54 522 |
30-07-2014 10:46 Ostatni post: bako82 |
|
garg by sebus [routery z gargoyle],[win] | izaw | 8 | 10 149 |
17-07-2014 00:08 Ostatni post: juniorjpdj |
|
Dekapeć OpenWrt by sciss [router OpenWRT +dodatk. łącze +konto shell mono],[dowolny] | sciss | 5 | 5 587 |
05-06-2014 02:49 Ostatni post: sciss |