Regiony

Popis

Regiony si lze představit jako vlan tagy - označím paket tagem a repeatery, které ten tag znají předají paket dál. Repeatery, které tag neznají zprávu nepředají.

Na lokálních repeatetech nastavuji cz, cz-olk, cz-pak (chci předávat cz, olomoucký a pardubický kraj). Pak přidávám bouzovsko pro místní komunikaci. Na repeaterech také nechávám zapnuto předávání paketů „bez nastaveného regionu“, tag je *.

Repeater může být nastaven tak aby explicitně předával nebo explicitně zahazoval zprávy bez region tagu a k tomu mohou být na repeateru nastaveny tagy regionů, které má repeater předávat. Repeater ale nelze nastavit tak aby předával všechny regiony, i ty, které nezná. Tag * znamená “bez regionu”, ne “libovolný region”.

V appce/companionu lze nastavit region default, potom všechna flood komunikace z companionu je označena tímto tagem. Já to ale nastavuji pouze přímo na kanálech dle potřeby, např. pro lokální komunikaci nastavuji region na bouzovsko.

Regiony a jejich nastavení se týkají pouze flood provozu. Lidem, se kterými si píši „definovanou cestou“ (hops), těm je to jedno a zpráva jim dojde regiony-neregiony, pokud je cesta funkční.

V okamžiku, kdy pošlu zprávu s nastaveným regionem a po cestě jsou repeatery, které sice podporují * (bez regionu), ale nepodporují region na mé zprávě, tak zpráva nedorazí.

Na repeateru lze nastavit region default, např. region default cz. To je stejné jako region default na companionu - všechny flood pakety, které repeater (room server) generuje, mají nastaven default region, např. cz.

Na repeateru lze nastavit i region home, nicméně tato volba nic nedělá.

Repeater v žádném případě nemodifikuje procházející data, například rozhodně neaplikuje region na zprávy, které region nastaven nemají.

Nastavení regionů umožňuje hierarchické seskupení, nicméně rodičovská hierarchie slouží hlavně k přehlednému uspořádání seznamu, například stát → kraj → oblast. Sama o sobě ale nezpůsobuje dědění oprávnění ani předávání provozu.

Takže třeba na horách, když chci zjistit, zda je někdo kolem na „direct“, tak nastavím region na local (nebo jakoukoliv jinou věc, kterou vím, že nikdo nemá), a píšu do #Public. Stejné pokud bude skupina spolu na výletě a vidí se direct - nastaví si nějaký svůj region (třeba tabor) a pak si píší buď na Publiku, nebo ve svém kanále a mesh je nezajímá. Pokud si nesou/postaví vlastní repeater, nastaví si na něm ten svůj region tabor. Jejich komunikace je pouze v rámci jejich zařízení (companions, repeater), mesh to nijak nezatěžuje. Zároveň, pokud nastaví předávání zpráv bez regionu * nebo povolí i další regiony, tak mesh rozšířili.

Nastavení

Příklad: vytvoření regionů pro Česko a Ústecký kraj:

region put cz
region put cz-ulk cz
region save

Přidat region

Region se přidává do seznamu repeateru příkazem:

region put <název> [rodič]
region save

Rodič je nepovinný; bez něj se region přidá pod kořen *. Název musí být přesný, nejvýše 29 bajtů, malými písmeny a číslicemi, případně s pomlčkou. V rámci jedné mesh sítě musí být názvy jedinečné. Regiony jsou hierarchické: například opakovač může mít povolený kraj i jeho podregion.

Příklad: přidání regionu cz-ulk pod cz:

region put cz-ulk cz
region save

Povolit region

V CLI není samostatné přepínání „znám tento region“. Opakovač může předávat regionovaný provoz jen tehdy, když má daný region ve svém seznamu a dovoluje pro něj flood. Přidání regionu proto proveďte pomocí region put; samotné povolení předávání je popsáno níže v části „Povolit flood“.

Příklad: vytvoření regionu a povolení jeho flood provozu. Na firmwaru před verzí 1.15.0 je příkaz region allowf nutný i po region put.

region put cz-ulk cz
region allowf cz-ulk
region save

Zakázat region

Chcete-li region ponechat v seznamu, ale zakázat předávání jeho flood paketů, zadejte:

region denyf <název>
region save

Region zůstane definovaný, ale repeater jej nebude předávat jako flood. Povolení zpět provedete příkazem region allowf <název> a změnu uložíte příkazem region save. Toto nastavení nemění průchod zpráv známou definovanou cestou.

Příklad: zakázání flood provozu pro cz-ulk:

region denyf cz-ulk
region save

Pokud chcete region z konfigurace úplně odstranit, použijte region remove <název> a poté region save. Nejdřív je potřeba odstranit všechny jeho podregiony.

Příklad: úplné odebrání regionu cz-ulk:

region remove cz-ulk
region save

Povolit flood

Povolení předávání flood paketů pro konkrétní region:

region allowf <název>
region save

Příkaz platí jen pro flood provoz; nemění průchod zpráv posílaných známou definovanou cestou. Před změnami si lze stav ověřit příkazem region get <název> nebo zobrazit seznam příkazem region list allowed (firmware 1.12.0 a novější).

Příklad: povolení flood provozu pro cz-ulk:

region allowf cz-ulk
region save

Zakázat flood

region denyf <název>
region save

Pro * tím zakážete flood paketům bez regionového označení (starému, neoznačenému provozu) pokračovat přes opakovač. * neznamená „všechny regiony“; označuje paket bez regionu. Vypnutí * zatím dobře zvažte, protože část sítě může stále posílat neoznačené pakety.

Příklad: zablokování flood paketů bez scope:

region denyf *
region save

Výchozí scope

Od firmwaru 1.15.0 lze nastavit výchozí region příkazem region default <název>; region default <null> nastavení zruší. U companionu se výchozí scope nastavuje v experimentálním nastavení aplikace. Použije se na jeho flood pakety, pokud konkrétní skupinový kanál nemá nastavený vlastní scope; scope kanálu má přednost.

Výchozí scope opakovače se týká pouze paketů, které vytváří sám opakovač (například jeho advertů), nikoli paketů, které pouze přeposílá. Odpověď na požadavek použije jeho scope, pokud jej opakovač zná; jinak odešle odpověď bez scope. Pro běžnou konfiguraci se doporučuje nastavit dostatečně široký region, který pokrývá zamýšlenou oblast.

Seznam známých regionů v CZ MeshCore

  • cz
    Public
  • cz-pha
    Praha
  • cz-stc
    Středočeský kraj
  • cz-jhc
    Jihočeský kraj
  • cz-plz
    Plzeňský kraj
  • cz-kvk
    Karlovarský kraj
  • cz-ulk
  • cz-lbk
    Liberecký kraj
  • cz-hkk
    Královéhradecký kraj
  • cz-pak
    Pardubický kraj
  • cz-vys
    Kraj Vysočina
  • cz-jmk
    Jihomoravský kraj
  • cz-olk
    Olomoucký kraj
  • cz-zlk
    Zlínský kraj
  • cz-msk
    Moravskoslezský kraj
  • bouzovsko
    Bouzovská oblast
    Oblastní region

Zajímavé odkazy

Meshcore CZ:

Meshcore IO:

Regionální servery: