W pierwszej części wyjaśniliśmy, po co są regiony. Teraz pora je ustawić. Ten tekst dotyczy repeaterów z firmware MeshCore starszym niż 1.16, czyli bez polecenia region def. Regiony są w firmware od wersji 1.10, ale instrukcja obejmuje wersje od 1.12 do 1.15, bo wcześniej nazwy regionów działały inaczej. Za przykład posłuży województwo świętokrzyskie z sąsiadami, tak jak mamy to ustawione w swoich repeaterach.
Zanim zaczniesz
Regiony ustawia się na repeaterze, nie na telefonie. Potrzebujesz więc dostępu administratora do repeatera i dostępu do jego konsoli. Są dwie drogi:
- kabel USB i konsola w przeglądarce (np. ze strony flashera MeshCore, wymaga Chrome),
- zdalnie z aplikacji MeshCore: zaloguj się do repeatera jako administrator i otwórz zakładkę Command Line.
Jedno polecenie działa tylko przez kabel: wczytywanie listy regionów hurtem (region load). Jeśli możesz, pierwszą konfigurację zrób po USB.
Na początek sprawdź wersję firmware poleceniem:
ver
Firmware starszy niż 1.12 najpierw zaktualizuj. Przed wersją 1.10 regionów nie ma wcale: repeater je ignoruje i powtarza wszystko po staremu. W wersjach 1.10 i 1.11 nazwa regionu musiała zaczynać się od znaku #, a region bez niego nie przepuszczał żadnego ruchu. Od 1.12 znak # nie jest potrzebny, a pl-sk i #pl-sk oznaczają w eterze ten sam region.
Skąd wzięły się nazwy regionów
Nazwę regionu można wymyślić dowolnie, ale wszyscy w okolicy muszą używać identycznej. Dlatego dla województw proponujemy przyjęcie standardu: stare kody ISO 3166-2:PL, obowiązujące do 2018 roku, zapisane małymi literami (dozwolone są litery, cyfry i myślniki, najwyżej 29 bajtów, a wielkość liter ma znaczenie: PL-SK i pl-sk to dwa różne regiony). Od listopada 2018 roku ISO zamieniło te kody na numeryczne, na przykład świętokrzyskie z PL-SK na PL-26. My zostajemy przy starych, bo są czytelne: z samego pl-sk widać, o które województwo chodzi. Podobny układ rozważa amerykańska Florida Mesh: wśród omawianych formatów są nazwy oparte na kodach ISO 3166-2 stanów, takie jak us-fl.
Obszar naszych regionów wygląda tak:
| Region | Co obejmuje | Kod ISO od 2018 |
|---|---|---|
pl |
cała Polska (region nadrzędny) | — |
pl-sk |
województwo świętokrzyskie | PL-26 |
pl-mz |
województwo mazowieckie | PL-14 |
pl-lu |
województwo lubelskie | PL-06 |
pl-pk |
województwo podkarpackie | PL-18 |
pl-ma |
województwo małopolskie | PL-12 |
pl-sl |
województwo śląskie | PL-24 |
pl-ld |
województwo łódzkie | PL-10 |
Dlaczego w województwie świętokrzyskim są też sąsiedzi? Zżyliśmy się jako grupa i padła propozycja, by trzymać kontakt także w MeshCore. Czy to dobry pomysł? Czas pokaże. Możliwe, że kiedyś powstanie wspólny region południowej Polski. Wszystko zależy od użytkowników sieci. Pamiętaj tylko, że repeater z regionem pl-mz będzie powtarzał też ruch oznaczony tym regionem, a więc pracuje trochę „dla sąsiadów”.
Układ regionów można obejrzeć na mapie regions.meshcore.nz. Dla Polski mapa podpowiada te same stare kody (na przykład pl i pl-sk dla Kielc), ale generuje polecenia bez hierarchii, czyli region put bez rodzica. Dlatego polecenia lepiej wpisać samemu.
Dodajemy regiony krok po kroku
Hierarchia, czyli to, że pl-sk jest „pod” pl, służy tylko do wyświetlania listy. Przemiennik dopasowuje każdą nazwę osobno. Samo pl na liście nie oznacza więc zgody na pl-sk. Każdy region trzeba dodać oddzielnie.
Polecenie region put tworzy region, a opcjonalny drugi argument wskazuje rodzica. W wersji 1.15 od razu włącza też przekazywanie ruchu (we flood) dla tego regionu. Poznasz to po odpowiedzi OK - (flood allowed), bo starsze wersje odpowiadają samym OK:
region put pl
region put pl-sk pl
region put pl-mz pl
region put pl-lu pl
region put pl-pk pl
region put pl-ma pl
region put pl-sl pl
region put pl-ld pl
region save
W wersjach od 1.12 do 1.14 po każdym region put trzeba dodatkowo zezwolić na przekazywanie ruchu poleceniem region allowf:
region put pl
region allowf pl
region put pl-sk pl
region allowf pl-sk
region put pl-mz pl
region allowf pl-mz
(i tak dalej dla pl-lu, pl-pk, pl-ma, pl-sl, pl-ld)
region save
Polecenie region save zapisuje zmiany. Bez niego znikną po restarcie, więc o nim nie zapomnij.
Jeśli masz kabel USB, możesz wczytać całą listę naraz poleceniem region load. Po nim wpisujesz linijki z nazwami, a całość kończysz pustą linią. Każda linijka musi zaczynać się od spacji: jedna spacja to region najwyższego poziomu, dwie to region pod nim i tak dalej. Linijkę bez wcięcia repeater po cichu pomija. Flaga F oznacza zgodę na przekazywanie ruchu. Wpisz ją przy każdym regionie, bo region podrzędny nie dziedziczy jej po rodzicu:
region load
pl F
pl-sk F
pl-mz F
pl-lu F
pl-pk F
pl-ma F
pl-sl F
pl-ld F
(pusta linia kończy wczytywanie)
region save
Repeater potwierdzi wczytanie komunikatem OK - loaded 8 regions. Uważaj, bo region load zastępuje całą listę: regiony, których nie wpiszesz, znikną. Regiony, które już były na liście, zachowają dotychczasowe ustawienie przekazywania, niezależnie od F we wczytanej linijce. Dlatego po wczytaniu sprawdź na liście, czy regiony faktycznie mają F, a brakujące włącz przez region allowf.
Sprawdzamy, co wpisaliśmy
Pełną listę regionów pokazuje polecenie region. Są też region list allowed (regiony z zezwoleniem na ruch) i region list denied (zablokowane). Wszystkie trzy działają także zdalnie z aplikacji. O pojedynczym regionie powie:
region get pl-sk
Odpowiedź zawiera nazwę, rodzica i literę F, jeśli przekazywanie jest dozwolone. Brak F oznacza, że repeater tego regionu nie powtarza.
Region domyślny repeatera
Repeater sam też nadaje pakiety, na przykład ogłoszenia o sobie (advert). Żeby nie niosły się po całym kraju, można nadać im pieczątkę lokalnego regionu:
region default pl-sk
region save
Wyczyścisz go poleceniem region default <null>. Region domyślny jest dostępny od wersji 1.15. Starsze wersje odpowiedzą błędem Err - ?? i wysyłają ogłoszenia bez regionu, więc w nich ten krok pomiń.
Zmiany, usuwanie i blokowanie
- Zmiana rodzica: ponowne
region putz tą samą nazwą aktualizuje definicję, np.region put pl-ld pl. - Usunięcie regionu:
region remove pl-ld. Najpierw trzeba usunąć regiony podrzędne. - Czasowe wyłączenie:
region denyf pl-ldblokuje przekazywanie ruchu tego regionu, aregion allowf pl-ldprzywraca je. - Po każdej zmianie:
region save.
Nie blokuj od razu pakietów bez regionu poleceniem region denyf *. Odetniesz wtedy każdego, kto jeszcze nic nie ustawił, w tym nowych użytkowników w okolicy. Z takim krokiem warto poczekać, aż większość sieci przejdzie na regiony.
A na telefonie
Regiony na repeaterze to połowa pracy. Drugą połową jest pieczątka na wiadomościach. W aplikacji MeshCore możesz ustawić zakres dla każdego kanału osobno i zakres domyślny dla całej aplikacji (w ustawieniach eksperymentalnych). Wpisz nazwę dokładnie tak jak w repeaterze, na przykład pl-sk dla lokalnego czatu albo pl dla ogłoszeń na cały kraj.
Najczęstsze wpadki
- brak
region save: po restarcie regionów nie ma, - brak
region allowfw wersjach starszych niż 1.15: region jest na liście, ale nie działa, - linijki bez wcięcia w
region load: repeater pomija je bez żadnego komunikatu, - literówka, spacja albo inna wielkość liter w nazwie: powstaje zupełnie inny klucz i repeatery się nie dogadują,
- repeater po drodze nie zna regionu: wiadomość zatrzymuje się na nim. Pomaga czasowe wyczyszczenie zakresu w aplikacji i sprawdzenie, czy wtedy wiadomość przechodzi.
W trzeciej części pokażemy to samo w wersji od 1.16, gdzie hierarchię można wczytać jedną linijką. Dokumentację poleceń znajdziesz na docs.meshcore.io.
Artykuł powstał na podstawie dokumentacji MeshCore, opisów konfiguracji regionów stosowanych w społecznościach sieci oraz ustaleń lokalnej grupy z województwa świętokrzyskiego.
