Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| regionen_und_scopes [2026/08/16 16:43] – bmke-a-2345-tdeck | regionen_und_scopes [2026/08/17 19:09] (aktuell) – [Flache Regionsdefinitionen mit region def] bmke-a-2345-tdeck | ||
|---|---|---|---|
| Zeile 11: | Zeile 11: | ||
| * weniger Belastung weit entfernter Repeater | * weniger Belastung weit entfernter Repeater | ||
| * bessere Skalierbarkeit bei wachsender Teilnehmerzahl | * bessere Skalierbarkeit bei wachsender Teilnehmerzahl | ||
| + | |||
| + | '' | ||
| Die wichtigste Grundregel lautet: | Die wichtigste Grundregel lautet: | ||
| - | |||
| **So groß wie notwendig, aber so lokal wie sinnvoll.** | **So groß wie notwendig, aber so lokal wie sinnvoll.** | ||
| Zeile 19: | Zeile 20: | ||
| **Für Firmware 1.12 und neuer werden Public Regions in der MeshCore-GUI und in der Repeater-CLI ohne führendes ''#'' | **Für Firmware 1.12 und neuer werden Public Regions in der MeshCore-GUI und in der Repeater-CLI ohne führendes ''#'' | ||
| - | |||
| - | Die Firmware führt intern aus Gründen der Rückwärtskompatibilität weiterhin ein ''#'' | ||
| - | |||
| - | ^ Bedeutung ^ Richtige Schreibweise ^ Beispiel ^ | ||
| - | | Hashtag-Channel | mit ''#'' | ||
| - | | Scope | ohne ''#'' | ||
| - | | Public Region in der Repeater-CLI | ohne ''#'' | ||
| - | | ungescopte bzw. Null-Region | '' | ||
| - | |||
| - | Ein Channel und eine Region sind damit klar getrennt: ''# | ||
| - | |||
| - | **Hinweis für ältere Firmware:** Die Umstellung wurde mit Firmware 1.12 eingeführt. Bei einem Repeater mit älterer Firmware zuerst '' | ||
| ===== Das Prinzip in 30 Sekunden ===== | ===== Das Prinzip in 30 Sekunden ===== | ||
| Zeile 89: | Zeile 78: | ||
| ist ''# | ist ''# | ||
| - | **Alle CLI-Beispiele verwenden die aktuelle Schreibweise ohne ''#'' | ||
| ===== Channel und Scope sind nicht dasselbe ===== | ===== Channel und Scope sind nicht dasselbe ===== | ||
| Zeile 126: | Zeile 114: | ||
| ===== Was ist eine Region? ===== | ===== Was ist eine Region? ===== | ||
| - | Eine Region ist eine hierarchisch | + | Eine Region ist eine organisierte geografische Kennzeichnung. |
| Auf einem Repeater können beispielsweise folgende Public Regions hinterlegt sein: | Auf einem Repeater können beispielsweise folgende Public Regions hinterlegt sein: | ||
| Zeile 148: | Zeile 136: | ||
| </ | </ | ||
| - | zeigt die Regions-Hierarchie | + | zeigt die konfigurierten |
| - | Beispielsweise: | + | Bei der hier empfohlenen flachen Konfiguration sieht die Ausgabe beispielsweise so aus: |
| < | < | ||
| *^ F | *^ F | ||
| europe F | europe F | ||
| - | | + | at F |
| - | at-ost F | + | at-ost F |
| - | at-w F | + | at-w F |
| </ | </ | ||
| Zeile 169: | Zeile 157: | ||
| < | < | ||
| - | region put at-w at-ost | + | region put at-w |
| </ | </ | ||
| Zeile 206: | Zeile 194: | ||
| at-w | at-w | ||
| </ | </ | ||
| - | |||
| - | Wir lassen das ''#'' | ||
| ===== Was bedeutet * ? ===== | ===== Was bedeutet * ? ===== | ||
| Zeile 270: | Zeile 256: | ||
| **Zuerst '' | **Zuerst '' | ||
| + | |||
| + | ===== 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 ''# | ||
| + | - 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 ('' | ||
| + | - 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 '' | ||
| + | |||
| + | 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 '' | ||
| + | |||
| + | Damit ein Scope in der Praxis funktioniert, | ||
| + | |||
| + | Für die Auswahl gilt als einfache Orientierung: | ||
| + | |||
| + | * lokaler Channel: möglichst den lokalen Scope verwenden, zum Beispiel '' | ||
| + | * Kommunikation über mehrere Bundesländer: | ||
| + | * österreichweite Kommunikation: | ||
| + | * ungescopte Kommunikation nur dort verwenden, wo sie ausdrücklich gewünscht und von '' | ||
| ===== Warum brauchen wir Scopes? ===== | ===== Warum brauchen wir Scopes? ===== | ||
| Zeile 299: | 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 | + | ===== Unsere österreichische |
| - | Zur besseren Lesbarkeit zeigen wir zunächst | + | {{: |
| + | |||
| + | Für MeshCore Austria werden | ||
| < | < | ||
| - | GLOBAL / UNSCOPED | ||
| * | * | ||
| | | | | ||
| +-- europe | +-- europe | ||
| - | | | + | +-- at |
| - | | + | +-- at-ost |
| - | | | + | +-- at-sued |
| - | +-- at-ost | + | +-- at-west |
| - | | | | + | +-- at-w |
| - | | + | +-- at-noe |
| - | | +-- at-noe | + | +-- at-bgld |
| - | | +-- at-bgld | + | +-- at-stmk |
| - | | | + | +-- at-ktn |
| - | | + | +-- at-ooe |
| - | | + | +-- at-sbg |
| - | | +-- at-stmk | + | +-- at-t |
| - | | +-- at-ktn | + | +-- at-vbg |
| - | | | + | |
| - | +-- at-west | + | |
| - | | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| </ | </ | ||
| - | Die tatsächlichen | + | Die Namen folgen weiterhin einer verständlichen geografischen Namenslogik. Beispielsweise steht '' |
| + | |||
| + | Die Public Regions auf dem Repeater lauten: | ||
| < | < | ||
| Zeile 353: | Zeile 361: | ||
| </ | </ | ||
| - | ===== Ebenen | + | ===== Namensgruppen |
| + | |||
| + | Die folgenden Gruppen dienen nur der Orientierung. Sie sind keine technischen Ebenen und bewirken keine Vererbung. | ||
| ==== Global / unscoped ==== | ==== Global / unscoped ==== | ||
| Zeile 403: | Zeile 413: | ||
| </ | </ | ||
| - | bzw. auf dem Repeater: | + | Diese Namen können für größere österreichische Bereiche verwendet werden. Sie sind technisch eigenständige Regions direkt unter '' |
| - | + | ||
| - | < | + | |
| - | at-ost | + | |
| - | at-sued | + | |
| - | at-west | + | |
| - | </ | + | |
| ==== Bundesländer ==== | ==== Bundesländer ==== | ||
| Zeile 623: | 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: |
| < | < | ||
| - | region put at europe | + | region put at |
| - | region put at-ost | + | region put at-ost |
| - | region put at-w at-ost | + | region put at-w |
| </ | </ | ||
| Zeile 647: | Zeile 651: | ||
| </ | </ | ||
| - | zeigt, dass Flooding gesperrt ist. | + | zeigt, dass Flooding gesperrt ist. Daran zu erkennen, das nach der jeweiligen Region kein " |
| Dann: | Dann: | ||
| Zeile 709: | Zeile 713: | ||
| </ | </ | ||
| - | Das zeigt die bestehende | + | Das zeigt die bestehenden |
| **Nur ändern, was tatsächlich geändert werden muss.** | **Nur ändern, was tatsächlich geändert werden muss.** | ||
| Zeile 719: | Zeile 723: | ||
| < | < | ||
| * | * | ||
| - | └── | + | +-- europe |
| - | | + | +-- at |
| - | | + | +-- at-ost |
| - | | + | +-- at-w |
| </ | </ | ||
| Zeile 728: | Zeile 732: | ||
| < | < | ||
| - | region def europe at at-ost at-w | + | region def europe|* at|* at-ost|* at-w|* |
| </ | </ | ||
| Zeile 734: | Zeile 738: | ||
| < | < | ||
| - | region put at-noe | + | region put at-noe |
| </ | </ | ||
| Zeile 743: | Zeile 747: | ||
| </ | </ | ||
| - | Die neuen Regions sollten bereits mit '' | + | Die neuen Regions sollten bereits mit '' |
| Wenn alles korrekt ist: | Wenn alles korrekt ist: | ||
| Zeile 765: | Zeile 769: | ||
| < | < | ||
| * | * | ||
| - | └── | + | +-- europe |
| - | | + | +-- at |
| - | | + | +-- at-ost |
| - | | + | +-- at-w |
| </ | </ | ||
| Zeile 774: | Zeile 778: | ||
| < | < | ||
| - | region put at-noe | + | region put at-noe |
| </ | </ | ||
| Zeile 812: | Zeile 816: | ||
| region save | region save | ||
| </ | </ | ||
| + | |||
| + | ===== Flood Deny: Wann einsetzen und worauf achten? ===== | ||
| + | |||
| + | '' | ||
| + | |||
| + | 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 '' | ||
| + | |||
| + | * mit '' | ||
| + | * genau pruefen, welche Public Region gesperrt werden soll; | ||
| + | * sicherstellen, | ||
| + | * bei Remote-Aenderungen pruefen, dass der Repeater danach weiterhin ueber einen anderen erlaubten Weg erreichbar ist; | ||
| + | * beruecksichtigen, | ||
| + | |||
| + | Sicherer Ablauf: | ||
| + | |||
| + | < | ||
| + | region | ||
| + | region denyf at-w | ||
| + | region | ||
| + | </ | ||
| + | |||
| + | Erst die Ausgabe kontrollieren. Wenn die Wirkung wie gewuenscht ist, dauerhaft speichern: | ||
| + | |||
| + | < | ||
| + | region save | ||
| + | </ | ||
| + | |||
| + | Falls die Sperre nicht gewuenscht war oder eine benoetigte Region dadurch fehlt: | ||
| + | |||
| + | < | ||
| + | region allowf at-w | ||
| + | region save | ||
| + | </ | ||
| + | |||
| + | **Besonders wichtig:** '' | ||
| ===== Alle erlaubten oder gesperrten Regions anzeigen ===== | ===== Alle erlaubten oder gesperrten Regions anzeigen ===== | ||
| Zeile 834: | Zeile 877: | ||
| </ | </ | ||
| - | Child-Regions müssen zuerst | + | Bei der hier empfohlenen flachen Konfiguration kann jede Region unabhängig |
| ===== Alle Regions neu aufbauen ===== | ===== Alle Regions neu aufbauen ===== | ||
| Zeile 852: | Zeile 895: | ||
| Befehl. | Befehl. | ||
| - | Soll die Regions-Struktur | + | Soll die Regions-Konfiguration |
| - | Beispiel: | + | Beispiel |
| < | < | ||
| - | europe | + | * |
| - | └── | + | +-- europe |
| - | | + | +-- at |
| - | | + | +-- at-ost |
| - | | + | +-- at-w |
| + | +-- at-noe | ||
| </ | </ | ||
| Zeile 882: | Zeile 926: | ||
| prüfen. | prüfen. | ||
| - | Wenn nur noch '' | + | Wenn nur noch '' |
| Am Ende: | Am Ende: | ||
| Zeile 904: | 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 | + | **Er beeinflusst nicht**, welche fremden oder empfangenen Pakete der Repeater weiterleitet. Dafür sind weiterhin die konfigurierten |
| Anzeigen: | Anzeigen: | ||
| Zeile 921: | Zeile 965: | ||
| < | < | ||
| - | region default null; | + | region default null |
| </ | </ | ||
| Zeile 930: | 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 '' | 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 '' | ||
| - | ===== Schnellkonfiguration | + | ===== Regionsdefinitionen |
| + | |||
| + | Fuer MeshCore Austria werden Regions flach definiert. Es gibt keine Parent-Child-Vererbung. | ||
| - | '' | + | Die Regel ist verbindlich: |
| - | Für einen neuen Wiener Repeater: | + | Beispiel fuer Wien mit Burgenland: |
| < | < | ||
| - | region def europe at at-ost at-w | + | region def europe|* at|* at-ost|* at-w|* at-bgld|* |
| region | region | ||
| region save | region save | ||
| </ | </ | ||
| - | Das entspricht diesen vier '' | + | Alle Regions in diesem Beispiel liegen direkt unter '' |
| - | Mehrere Child-Regions in einem Ast: | + | Eine Region ergaenzen: |
| < | < | ||
| - | region def europe at at-ost at-w|at-ost | + | region def at-noe|* |
| region | region | ||
| region save | region save | ||
| </ | </ | ||
| - | Dabei wird '' | + | Neue Regions aus '' |
| - | **Wichtig bei bestehenden Regions:** '' | + | Bei bestehenden Regions |
| - | + | ||
| - | Eine Repeater-Zeile ist auf 160 Zeichen begrenzt. Für größere Bäume mehrere '' | + | |
| ===== region load ===== | ===== region load ===== | ||
| Zeile 966: | Zeile 1010: | ||
| </ | </ | ||
| - | Beispiel: | + | '' |
| - | + | ||
| - | < | + | |
| - | region load | + | |
| - | europe F | + | |
| - | at | + | |
| - | at-ost | + | |
| - | at-w | + | |
| - | + | ||
| - | & | + | |
| - | + | ||
| - | region save | + | |
| - | </ | + | |
| - | Bei '' | + | Für die hier empfohlene flache Konfiguration ist '' |
| Der interaktive Aufruf von '' | Der interaktive Aufruf von '' | ||
| Zeile 1007: | Zeile 1039: | ||
| < | < | ||
| region put europe | region put europe | ||
| - | region put at europe | + | region put at |
| - | region put at-ost | + | region put at-ost |
| - | region put at-w at-ost | + | region put at-w |
| </ | </ | ||
| Zeile 1015: | Zeile 1047: | ||
| < | < | ||
| - | region put at-noe | + | region put at-noe |
| </ | </ | ||
| Zeile 1037: | Zeile 1069: | ||
| < | < | ||
| - | region put at-noe | + | region put at-noe |
| region | region | ||
| region save | region save | ||
| Zeile 1072: | 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 |
| * 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 1110: | Zeile 1142: | ||
| ===== Empfohlene Repeater-Konfigurationen ===== | ===== Empfohlene Repeater-Konfigurationen ===== | ||
| - | Die folgenden Beispiele sind bewusst minimal gehalten. | + | Die folgenden Beispiele sind bewusst minimal gehalten |
| Da '' | Da '' | ||
| Zeile 1125: | Zeile 1157: | ||
| < | < | ||
| - | region | + | region |
| - | region put at europe | + | |
| - | region put at-ost | + | |
| - | region put at-w at-ost | + | |
| region default at | region default at | ||
| Zeile 1139: | Zeile 1168: | ||
| < | < | ||
| - | region def europe at at-ost at-noe|at-ost at-bgld | + | region def europe|* at|* at-ost|* at-w|* at-noe|* at-bgld|* |
| region | region | ||
| region save | region save | ||
| Zeile 1147: | Zeile 1176: | ||
| < | < | ||
| - | region def europe at at-ost at-noe | + | region def europe|* at|* at-ost|* at-noe|* |
| region default at | region default at | ||
| Zeile 1158: | Zeile 1187: | ||
| < | < | ||
| - | region def europe at at-ost at-w|at-ost at-bgld | + | region def europe|* at|* at-ost|* at-w|* at-noe|* at-bgld|* |
| region | region | ||
| region save | region save | ||
| Zeile 1166: | Zeile 1195: | ||
| < | < | ||
| - | region def europe at at-ost at-bgld | + | region def europe|* at|* at-ost|* at-bgld|* |
| region default at | region default at | ||
| Zeile 1177: | Zeile 1206: | ||
| < | < | ||
| - | region def europe at at-ost at-noe|at-ost at-w | + | region def europe|* at|* at-ost|* at-w|* at-noe|* at-bgld|* |
| region | region | ||
| region save | region save | ||
| Zeile 1185: | Zeile 1214: | ||
| < | < | ||
| - | region def europe at at-sued at-stmk | + | region def europe|* at|* at-sued|* at-stmk|* |
| region default at | region default at | ||
| Zeile 1196: | Zeile 1225: | ||
| < | < | ||
| - | region def europe at at-sued at-ktn | + | region def europe|* at|* at-sued|* at-ktn|* |
| region default at | region default at | ||
| Zeile 1207: | Zeile 1236: | ||
| < | < | ||
| - | region def europe at at-west at-ooe | + | region def europe|* at|* at-west|* at-ooe|* |
| region default at | region default at | ||
| Zeile 1218: | Zeile 1247: | ||
| < | < | ||
| - | region def europe at at-west at-sbg | + | region def europe|* at|* at-west|* at-sbg|* |
| region default at | region default at | ||
| Zeile 1229: | Zeile 1258: | ||
| < | < | ||
| - | region def europe at at-west at-t | + | region def europe|* at|* at-west|* at-t|* |
| region default at | region default at | ||
| Zeile 1240: | Zeile 1269: | ||
| < | < | ||
| - | region def europe at at-west at-vbg | + | region def europe|* at|* at-west|* at-vbg|* |
| region default at | region default at | ||
| Zeile 1263: | Zeile 1292: | ||
| </ | </ | ||
| - | gemeinsamer Parent: | + | Optional kann zusätzlich die eigenständige Region: |
| < | < | ||
| at-ost | at-ost | ||
| </ | </ | ||
| + | |||
| + | 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 1277: | Zeile 1308: | ||
| </ | </ | ||
| - | Regions-Hierarchie: | + | Regions |
| < | < | ||
| Zeile 1286: | Zeile 1317: | ||
| < | < | ||
| - | region put #NAME #PARENT | + | region put NAME |
| </ | </ | ||
| Zeile 1339: | Zeile 1370: | ||
| </ | </ | ||
| - | Hierarchie | + | Flache Regionsdefinition |
| < | < | ||
| - | region def europe at at-ost at-w | + | region def europe|* at|* at-ost|* at-w|* |
| </ | </ | ||
| Zeile 1379: | Zeile 1410: | ||
| 1. region | 1. region | ||
| - | 2. bestehende | + | 2. bestehende |
| 3. nur fehlende Regions mit region put ergänzen | 3. nur fehlende Regions mit region put ergänzen | ||
| Zeile 1396: | Zeile 1427: | ||
| ===== Die wichtigsten Regeln ===== | ===== Die wichtigsten Regeln ===== | ||
| - | * '' | + | * '' |
| Companion: | Companion: | ||
| Zeile 1407: | Zeile 1438: | ||
| Repeater bzw. Repeater Admin Konfiguration im Companion Remote, oder über Serial: | Repeater bzw. Repeater Admin Konfiguration im Companion Remote, oder über Serial: | ||
| - | * Die tatsächliche | + | * Die Public Region dazu heißt '' |
| - | * In echten CLI-Befehlen verwenden wir bei Public Regions das ''# | + | |
| * Die '' | * Die '' | ||
| * '' | * '' | ||
| - | * **'' | + | * **'' |
| * Deshalb sind zusätzliche '' | * Deshalb sind zusätzliche '' | ||
| * '' | * '' | ||
| Zeile 1420: | Zeile 1450: | ||
| * Nach Änderungen erneut '' | * Nach Änderungen erneut '' | ||
| * Erst danach '' | * Erst danach '' | ||
| - | * Es gibt keinen eigenen '' | + | * Es gibt keinen eigenen '' |
| * '' | * '' | ||
| Zeile 1450: | Zeile 1480: | ||
| < | < | ||
| region put europe | region put europe | ||
| - | region put at europe | + | region put at |
| - | region put at-ost | + | region put at-ost |
| - | region put at-w at-ost | + | region put at-w |
| region | region | ||
| Zeile 1462: | Zeile 1492: | ||
| < | < | ||
| europe F | europe F | ||
| - | | + | at F |
| - | at-ost F | + | at-ost F |
| - | at-w F | + | at-w F |
| </ | </ | ||