Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
regionen_und_scopes [2026/08/17 17:36] – [Was bedeutet das F in der Regions-Ausgabe?] bmke-a-2345-tdeckregionen_und_scopes [2026/08/17 19:09] (aktuell) – [Flache Regionsdefinitionen mit region def] bmke-a-2345-tdeck
Zeile 136: Zeile 136:
 </code> </code>
  
-zeigt die Regions-Hierarchie und deren Flood-Status an.+zeigt die konfigurierten Regions und deren Flood-Status an.
  
-Beispielsweise: +Bei der hier empfohlenen flachen Konfiguration sieht die Ausgabe beispielsweise so aus:
- +
-<code> +
-*^ F +
-europe F +
-  at F +
-    at-ost F +
-      at-w F +
-</code> +
- +
-Oder OHNE Hierarchie schaut das dann folgend aus.+
  
 <code> <code>
Zeile 167: Zeile 157:
  
 <code> <code>
-region put at-w at-ost+region put at-w
 </code> </code>
  
Zeile 266: Zeile 256:
  
 **Zuerst ''region'' ansehen und nur Flood-Berechtigungen ändern, die tatsächlich geändert werden müssen.** **Zuerst ''region'' ansehen und nur Flood-Berechtigungen ändern, die tatsächlich geändert werden müssen.**
 +
 +===== Für Einsteiger: So kommt eine Nachricht durch das Mesh =====
 +
 +Für eine Scoped-Nachricht arbeiten Companion und Repeater zusammen:
 +
 +  - Im Companion wählst du einen Channel und den dazu passenden Scope, zum Beispiel ''#vienna'' mit dem Scope ''at-w''.
 +  - Die gesendete Nachricht trägt genau **einen** Scope. Eine ungescopte Nachricht trägt stattdessen keinen Scope und fällt unter ''*''.
 +  - Ein Repeater prüft, ob er genau diese Public Region kennt und ob dafür Flooding erlaubt ist (''F''). Nur dann leitet er das Paket weiter.
 +  - Ein Repeater ohne diese Region leitet das Paket nicht weiter. Dadurch bleibt lokaler Verkehr lokal und belastet nicht unnötig entfernte Infrastruktur.
 +
 +Hat ein Repeater mehrere erlaubte Regions, gilt das als **ODER**: Er kann Pakete für jede dieser Regions weiterleiten. Das bedeutet nicht, dass ''*'' alle Regions umfasst. ''*'' steht ausschließlich für ungescopte Pakete.
 +
 +Ein Scope ist keine Verschlüsselung und keine private Gruppe. Er ist ein Filter für die Verteilung im Funknetz. Die Privatsphäre eines Channels wird über dessen Channel-Konfiguration geregelt, nicht über den Scope.
 +
 +==== Discover Regions im Companion ====
 +
 +Die Funktion ''Discover Regions'' zeigt Regions, die dem Companion bekannt sind, und hilft bei der Auswahl eines passenden Scopes. Sie legt eine Region jedoch nicht auf Repeatern an und schaltet dort auch kein Flooding frei.
 +
 +Damit ein Scope in der Praxis funktioniert, müssen entlang des gewünschten Wegs passende Repeater diese Public Region besitzen und dafür Flooding erlauben. Wird eine Region nur im Companion ausgewählt, aber von den erreichbaren Repeatern nicht unterstützt, kann die Nachricht lokal enden oder gar nicht weitergeleitet werden.
 +
 +Für die Auswahl gilt als einfache Orientierung:
 +
 +  * lokaler Channel: möglichst den lokalen Scope verwenden, zum Beispiel ''at-w'';
 +  * Kommunikation über mehrere Bundesländer: einen passenden größeren Scope verwenden, zum Beispiel ''at-ost'';
 +  * österreichweite Kommunikation: ''at'' verwenden;
 +  * ungescopte Kommunikation nur dort verwenden, wo sie ausdrücklich gewünscht und von ''*'' unterstützt wird.
  
 ===== Warum brauchen wir Scopes? ===== ===== Warum brauchen wir Scopes? =====
Zeile 295: Zeile 311:
 kann die Kommunikation auf die dafür vorgesehene Infrastruktur beschränkt werden. kann die Kommunikation auf die dafür vorgesehene Infrastruktur beschränkt werden.
  
-===== Unsere österreichische Top-down-Struktur =====+===== Unsere österreichische Regionsstruktur ===== 
 + 
 +{{:mcaustriaregionsv2.png?600}} 
 + 
 +Für MeshCore Austria werden die Regions bewusst **ohne technische Hierarchie** angelegt. Jede verwendete Region liegt direkt unter der Null-Region ''*''.
  
 <code> <code>
-GLOBAL / UNSCOPED 
 * *
 | |
 +-- europe +-- europe
-      | ++-- at 
-      +-- at ++-- at-ost 
-           | ++-- at-sued 
-           +-- at-ost ++-- at-west 
-           |     | ++-- at-w 
-               +-- at-w ++-- at-noe 
-           |     +-- at-noe ++-- at-bgld 
-           |     +-- at-bgld ++-- at-stmk 
-           | ++-- at-ktn 
-           +-- at-sued ++-- at-ooe 
-               | ++-- at-sbg 
-           |     +-- at-stmk ++-- at-t 
-           |     +-- at-ktn ++-- at-vbg
-           | +
-           +-- at-west +
-                 | +
-                 +-- at-ooe +
-                 +-- at-sbg +
-                 +-- at-t +
-                 +-- at-vbg+
 </code> </code>
 +
 +Die Namen folgen weiterhin einer verständlichen geografischen Namenslogik. Beispielsweise steht ''at-ost'' für Ostösterreich und ''at-w'' für Wien. Daraus entsteht aber **keine** Parent-Child-Vererbung: Jede Region ist ein eigenständiger Eintrag.
  
 Die Public Regions auf dem Repeater lauten: Die Public Regions auf dem Repeater lauten:
Zeile 347: Zeile 361:
 </code> </code>
  
-===== Ebenen =====+===== Namensgruppen ===== 
 + 
 +Die folgenden Gruppen dienen nur der Orientierung. Sie sind keine technischen Ebenen und bewirken keine Vererbung.
  
 ==== Global / unscoped ==== ==== Global / unscoped ====
Zeile 397: Zeile 413:
 </code> </code>
  
-bzwauf dem Repeater: +Diese Namen können für größere österreichische Bereiche verwendet werden. Sie sind technisch eigenständige Regions direkt unter ''*''.
- +
-<code> +
-at-ost +
-at-sued +
-at-west +
-</code>+
  
 ==== Bundesländer ==== ==== Bundesländer ====
Zeile 617: Zeile 627:
 Damit ist keine weitere Freigabe erforderlich. Damit ist keine weitere Freigabe erforderlich.
  
-Dasselbe gilt beispielsweise für:+Dasselbe gilt beispielsweise für flach angelegte Regions:
  
 <code> <code>
-region put at europe +region put at 
-region put at-ost at +region put at-ost 
-region put at-w at-ost+region put at-w
 </code> </code>
  
Zeile 703: Zeile 713:
 </code> </code>
  
-Das zeigt die bestehende Regions-Hierarchie und den Flood-Status.+Das zeigt die bestehenden Regions und ihren Flood-Status.
  
 **Nur ändern, was tatsächlich geändert werden muss.** **Nur ändern, was tatsächlich geändert werden muss.**
Zeile 713: Zeile 723:
 <code> <code>
 * *
-└── europe ++-- europe 
-    └── at ++-- at 
-        └── at-ost ++-- at-ost 
-            └── at-w++-- at-w
 </code> </code>
  
Zeile 728: Zeile 738:
  
 <code> <code>
-region put at-noe at-ost+region put at-noe
 </code> </code>
  
Zeile 737: Zeile 747:
 </code> </code>
  
-Die neuen Regions sollten bereits mit ''F'' angezeigt werden.+Die neuen Regions sollten bereits mit ''F'' angezeigt werden. Alle genannten Regions liegen direkt unter ''*''.
  
 Wenn alles korrekt ist: Wenn alles korrekt ist:
Zeile 759: Zeile 769:
 <code> <code>
 * *
-└── europe ++-- europe 
-    └── at ++-- at 
-        └── at-ost ++-- at-ost 
-            └── at-w++-- at-w
 </code> </code>
  
