1

Temat: Internet mobilny z planem dzien/noc (dodatkowy transfer w nocy)

Od pewnego czasu korzystam z buildow MiFi na internecie mobilnym LTE (OpenWrt 19.07-SNAPSHOT r11144-2ca5a386ee, D-Link DWR-921 C1) w NEXT Mobile. Zdecydowałem się na plan dzien/noc, dzieki ktoremu mam 100GB w godzinach 8-1 oraz dodatkowe 200GB w godzinach 1-8 (w nocy).

Aby w pelni moc rozsadnie korzystac z transferu nocnego w celu np. aktualizacji aplikacji na telefonach w domu (android) czy ladowania zdjec, itp. zdecydowalem sie na drobne oskryptowanie dhcp bazujace na cronie i wykorzystujace funkcjonalnosc automatic 'metered wifi connection' w androidzie:

1 1 * * *  uci del_list dhcp.lan.dhcp_option='43,ANDROID_METERED' && uci commit dhcp && /etc/init.d/dnsmasq reload && wifi
59 7 * * * uci add_list dhcp.lan.dhcp_option='43,ANDROID_METERED' && uci commit dhcp && /etc/init.d/dnsmasq reload && wifi

Krotkie wyjasnienie: rozwiazanie wykorzystuje opcje DHCP 43 (vendor-specific), dzieki ktorej urzadzenia z androidem 'wiedza', ze polaczenie jest 'taryfowe'. Pozniej nastepuje reload konfiguracji dnsmasq oraz wylacz/wlacz wifi aby klienci raz jeszcze sie polaczyli i pobrali nowa konfiguracje z dhcp (tak sie dzieje codziennie o godz 1:01 oraz 7:59).

Dziala to calkiem niezle, androidy faktycznie aktualizuja sie automatycznie wylacznie w nocy, zdjecia/filmy z Google photos laduja sie wylacznie w nocy - dzieki temu zostaje nieco wiecej transferu dziennego w miesiacu, o co wlasnie chodzilo.

Chcialem jednak podpytac o implementacje tego typu rozwiazania bez zapisu do pamieci flash (jest to dla mnie zupelnie zbedne, ustawienie 'noc' chcialbym traktowac wylacznie jako ustawienie 'tymczasowe'). Jesli router z jakiegos powodu zrestartowalby sie w godzinach 1-8 nie przeszkadzaloby mi zupelnie jesli wskoczylby w trym non-metered w danym dniu.

Biezace rozwiazanie niepotrzebnie tworzy wiec dodatkowe zapisy zupelnie niepotrzebnie degradujace flash.

Prosba wiec o pomoc w przerobieniu crona aby zachowac w/w funkcjonalnosc z wykluczeniem zapisow do flash.

2

Odp: Internet mobilny z planem dzien/noc (dodatkowy transfer w nocy)

Po prostu niepotrzebnie robisz commit. Aplikacje jeżeli korzystają z uci to widzą zmiany mimo że to nie jest zapisane na dysku. Więc po prostu:

uci del_list dhcp.lan.dhcp_option='43,ANDROID_METERED' && /etc/init.d/dnsmasq reload && wifi && uci revert dhcp

itp. Sprawdź.

A tak w ogóle (bo jesteś po za mną jednym z nielicznych userów który przyznają się do używania mifi) - jak się sprawuje?

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

3

Odp: Internet mobilny z planem dzien/noc (dodatkowy transfer w nocy)

Dzieki Cezary, flagi wysylaja sie poprawnie bez koniecznosci robienia commit - nie wiedzialem, ze tak zachowuje sie uci - sprytne wink


MiFi sprawuje sie dobrze - przekonal mnie prosty interface, do ktorego latwo zajrzec komorka, sprawdzic zuzyty transfer, ew. SMSy itp. Jak potrzebuje zrobic jakies wieksze zmiany lub zobaczyc co sie dzieje z routerem to i tak dzialam bezposrednio przez ssh.

Poczatkowo mialem pewne problemy z OOM na tym routerze (64MB RAM), ale tylko przez to, ze zdecydowalem sie dokonfigurowac tunnel kliencki vpnc (always-on - ale wylacznie na ruch do dodatkowej podsieci) oraz sqm. Po ograniczeniu regul adblocka (-yoyo) jest juz zupelnie ok.

btw. byc moze warto rozwazyc sqm jako defaultowy pakiet w MiFi - po jego doinstalowaniu i dokonfigurowaniu calkowicie skonczyly sie u mnie jakiekolwiek problemy z rownoczesnym korzystaniem przez innych domownikow z wifi, a uzywam lacza LTE jako podstawowe do pracy (HO), w tym audio/video konferencji, itp. (mimo, ze sam korzystam z konfiguracji diffserv4 - sqm dziala dobrze takze przy zupelnie 'standardowej' konfiguracji tego pakietu - trzeba jednynie podac max. predkosci up/down).

4

Odp: Internet mobilny z planem dzien/noc (dodatkowy transfer w nocy)

Również z planem taryfowym żyję lecz nie mam dostępu do informacji o zużyciu. W ramach samokontroli limituję streamy przez qos i stawiam liczniki. W MiFi zakładka Transfer to praktyczna rzecz ale potrzebuję widzieć ją prędzej, choćby na stronie startowej paseczek albo procenty.

Chciałbym taką informację o zużyciu transferu dodać jako addon do /etc/sysinfo.d/ .
@Cezary jakim mechanizmem moglbym odczytać w/w zużycie przez komendę??

5

Odp: Internet mobilny z planem dzien/noc (dodatkowy transfer w nocy)

W mifi? Obecnie żadnym, transfer jest liczony przez gui na podstawie danych zawartych w /usr/lib/easyconfig/easyconfig_statistics.json.gz (/tmp/easyconfig_statistics.json)

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

6 (edytowany przez wisipior 2022-12-03 16:53:37)

Odp: Internet mobilny z planem dzien/noc (dodatkowy transfer w nocy)

Cezary napisał/a:

W mifi? Obecnie żadnym, transfer jest liczony przez gui na podstawie danych zawartych w /usr/lib/easyconfig/easyconfig_statistics.json.gz (/tmp/easyconfig_statistics.json)

No właśnie chcę się rozeznać jak się "włamać" na Twoją stronę znając hasło bez przeglądarki ?
Być może na etapie optymalizowania gui ukryłeś widoczność redirect'ów i możnaby
- użyć curl - czy składnia adresu url pozwala się dostać do panelu ? coś w stylu http://router?passwd=xxx?tab=transfer

- wywołać ręcznie funkcję (zakładam że java) zwracającą licznik - tylko którą z którego pliku ?

W końcu nie pisane to było w kodzie maszynowym...coś się da napewno.

A może po prostu nieco ubogacić stronę startową, bo co do systemu nie można mieć pretensji.

7

Odp: Internet mobilny z planem dzien/noc (dodatkowy transfer w nocy)

Ale tam się nie musisz włamywać jak całość jest jawna smile Tak, kod to javascript (nie java), curlem tego nie zrobisz bo potrzebował byś interpreter javascriptu żeby to po prostu wykonać.
Za to bez problemu możesz z poziomu konsoli obrobić samodzielnie plik ze statystykami:

jsonfilter -i /tmp/easyconfig_statistics.json -e '@.wan'

Tyle że musisz sobie teraz wyciągnąć poszczególne dni które chcesz w jakimś zakresie i policzyć sumy wartości.
Jak się przyjrzysz danym to w kluczach będzie dzień w formacie YYYYMMDD, tx i rx trzymane są w total_tx i total_rx.
Wpisany limit jest osiągalny przez
uci get easyconfig.traffic.warning_value <- wartość
uci get easyconfig.traffic.warning_unit <- jednostka
uci get easyconfig.traffic.warning_cycle <- okres rozliczeniowy (d - dzienne,  p - okres rozliczeniowy (miesiąc).

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

8 (edytowany przez wisipior 2022-12-03 17:53:53)

Odp: Internet mobilny z planem dzien/noc (dodatkowy transfer w nocy)

Cezary napisał/a:

Ale tam się nie musisz włamywać jak całość jest jawna smile Tak, kod to javascript (nie java), curlem tego nie zrobisz bo potrzebował byś interpreter javascriptu żeby to po prostu wykonać.
Za to bez problemu możesz z poziomu konsoli obrobić samodzielnie plik ze statystykami:

jsonfilter -i /tmp/easyconfig_statistics.json -e '@.wan'

Tyle że musisz sobie teraz wyciągnąć poszczególne dni które chcesz w jakimś zakresie i policzyć sumy wartości.
Jak się przyjrzysz danym to w kluczach będzie dzień w formacie YYYYMMDD, tx i rx trzymane są w total_tx i total_rx.
Wpisany limit jest osiągalny przez
uci get easyconfig.traffic.warning_value <- wartość
uci get easyconfig.traffic.warning_unit <- jednostka
uci get easyconfig.traffic.warning_cycle <- okres rozliczeniowy (d - dzienne,  p - okres rozliczeniowy (miesiąc).

To właśnie mam na myśli. Skoro wartości limitu są przepisywane do interfejsu uci, to czy zużycie po obliczeniu możnaby też przepisać do uci jako np. current. Wartość read-only wygląda na drobiazg. Jeśli algorytm przeliczania ulegnie zmianie to ten u mnie będzie nieaktualny. Ot taki niuans do rozkminy...

9

Odp: Internet mobilny z planem dzien/noc (dodatkowy transfer w nocy)

Nie ma sensu. Wartości liczy gui jak pisałem a nie jakiś proces w routerze. Jak nigdy nie wejdziesz w gui to nigdy nic się do uci nie wpisze. A skoro już szedłeś do gui to widzisz na bieżąco wyliczone wartości.

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

10

Odp: Internet mobilny z planem dzien/noc (dodatkowy transfer w nocy)

Cezary napisał/a:

Nie ma sensu. Wartości liczy gui jak pisałem a nie jakiś proces w routerze. Jak nigdy nie wejdziesz w gui to nigdy nic się do uci nie wpisze. A skoro już szedłeś do gui to widzisz na bieżąco wyliczone wartości.

Domyślam się co te dane mówią ale nie wiem jak je przetworzyć. wiem napewno że po odczytaniu danych z jsonfilter wywoluje sie zapewne jakiś fragment kodu który jest funkcją i się ona jakoś już nazywa...a może wystarczy przekleić ten fragment i zastąpić go tylko wywołaniem funkcji i ja zrobiłbym to z komendy po prostu. tak kombinuję.

11

Odp: Internet mobilny z planem dzien/noc (dodatkowy transfer w nocy)

Nie da się. W konsoli nie wykona się kod js bez interpretera a takiego nie masz w routerze.

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

12

Odp: Internet mobilny z planem dzien/noc (dodatkowy transfer w nocy)

Cezary napisał/a:

Nie da się. W konsoli nie wykona się kod js bez interpretera a takiego nie masz w routerze.

A czy jesteś w stanie załączyć albo podesłać ten fragment w javie liczący zużycie w cyklu? Wrzucię go jak przerobię na sh.

13

Odp: Internet mobilny z planem dzien/noc (dodatkowy transfer w nocy)

Funkcja showtraffic: https://github.com/obsy/packages/blob/m … g.js#L3509

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