Jak usprawnić sieć w domu? cz. 1

Wstęp

Wpis jest wstępem do serii mini testów, które przeprowadziłem lub przeprowadzę w najbliższym czasie. Chodzi o rozwiązanie kwestii sieci w domu, czyli dostępu urządzeń w domu do internetu i zapewnienia ich łączności pomiędzy sobą. Powodem było moje WiFi. Choć doprowadzone aktualnie do zadowalającej używalności, niekoniecznie było optymalne. I to zarówno jeśli chodzi o stabilność połączenia, jak i oferowane przepływności czy opóźnienia. Na rynku istnieje kilka rozwiązań, które mają za zadanie pomóc w dostarczeniu sieci w domu. Niedawny wpis o PLC przypomniał mi, że kiedyś interesowałem się bardziej tematem, a technika poszła naprzód.

Szybkie pytanie na wewnętrznym forum firmowym czy komuś nie zalega parka PLC spotkała się z pozytywnym odzewem (uroki pracy w większej firmie, z otwartymi geekami – ciekaw jestem czego nie dałoby się znaleźć… ;-)) i okazało się, że nie tylko zalega chwilowo, ale są różnego typu, stąd pomysł na porównanie i podzielenie się wnioskami.

Nie ma to być test uniwersalny ani profesjonalny – robię go przede wszystkim dla siebie i w dostępnym mi środowisku. Trzeba pamiętać, że na przykład typ ścian czy otoczenie może mieć kolosalne znaczenie dla WiFi. Podobnie wygląda kwestia sieci elektrycznej dla PLC., więc każda sieć w domu jest nieco inna. Mam jednak nadzieję, że uda się wyciągnąć jakieś wnioski ogólne i może komuś pomoże w wyborze rozwiązania.

O ile nie napisano inaczej, wykorzystywany jest firmware dostarczony z urządzeniami. Systemy nie są specjalnie tuningowane – ot, linuksowy default. Z oczywistych względów trudno mi wypowiadać się na temat stabilności poszczególnych rozwiązań w dłuższym okresie czasu.

Topologia sieci

Topologia sieci jest następująca: modem ISP (kablówka) w przedpokoju, podłączony ethernetem do routera. Router (obecnie TL-841) z wgranym OpenWRT/LEDE dostarcza internet reszcie urządzeń po WiFi. Przedpokój to w miarę centralny punkt w mieszkaniu, odległość od urządzeń końcowych (laptopy, smartfony) ok. 7 metrów, część urządzeń pracuje w 802.11n, część w 802.11g i tak zostanie – modernizacja czy wymiana końcówek są nieopłacalne.

Dla jasności: to działa od lat i w zasadzie wystarcza, jeśli chodzi o przepływność. Wystarczało i na 802.11g, gdy transfery (do mojego laptopa) wynosiły 15-18 Mbps (wg speedtest.net). Po zmianie routera na nowszy jest lepiej – 30 Mbps. Nadal jest to gorzej niż to, co oferuje operator (60 Mbps), ale w zupełności wystarcza do transferów „z zewnątrz”. Zobaczymy jednak, czy są jakieś alternatywy i czego się spodziewać.

Ani mieszkanie w kamienicy, ani dość zaszumiony eter na 2,4 GHz, nie pomagają w dobrym działaniu WiFi. Możliwe więc, że dlatego nieco gorzej wygląda sytuacja, jeśli chodzi o stabilność. Rzadko, bo rzadko, ale zdarzały się problemy (straty do routera, wzrost czasów odpowiedzi). Zwykle, w czasach gdy korzystałem z oryginalnego firmware producenta, wystarczał restart routera lub sprawdzenie jak wygląda sytuacja w eterze przy pomocy WiFi Analyzera i zmiana kanału na wskazany jako najlepszy (czyli najmniej używany).

Swoją drogą zmiana kanału na nieużywany jest najprostszym sposobem na poprawę zasięgu czy jakości WiFi, więc jeśli ktoś szuka odpowiedzi na pytanie jak poprawić sygnał WiFi, to zdecydowanie polecam zacząć od tego.

Pomiary

Wykonywane są cztery testy wewnętrzne, oraz ogólny test przy pomocy speedtest.net (beta, czyli bez Flash). Testy wewnętrzne wykonywane były w dwóch wariantach: krótkim (w założeniu ok. 60s) i długim (ok. 3600s).

  1. iperf3 -u -b 0 -t 60 -c 192.168.10.126
  2. iperf3 -t 60 -c 192.168.10.126
  3. ping -i 0.1 -c 600 192.168.10.126
  4. ping -s 1500 -i 0.1 -c 600 192.168.10.126
  5. iperf3 -u -b 0 -t 3600 -c 192.168.10.126
  6. iperf3 -t 3600 -c 192.168.10.126
  7. ping -i 0.1 -c 36000 192.168.10.126
  8. ping -s 1500 -i 0.1 -c 36000 192.168.10.126
  9. speedtest.net[1]

Jak widać jest to pomiar przepływności przy użyciu pakietów UDP, TCP oraz pomiar opóźnień przy pomocy ping ze standardową oraz maksymalną (MTU 1500) wielkością pakietu. Ostatni test to „realne” połączenie z internetem. Wykorzystywane serwery mojego ISP oraz Orange, który często był wskazywany jako najlepszy.

Za klienta służy mój laptop z Debianem, za sondę posłużyło Banana Pi (jedyny SoC z gigabitowym portem, który miałem pod ręką). W obu systemach wykorzystany iperf3. Pomiar nie był jedyną czynnością wykonywaną przez laptopa, ale – poza testami WiFi – był wykorzystany osobny interfejs, a obciążenie było typowe.

Dodatkowo mogą pojawić się uwagi, jeśli coś nieplanowanego podczas testów rzuci mi się w oczy.

Wyniki bazowe

Na wstępie spiąłem oba urządzenie kablem „na krótko” i uruchomiłem testy. Synchronizacja oczywiście 1 Gbps.

1.
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  4]   0.00-60.00  sec  6.07 GBytes   869 Mbits/sec  0.136 ms  592341/795464 (74%)
2.
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-60.00  sec  5.47 GBytes   784 Mbits/sec  138             sender
[  4]   0.00-60.00  sec  5.47 GBytes   783 Mbits/sec                  receiver
3.
--- 192.168.10.126 ping statistics ---
600 packets transmitted, 600 received, 0% packet loss, time 62319ms
rtt min/avg/max/mdev = 0.291/0.372/0.549/0.031 ms
4.
--- 192.168.10.126 ping statistics ---
600 packets transmitted, 600 received, 0% packet loss, time 62290ms
rtt min/avg/max/mdev = 0.427/0.549/24.612/0.996 ms

5.
[ ID] Interval           Transfer     Bandwidth       Jitter    Lost/Total Datagrams
[  4]   0.00-3600.00 sec   374 GBytes   893 Mbits/sec  0.220 ms  36944269/49033499 (75%)
6.
[ ID] Interval           Transfer     Bandwidth       Retr
[  4]   0.00-3600.00 sec   349 GBytes   833 Mbits/sec  8735             sender
[  4]   0.00-3600.00 sec   349 GBytes   833 Mbits/sec                  receiver
7.
--- 192.168.10.126 ping statistics ---
36000 packets transmitted, 36000 received, 0% packet loss, time 3745436ms
rtt min/avg/max/mdev = 0.278/0.369/40.914/0.398 ms

8.
--- 192.168.10.126 ping statistics ---
36000 packets transmitted, 36000 received, 0% packet loss, time 3745111ms
rtt min/avg/max/mdev = 0.260/0.500/2.861/0.046 ms

9.
Inea Orange [2]

Jak widać bez większych niespodzianek – osiągnięte wyniki wynikają raczej z ograniczenia samego Banana Pi. Mimo to widać, że jest szybko, czasy odpowiedzi niskie i jest stabilnie.

[1] Nie znałem wtedy znacznie lepszego serwisu do sprawdzania szybkości internetu.

[2] W przypadku pomiaru łącz topologia była nieco inna – laptop wpięty po kablu do portu routera (port 100 Mbps). W zasadzie dokładniej byloby wpiąć go bezpośrednio w modem kablowy, ale router jest stałym elementem zestawu w pozostałych topologiach… Dostawca internetu (Inea) deklaruje 60/10 Mbps.

Update

Na blogu cisza i pozornie nie dzieje się nic. Pozory jednak mylą, choć łapię się na tym, że nie chce mi się pisać osobnych wpisów o drobiazgach. Jest w tym zasługa Blox, który działa… tak jak działa. Statystki pokazują dostępność 99,9% dla obu blogów i… nie jest to przypadek. 502 Bad Gateway lata często. Zgłaszałem i mi się znudziło. Nie jest na tyle źle, żebym się spakował z miejsca, ale drażni i zniechęca.