Zeile 768: Zeile 778:
  
 <code> <code>
-region put at-noe at-ost+region put at-noe
 </code> </code>
  
Zeile 806: Zeile 816:
 region save region save
 </code> </code>
 +
 +===== Flood Deny: Wann einsetzen und worauf achten? =====
 +
 +''region denyf NAME'' sperrt das Flooding fuer genau diese eine Public Region auf diesem Repeater. Die Region wird dadurch nicht geloescht, aber Flood-Pakete mit diesem Scope werden von diesem Repeater nicht mehr weitergeleitet. Andere Regions bleiben davon unberuehrt.
 +
 +Flood Deny sollte nur eingesetzt werden, wenn bewusst festgelegt werden soll, dass ein Repeater fuer einen bestimmten Scope **nicht** als Verteilpunkt dienen soll. Das kann beispielsweise bei einem klar abgegrenzten lokalen Repeater, bei unerwuenschter Ausbreitung eines bestimmten Scopes oder waehrend einer kontrollierten Umstellung sinnvoll sein.
 +
 +Nicht als erste Massnahme verwenden, nur weil zu viel Verkehr vermutet wird. Zuerst pruefen, ob die betroffene Region tatsaechlich benoetigt wird und ob die Scopes der verwendeten Channels korrekt gesetzt sind.
 +
 +Vor einem ''region denyf NAME'' immer:
 +
 +  * mit ''region'' den aktuellen Zustand ansehen;
 +  * genau pruefen, welche Public Region gesperrt werden soll;
 +  * sicherstellen, dass wichtige lokale, regionale und oesterreichweite Kommunikation nicht auf diese Region angewiesen ist;
 +  * bei Remote-Aenderungen pruefen, dass der Repeater danach weiterhin ueber einen anderen erlaubten Weg erreichbar ist;
 +  * beruecksichtigen, dass benachbarte Repeater die gesperrte Region eventuell weiterhin weiterleiten koennen.
 +
 +Sicherer Ablauf:
 +
 +<code>
 +region
 +region denyf at-w
 +region
 +</code>
 +
 +Erst die Ausgabe kontrollieren. Wenn die Wirkung wie gewuenscht ist, dauerhaft speichern:
 +
 +<code>
 +region save
 +</code>
 +
 +Falls die Sperre nicht gewuenscht war oder eine benoetigte Region dadurch fehlt:
 +
 +<code>
 +region allowf at-w
 +region save
 +</code>
 +
 +**Besonders wichtig:** ''region denyf *'' ist etwas anderes. Es betrifft nicht eine einzelne Region, sondern alle **ungescopten** Flood-Pakete. Dafuer gelten die besonderen Hinweise im folgenden Abschnitt.
  
 ===== Alle erlaubten oder gesperrten Regions anzeigen ===== ===== Alle erlaubten oder gesperrten Regions anzeigen =====
Zeile 828: Zeile 877:
 </code> </code>
  
-Child-Regions müssen zuerst entfernt werden.+Bei der hier empfohlenen flachen Konfiguration kann jede Region unabhängig entfernt werden. Eine Löschreihenfolge nach Parent-Child-Beziehungen ist nicht erforderlich.
  
 ===== Alle Regions neu aufbauen ===== ===== Alle Regions neu aufbauen =====
Zeile 846: Zeile 895:
 Befehl. Befehl.
  
-Soll die Regions-Struktur vollständig neu aufgebaut werden, müssen die bestehenden Regions von unten nach oben entfernt werden.+Soll die Regions-Konfiguration vollständig neu aufgebaut werden, werden die nicht mehr benötigten Regions einzeln entfernt.
  
-Beispiel:+Beispiel einer flachen Konfiguration:
  
 <code> <code>
-europe +
-└── at ++-- europe 
-    └── at-ost ++-- at 
-        ├── at-w ++-- at-ost 
-        └── at-noe++-- at-w 
 ++-- at-noe
 </code> </code>
  
Zeile 876: Zeile 926:
 prüfen. prüfen.
  
-Wenn nur noch ''*'' vorhanden ist, kann die neue Struktur angelegt werden.+Wenn nur noch ''*'' vorhanden ist, kann die neue flache Konfiguration angelegt werden.
  
 Am Ende: Am Ende:
Zeile 898: Zeile 948:
 Damit bestimmt der Default Scope vor allem, **wie weit der Repeater selbst im Mesh sichtbar wird** und wo andere Nodes eine Route zu ihm lernen können. Ein engerer Scope hält seine Adverts regional; ein breiterer Scope macht ihn über einen größeren Bereich sichtbar. Damit bestimmt der Default Scope vor allem, **wie weit der Repeater selbst im Mesh sichtbar wird** und wo andere Nodes eine Route zu ihm lernen können. Ein engerer Scope hält seine Adverts regional; ein breiterer Scope macht ihn über einen größeren Bereich sichtbar.
  
-**Er beeinflusst nicht**, welche fremden oder empfangenen Pakete der Repeater weiterleitet. Dafür sind weiterhin die Regions-Hierarchie und die Flood-Berechtigungen zuständig.+**Er beeinflusst nicht**, welche fremden oder empfangenen Pakete der Repeater weiterleitet. Dafür sind weiterhin die konfigurierten Regions und die Flood-Berechtigungen zuständig.
  
 Anzeigen: Anzeigen:
Zeile 924: Zeile 974:
 Ein Default Scope ist daher optional. Ohne Default Scope bleiben eigene Flood-Adverts ungescopt. Soll keine Standardregion gesetzt sein, kann der Wert leer bleiben oder mit ''region default null'' entfernt werden. Ein Default Scope ist daher optional. Ohne Default Scope bleiben eigene Flood-Adverts ungescopt. Soll keine Standardregion gesetzt sein, kann der Wert leer bleiben oder mit ''region default null'' entfernt werden.
  
-===== Flache Regionsdefinitionen mit region def =====+===== Regionsdefinitionen mit region def =====
  
 Fuer MeshCore Austria werden Regions flach definiert. Es gibt keine Parent-Child-Vererbung. Fuer MeshCore Austria werden Regions flach definiert. Es gibt keine Parent-Child-Vererbung.
Zeile 960: Zeile 1010:
 </code> </code>
  
-Beispiel:+''region load'' kann auch hierarchische Eingaben abbilden. Diese Möglichkeit wird in dieser Anleitung bewusst nicht verwendet, weil die österreichischen Beispiele flach unter ''*'' angelegt werden.
  
-<code> +Für die hier empfohlene flache Konfiguration ist ''region def'' mit ''|*'' nach jedem Regionsnamen die übersichtlichere und besser nachvollziehbare Variante.
-region load +
-europe F +
-  at +
-    at-ost +
-      at-w +
- +
-**Leerzeile** beendet die Eingabe! +
- +
-region save +
-</code> +
- +
-Bei ''region load'' kann das ''F'' explizit gesetzt werden. Child-Regions können die Flood-Einstellung des Parents übernehmen.+
  
 Der interaktive Aufruf von ''region load'' ohne Argument funktioniert nicht sinnvoll über die Remote-CLI. Der interaktive Aufruf von ''region load'' ohne Argument funktioniert nicht sinnvoll über die Remote-CLI.
Zeile 1001: Zeile 1039:
 <code> <code>
 region put europe region put europe
-region put at europe +region put at 
-region put at-ost at +region put at-ost 
-region put at-w at-ost+region put at-w
 </code> </code>
  
Zeile 1009: Zeile 1047:
  
 <code> <code>
-region put at-noe at-ost+region put at-noe
 </code> </code>
  
Zeile 1031: Zeile 1069:
  
 <code> <code>
-region put at-noe at-ost+region put at-noe
 region region
 region save region save
Zeile 1066: Zeile 1104:
  
   * benötigte Public Regions sind vorhanden   * benötigte Public Regions sind vorhanden
-  * Parent-Child-Struktur ist korrekt+  * die benötigten Regions sind flach und korrekt angelegt
   * benötigte Regions sind flood-allowed   * benötigte Regions sind flood-allowed
   * angrenzende Repeater unterstützen die benötigten Regions   * angrenzende Repeater unterstützen die benötigten Regions
Zeile 1104: Zeile 1142:
 ===== Empfohlene Repeater-Konfigurationen ===== ===== Empfohlene Repeater-Konfigurationen =====
  