W zasadzie wszystkie ważniejsze systemy podniosłem do Stretch. Większych problemów nie było. Jedyne co, to po upgrade przestała działać planeta Joggera. Paczka wyleciała ze Stretch, wersja z Jessie nie chciała działać. Postawiłem kontener z unstable i… też nie działało. Skończyło się kontenerem z Jessie, wszystko póki co działa, ale pewnie przy końcu aktualizacji Jessie będzie trzeba coś z tym zrobić. Być może zmienię silnik.

Z racji nowych zabawek (Orange Pi Zero) i średniego wsparcia nowych wersji Debiana dla różnych SoC zacząłem się bawić builderem Armbiana. Fajna zabawka, pewnie pobawię się nieco więcej w najbliższym czasie. Marzy mi się budowanie obrazów dla Stretch, zmiana powinna być prosta, choć toolchainy i ilość miejsc gdzie coś może pójść nie tak trochę przeraża – nie znam rozwiązania.

Bardzo spodobał mi się ESP8622 i MicroPython. Będę się bawił, już kupiłem – leży i czeka. Pewnie będą jakieś wpisy z tych zabaw, chociaż tak naprawdę wszystko jest do znalezienia w sieci. Imponujące jest niskie zapotrzebowanie na prąd, zwł. w deep sleep. Chociaż przy używaniu WiFi podobno znacznie rośnie. Niemniej, ma to szansę być autonomiczne jeśli chodzi o zasilanie przy użyciu jedynie niewielkiego panelu solarnego, czego o SoC pokroju RPi nie da się powiedzieć. Ogólnie są świetne projekty oparte o solary, ceny rozwiązań bardzo spadły. Sensu ekonomicznego czy ekologicznego z tego co widziałem w wyliczeniach jeszcze nie ma (i to dla San Francisco) ale niezależność energetyczna (światło, komputer, smartfon, dogrzewanie kawalerki) z jednego panela w cenie $200 za kompletne rozwiązanie robi wrażenie.

Trochę czasu schodzi na ogarnianie przemeblowań w domu. Trochę koniec prowizorek – połączyłem biurka i mam teraz narożne, co przekłada się na dobrą miejscówkę do psucia różnych zabawek. Po pierwsze sporo miejsca, po drugie w końcu jest dostępny prąd. Jeszcze muszę dopracować, ale kierunek mi się podoba. 😉

ENEA i papierowy druk przelewu

Mój dostawca energii, ENEA, przysyła mi co pewien czas pocztą rachunek. Składa się on z trzech kartek A4. Na pierwszej jest zestawienie zużycia energii, na drugiej faktura. Na trzeciej ENEA dostarcza druk przelewu, taki do opłacenia na poczcie. Dotychczas nie zwracałem na to specjalnej uwagi. Ostatnio jedka się zastanowiłem, że dla tej ostatniej kartki mam jedno zastosowanie: niezadrukowana połowa (A5) służy mi do szybkich podręcznych notatek, a drugą część wyrzucam. Bo przelewu za prąd inaczej niż elektronicznie nie zdarzyło mi się płacić.

Ponieważ i tak mam notesy, stwierdziłem, że zapytam się czy i jak można zrezygnować ze zbędnego mi druku przelewu. Czyli bezsensownego generowania śmieci. Napisałem maila i szybko dostałem odpowiedź: nie da się, przynajmniej nie w tej formie, w której chcę. Można albo przejść na faktury elektroniczne, albo dostawać komplet.

Trochę dziwi mnie brak parcia na faktury elektroniczne. Wydaje mi się, że nie było na ten temat nawet żadnej informacji w przesyłanych materiałach, o zachęcie finansowej nie wspomnę. Za to wymagane jest założenie konta w eBOK (w siedmiu prostych krokach. Oraz złożenie wniosku o fakturę elektroniczną (w czterech prostych krokach). W zamian stracę możliwość opłacania faktur i kontrolowania rachunków przez dowolną osobę z gospodarstwa domowego. Bo zapewne adres mailowy do wysyłki faktury można podać tylko jeden…

Skoro ENEA woli wysyłać druk papierowy – niech im będzie.