-Die folgenden Beispiele sind bewusst minimal gehalten.+Die folgenden Beispiele sind bewusst minimal gehalten und verwenden keine technische Regionshierarchie. Jede Region wird direkt unter ''*'' definiert.
  
 Da ''region put'' neue Regions bereits flood-allowed anlegt, werden keine redundanten ''region allowf #...''-Befehle mehr verwendet. Da ''region put'' neue Regions bereits flood-allowed anlegt, werden keine redundanten ''region allowf #...''-Befehle mehr verwendet.
Zeile 1119: Zeile 1157:
  
 <code> <code>
-region put europe +region def europe|* at|* at-ost|* at-w|*
-region put at europe +
-region put at-ost at +
-region put at-w at-ost+
  
 region default at region default at
Zeile 1133: Zeile 1168:
  
 <code> <code>
-region def europe|* at|* at-ost|* at-noe|* at-bgld|*+region def europe|* at|* at-ost|* at-w|* at-noe|* at-bgld|*
 region region
 region save region save
Zeile 1152: Zeile 1187:
  
 <code> <code>
-region def europe|* at|* at-ost|* at-w|* at-bgld|*+region def europe|* at|* at-ost|* at-w|* at-noe|* at-bgld|*
 region region
 region save region save
Zeile 1171: Zeile 1206:
  
 <code> <code>
-region def europe|* at|* at-ost|* at-noe|* at-w|*+region def europe|* at|* at-ost|* at-w|* at-noe|* at-bgld|*
 region region
 region save region save
Zeile 1257: Zeile 1292:
 </code> </code>
  
-gemeinsamer Parent:+Optional kann zusätzlich die eigenständige Region:
  
 <code> <code>
 at-ost at-ost
 </code> </code>
 +
 +angelegt werden, wenn sie für einen verwendeten Scope benötigt wird. Sie ist kein gemeinsamer Parent der beiden lokalen Regions.
  
 ===== CLI-Kurzreferenz ===== ===== CLI-Kurzreferenz =====
Zeile 1271: Zeile 1308:
 </code> </code>
  
-Regions-Hierarchie:+Regions und Flood-Status:
  
 <code> <code>
Zeile 1280: Zeile 1317:
  
 <code> <code>
-region put #NAME #PARENT+region put NAME
 </code> </code>
  
Zeile 1333: Zeile 1370:
 </code> </code>
  
-Hierarchie kompakt anlegen:+Flache Regionsdefinition kompakt anlegen:
  
 <code> <code>
Zeile 1373: Zeile 1410:
 1. region 1. region
  
-2. bestehende Struktur verstehen+2. bestehende Regions und ihren Flood-Status prüfen
  
 3. nur fehlende Regions mit region put ergänzen 3. nur fehlende Regions mit region put ergänzen
Zeile 1413: Zeile 1450:
   * Nach Änderungen erneut ''region'' prüfen.   * Nach Änderungen erneut ''region'' prüfen.
   * Erst danach ''region save'' verwenden.   * Erst danach ''region save'' verwenden.
-  * Es gibt keinen eigenen ''region reset''-Befehl; für einen Neuaufbau werden Regions von unten nach oben mit ''region remove'' entfernt.+  * Es gibt keinen eigenen ''region reset''-Befehl; für einen Neuaufbau werden nicht mehr benötigte Regions mit ''region remove'' entfernt.
   * ''region load'' ohne Argument ist interaktiv und nicht für Remote-CLI geeignet.   * ''region load'' ohne Argument ist interaktiv und nicht für Remote-CLI geeignet.
  
Zeile 1443: Zeile 1480:
 <code> <code>
 region put europe region put europe
-region put at europe +region put at 
-region put at-ost at +region put at-ost 
-region put at-w at-ost+region put at-w
  
 region region
Zeile 1455: Zeile 1492:
 <code> <code>
 europe F europe F
-  at F +at F 
-    at-ost F +at-ost F 
-      at-w F+at-w F
 </code> </code>
  
  • regionen_und_scopes.1786988189.txt.gz
  • Zuletzt geändert: 2026/08/17 17:36
  • von bmke-a-2345-tdeck