Chappe 05 · Politique des relais
Politique des relais
Ce qu'il faut savoir avant d'installer un relais : paramètres radio, régions, choix du site, matériel, sécurité, temps d'antenne et cadre juridique. Cent trente-deux recommandations, classées par niveau. Quatre classes de relais, de la liaison nationale au confort local.
Cartouche
| Référence | POL-CHP05-REL-2026-001 |
| Version | 1.8 |
| Statut | Version de travail consolidée, ouverte aux remarques |
| Auteur | Und3r_1337, opérateur et administrateur Chappe 05 |
| Création | 10 août 2026 |
| Dernière révision | 15 septembre 2026 |
| Classification | Public |
| Périmètre | Relais et répéteurs du réseau Chappe 05, cadre juridique de l'exploitation |
Suivi des révisions
| Version | Date | Objet |
|---|---|---|
| 1.8 | 2026-09-15 | Classe 0, échelle d'annonce alignée sur le niveau desservi, une classe par niveau |
| 1.7 | 2026-09-15 | Correction de la région par défaut : elle ne règle que la portée des annonces, et se choisit selon la classe |
| 1.6 | 2026-09-15 | Classes de relais, mécanique du routage, nomades et chemins périmés, alignement sur le flasheur et le référentiel des commandes |
| 1.5 | 2026-08-17 | Antennes directionnelles, plafond de puissance rayonnée |
| 1.4 | 2026-08-10 | Cadre juridique et savoir-vivre |
| 1.3 | 2026-08-10 | Calcul du temps à l'antenne, chiffres de référence |
| 1.2 | 2026-08-10 | Relecture croisée, refonte de la coordination |
| 1.1 | 2026-08-10 | Alignement sur la convention française des régions |
| 1.0 | 2026-08-10 | Paramètres avancés, annexes de configuration |
| 0.1 | 2026-08-10 | Création |
Documents liés
| Référence | Objet |
|---|---|
| DAT-CHP05-2026-001 | Dossier d'architecture technique |
| PRC-CHP05-2026-001 | Protocole de campagne de mesures |
| POL-CHP05-MSG-2026-001 | Politique des canaux et des messages. Modèle des canaux, dérivation des clés hashtag, portée, rediffusion de bulletins |
| REF-CHP05-CMD-2026-001 | Référentiel des commandes MeshCore. Relevé exhaustif de la console du rôle répéteur, bornes lues dans le code source |
| outil | Flasheur et configurateur en ligne, chappe05.fr/flasher/. Applique les profils de classe décrits en 4.5 |
| à venir | Politique des terminaux |
Avant-propos
Ce document s'adresse à quiconque héberge ou envisage d'héberger un relais sur le réseau Chappe 05.
Il n'est pas opposable. Sur un réseau ouvert, personne ne peut imposer quoi que ce soit à personne, et c'est voulu. Ce qui fonctionne, c'est un accord explicite entre opérateurs, écrit avant que le réseau grossisse.
Chacun reste libre de ses choix sur son propre matériel. Le rôle de ce document est de recommander, pas de contraindre.
Trois choses à savoir d'emblée
Aucun filtrage par identité n'existe. Ni liste noire, ni liste blanche, ni canal en lecture seule. La demande a été formulée sur le dépôt MeshCore dès avril 2025, elle n'est pas implémentée à ce jour.
Ce qui protège le réseau, c'est la discipline collective. Concrètement : ce document et celui consacré aux canaux, le format convenu des messages, l'identité reconnaissable des émetteurs, et le rapport cyclique qui limite naturellement les abus.
Un relais mal réglé nuit plus qu'un relais absent. Il consomme le temps d'antenne de tout le monde, et un seul répéteur au firmware modifié suffit à provoquer une tempête de paquets répétés jusqu'à 64 sauts.
Niveaux de recommandation
| Niveau | Sens |
|---|---|
| Impératif | Contrainte réglementaire, ou risque de nuire au réseau |
| Recommandé | Bonne pratique établie, écart à justifier |
| Conseillé | Confort d'exploitation, à la discrétion de l'opérateur |
1. Définitions
Les termes qui reviennent dans ce document, et qu'il vaut mieux ne pas confondre.
1.1 Rôles MeshCore
Un appareil MeshCore ne porte qu'un rôle à la fois. C'est une contrainte structurante, souvent découverte trop tard.
| Terme | Définition |
|---|---|
| Repeater | Seul rôle qui retransmet les paquets. C'est l'infrastructure du réseau. |
| Room server | Salon persistant, conserve les messages pour les distribuer plus tard. Ne retransmet pas. |
| Companion | Terminal ou passerelle série. Ne retransmet pas. |
1.2 Termes radio
PAR, puissance apparente rayonnée. Puissance réellement émise dans l'espace, antenne comprise :
PAR = puissance conduite + gain d'antenne − pertes de câble
Le plafond réglementaire porte sur cette valeur, pas sur la sortie du module.
Rapport cyclique, ou duty cycle. Proportion du temps pendant laquelle un émetteur peut occuper une sous-bande, sur une fenêtre glissante d'une heure.
La sous-bande 869,4 à 869,65 MHz est la sous-bande P au sens de la norme ETSI EN 300 220-2, correspondant à l'annexe g3 de la recommandation ERC 70-03 de la CEPT. Elle autorise 500 mW PAR et 10 % de rapport cyclique, soit six minutes d'émission par heure, cumulées.
C'est la sous-bande la plus généreuse de la bande 863-870 MHz : les autres plafonnent à 25 mW et 0,1 à 1 %. C'est ce qui la rend intéressante pour un réseau maillé, et ce qui explique le choix de 869,618 MHz.
En France, la transposition relève de l'ANFR et de l'ARCEP. La référence à citer est ERC/REC 70-03, annexe g3.
Zone de Fresnel. Volume ellipsoïdal autour de la ligne de vue directe entre deux antennes. Une partie significative de l'énergie y transite : une ligne de vue dégagée ne suffit pas, il faut aussi que ce volume soit libre.
Le rayon de la première zone de Fresnel à mi-parcours, à 869 MHz :
r = 8,657 × √(d / f) d en km, f en GHz, r en mètres
r ≈ 9,29 × √(d) à 869 MHz
| Distance | Rayon à mi-parcours |
|---|---|
| 5 km | ~21 m |
| 10 km | ~29 m |
| 15 km | ~36 m |
| 20 km | ~42 m |
Un dégagement de 60 % de ce rayon est généralement considéré comme suffisant. S'y ajoute la courbure terrestre, sensible au-delà de 10 km.
1.3 Termes de routage
| Terme | Définition |
|---|---|
| Advert | Annonce périodique d'un nœud, porte son identité et éventuellement sa position |
| path_len | Octet de chemin d'un paquet. Ses six bits de poids faible donnent le nombre de sauts, 0 signifiant liaison directe. Ses deux bits de poids fort donnent la taille des empreintes de chemin, moins un : un nœud en empreintes de 2 octets annonce donc 64 pour une liaison directe. La valeur 255 désigne une route directe, sans information de chemin |
| Hash de chemin | Empreinte que chaque répéteur ajoute au paquet qu'il relaie, pour tracer le trajet parcouru. Taille de 1 à 3 octets, voir 2.4 |
| Inondation, ou flood | Mode de propagation par défaut. Chaque répéteur qui entend un paquet le retransmet exactement une fois, sans savoir où se trouve le destinataire. Le paquet se propage donc dans toutes les directions à la fois, en s'arrêtant quand plus aucun répéteur ne l'entend pour la première fois |
| Routage direct | Une fois un chemin connu, le paquet le suit de saut en saut. Chaque répéteur vérifie s'il est le prochain sur le chemin, se retire de la liste et transmet. Bien moins coûteux que l'inondation |
| Région, ou scope | Étiquette de portée. Un répéteur ne relaie que ce dont il porte l'étiquette |
Pourquoi l'inondation coûte cher. C'est le mécanisme qui permet de joindre quelqu'un dont on ignore la position, et c'est ce qui rend le réseau utilisable sans configuration. Mais chaque répéteur qui entend le paquet le réémet : le coût d'un message croît avec le nombre de relais qui se chevauchent, pas avec la distance parcourue.
Les messages de canal sont toujours diffusés par inondation. Il n'existe pas de routage direct pour eux, puisqu'il n'y a pas de destinataire unique. C'est ce qui rend la discipline de portée déterminante.
1.4 Les classes de relais
Tous les relais ne jouent pas le même rôle. Un point haut qui porte une liaison de trente kilomètres et un répéteur de fond de vallée qui dessert trois hameaux n'ont ni la même charge, ni les mêmes voisins, ni le même coût d'erreur. Les régler de la même manière conduit soit à brider le premier, soit à laisser le second réémettre tout ce qu'il entend.
Le réseau distingue donc quatre classes. C'est une classification de fonction, pas de matériel : un même boîtier peut changer de classe s'il change de site.
| Classe | Rôle | Ce qui la caractérise |
|---|---|---|
| 0 | National | Relie des régions entre elles. Aucun n'est posé à ce jour : la classe est définie pour que la convention tienne à l'échelle du pays |
| 1 | Backbone, longues liaisons | Relie des bassins entre eux. Peu de voisins, mais chaque liaison est structurante. Sa perte coupe une partie du réseau du reste |
| 2 | Bassin, desserte | Couvre une vallée, une commune, un versant. Plusieurs voisins de même classe, trafic local dominant |
| 3 | Confort local | Comble un trou de couverture : un quartier, un creux, une façade de vallée. Sa perte se remarque à peine au-delà de sa zone |
Comment situer un relais. Quatre questions, dans cet ordre.
| Question | Si oui |
|---|---|
| Porte-t-il une liaison entre deux régions ? | Classe 0 |
| Sa disparition couperait-elle un bassin entier du reste du réseau ? | Classe 1 |
| Est-il le point de rassemblement du trafic d'une zone habitée ? | Classe 2 |
| Sert-il surtout à rattraper une zone d'ombre déjà couverte par ailleurs ? | Classe 3 |
Un relais de classe 1 se mérite. Il suppose un site dégagé, une alimentation fiable, une supervision réelle et un opérateur joignable. Se déclarer classe 1 sans ces quatre conditions crée une dépendance que rien ne soutient. Dans le doute, déclarer la classe inférieure : un relais qui rend plus que promis ne gêne personne.
Ce que la classe change en pratique : l'échelle à laquelle le relais s'annonce, les plafonds de sauts, la politique de filtrage par type de paquet, la priorité relative des types et la part de temps d'antenne qui leur est allouée. La grille complète est en 4.5, et le flasheur l'applique en un clic.
2. Paramètres radio
Communs à l'ensemble du réseau français. Un seul chiffre différent et l'appareil n'entendra personne.
| Paramètre | Valeur |
|---|---|
| Preset | EU/UK Narrow |
| Fréquence | 869,618 MHz |
| Bande passante | 62,5 kHz |
| Facteur d'étalement | SF8 |
| Taux de codage | CR8 |
| Puissance | ≤ 27 dBm PAR |
2.1 Pourquoi cette fréquence
La bande étroite permet de se placer sur 869,618 MHz, plus haut dans la sous-bande et nettement moins encombrée que la fondamentale 869,525 MHz où émettent les équipements industriels.
Un preset large ramènerait sur cette fondamentale par effet de largeur de canal.
2.2 Recommandations sur les paramètres radio
| Réf | Recommandation | Niveau |
|---|---|---|
| R-RF-01 | Appliquer le preset nommé EU/UK Narrow plutôt que de saisir les quatre valeurs à la main | Recommandé |
| R-RF-02 | Vérifier la fréquence après application du preset : certains presets régionaux se calent sur une autre valeur de la sous-bande | Impératif |
| R-RF-03 | Ne jamais dépasser 27 dBm de PAR, antenne et pertes comprises | Impératif |
| R-RF-04 | Régler le rapport cyclique à 10 % : set dutycycle 10. Le défaut d'usine est 50 %, il ne convient pas |
Impératif |
| R-RF-05 | Écarter les modules à amplificateur de puissance, sans usage légal en France et source de déséquilibre entre émission et réception | Recommandé |
| R-RF-06 | Vérifier la puissance rayonnée avec un calculateur de pertes avant mise en service | Recommandé |
| R-RF-07 | Régler path.hash.mode 1 sur tout répéteur en firmware 1.14 ou supérieur : cela améliore la lisibilité du réseau sans inconvénient |
Recommandé |
| R-RF-08 | Ne passer les companions en 2 octets qu'une fois la majorité des répéteurs de la zone en 1.14 ou supérieur : les anciens abandonnent ces paquets silencieusement | Impératif |
| R-RF-09 | Vérifier la version de firmware des répéteurs dont on dépend avant tout changement de taille de hash | Recommandé |
2.3 Sur les amplificateurs
Un module 30 dBm devra être bridé en permanence, avec le risque d'un mauvais réglage.
Et il crée un déséquilibre : les correspondants vous reçoivent, croient être connectés, mais leurs paquets ne remontent pas. Un relais qui émet fort sans entendre mieux dégrade l'expérience de ceux qui l'entourent.
2.4 Deux réglages qui prêtent à confusion
Ces deux paramètres apparaissent dans les configurations partagées entre opérateurs, souvent sans explication.
path.hash.mode
C'est un numéro de mode, pas une taille en octets. C'est la source de confusion la plus fréquente.
| Valeur | Taille du hash dans les adverts |
|---|---|
0 |
1 octet, valeur par défaut |
1 |
2 octets |
2 |
3 octets |
À quoi sert le hash de chemin. Quand un paquet traverse le réseau, chaque répéteur y inscrit une empreinte courte qui l'identifie. C'est ce qui construit le chemin, et ce qui permet ensuite le routage direct.
Pourquoi la taille compte. Sur un octet, il n'existe que 256 identifiants possibles. Au-delà de quelques dizaines de répéteurs dans une zone, deux d'entre eux partagent le même, et les outils d'analyse ne peuvent plus les distinguer. Sur deux octets, on passe à 65 536.
Ce que ce réglage contrôle, et surtout ce qu'il ne contrôle pas.
Il ne concerne que les adverts émis par le répéteur lui-même. Un répéteur en firmware 1.14 ou supérieur relaie les trois tailles, quelle que soit sa propre valeur.
La taille des messages est décidée par l'émetteur d'origine, c'est-à-dire l'application companion. Elle se règle dans l'application, sous Experimental Settings.
Le piège, et il est sérieux. Les répéteurs en firmware antérieur à 1.14 abandonnent silencieusement les paquets en 2 et 3 octets. Pas d'erreur, pas d'accusé négatif, le message disparaît.
Il ne faut donc passer ses companions en 2 octets qu'une fois la grande majorité des répéteurs de la zone à jour. Un seul répéteur ancien sur un trajet suffit à couper la liaison.
Position Chappe 05 : path.hash.mode 1 sur les répéteurs, ce qui n'a aucun inconvénient et améliore la lisibilité du réseau pour les outils d'analyse. Sur les companions, rester en 1 octet tant que l'état du parc régional n'est pas connu.
multi.acks
Active ou désactive les accusés de réception multiples.
set multi.acks {0|1}
Sans cette fonction, un accusé de réception unique remonte vers l'émetteur. Avec elle, plusieurs répéteurs peuvent en émettre, ce qui améliore la probabilité que l'émetteur sache que son message est parti.
Ce que cela coûte : des paquets supplémentaires, donc du temps d'antenne. Sur un réseau chargé, c'est une dépense à peser.
Position Chappe 05 : multi.acks 1, conformément à l'usage des opérateurs voisins. À réévaluer si le réseau se densifie, la fiabilité perçue ne justifiant plus alors le surcoût.
3. Régions
3.1 Le mécanisme
Une région est une étiquette de portée géographique, pas une notion administrative française. Le nom peut prêter à confusion.
Deux acteurs, deux rôles distincts.
| Acteur | Ce qu'il fait |
|---|---|
| Le répéteur | déclare la liste des régions où il se trouve |
| L'émetteur | tague son canal avec la région jusqu'où le message doit aller |
Un répéteur relaie un message si et seulement si l'étiquette du message figure dans sa liste.
Ce sont les compagnons qui portent les canaux, pas les répéteurs. Un répéteur n'a aucun canal : il transporte des paquets sans les lire.
3.2 La région *
Créée par défaut sur tout répéteur, elle signifie : relaie tous les messages qui n'ont aucune région associée.
C'est elle qui fait fonctionner le réseau pendant la transition. Sans elle, quiconque n'a pas encore configuré ses canaux serait coupé sans comprendre pourquoi.
Conséquence importante et contre-intuitive : le trafic non tagué va plus loin que le trafic tagué. Il n'est arrêté par aucune frontière de région.
3.3 Les trois réglages
| Commande | Effet |
|---|---|
region put <nom> |
ce que le répéteur relaie, une ligne par étiquette |
region default <nom> |
portée des paquets qu'il émet de sa propre initiative. Sur un répéteur, cela se réduit à ses annonces : une réponse reprend la portée de la demande. Voir 3.7 |
region home <nom> |
information de localisation, sans effet fonctionnel |
L'imbrication de régions existe dans le firmware, mais elle est purement cosmétique à ce jour. Déclarer fr-05 comme enfant de fr-pac ne produit aucun héritage : chaque étiquette doit être portée explicitement.
3.4 La convention française
Principe de la peau d'oignon. Un répéteur déclare toutes les échelles géographiques où il se trouve, de la plus large à la plus fine.
| Niveau | Code | Source |
|---|---|---|
| Europe | eu |
usage international établi |
| Pays | fr |
ISO 3166-1 alpha-2 |
| Région | fr-pac |
ISO 3166-2 |
| Département | fr-05 |
ISO 3166-2 |
| Commune | fr-05-061-gap |
code INSEE de la commune, puis toponyme abrégé |
Pour un relais situé à Gap, la liste complète est donc :
eu
fr
fr-pac
fr-05
fr-05-061-gap
Sur le niveau communal. Il n'existe aucune norme ISO pour les communes françaises. Le code INSEE, lui, est bijectif : une commune, un code, sans ambiguïté. Le code postal ne l'est pas, 05100 désignant huit communes, et ne convient donc pas. La forme retenue reprend le code INSEE découpé en département et rang communal, 05 + 061 pour Gap, suivi du toponyme abrégé pour rester lisible à l'œil.
Le toponyme est abrégé selon trois règles : saint et sainte deviennent st et ste, les particules de, du, la, les, sur et leurs semblables sautent, et le reste est tronqué à la dernière césure avant trente caractères. Le code INSEE porte l'identité, le toponyme ne porte que la lisibilité.
Ce niveau est propre à Chappe 05. Aucun autre réseau français ne le pratique à ce jour. Il est proposé à la communauté, pas imposé : un répéteur qui ne le porte pas reste parfaitement interopérable, puisque les quatre niveaux supérieurs suffisent à acheminer tout ce qui circule aujourd'hui.
Les régions se définissent par la géographie, jamais par l'usage. Une région adrasec ou les-relais-des-copains n'a pas lieu d'être. Un canal, oui.
Contraintes de nommage : trente caractères maximum, minuscules, chiffres et tirets uniquement. Plus le nom est court, moins il alourdit les messages.
Sur les codes IATA : ils ont été employés historiquement pour les régions. Cet usage est abandonné. Ils subsistent dans les analyseurs de paquets accessibles par Internet, ce qui ne concerne pas la configuration des répéteurs.
3.5 Pourquoi porter tous les niveaux
Un répéteur ne filtre pas pour protéger le réseau. Il accepte les différents degrés de précision que les émetteurs emploieront.
Un répéteur qui ne porterait que fr-05 couperait tout message tagué fr, fr-pac ou eu traversant son secteur, y compris ceux d'un voisin ayant tagué correctement.
Il deviendrait un trou dans le réseau, sans que personne ne comprenne d'où vient le blocage.
Cela vaut pour le niveau communal comme pour les autres. Créer une région ne suffit pas : region put la crée en refus d'inondation, et il faut un region allowf explicite pour l'ouvrir. Une région créée et laissée fermée est exactement le trou décrit ci-dessus.
Le filtrage utile se fait côté émetteur, en taguant chaque canal à la portée juste. C'est là que se joue la préservation du temps d'antenne, pas dans la liste du répéteur.
3.6 Le cas de eu, et pourquoi il est contre-intuitif
Porter eu expose le répéteur au trafic européen tagué. C'est un coût réel.
Mais l'alternative est pire. Quelqu'un qui veut porter loin sans disposer de eu ne tague rien du tout. Son message part sous *, que tous les répéteurs relaient par défaut, et il va au-delà de l'Europe.
eu sert donc à séparer deux populations pour les traiter différemment :
| Trafic | Traitement possible |
|---|---|
| Non tagué | limité par flood.max.unscoped, voir 3.8 |
Tagué eu |
toléré tant qu'il reste raisonnable, blocable d'une commande si nécessaire |
Et c'est ce qui rend une crise gérable. Si tout le monde tague proprement, bloquer eu sur les répéteurs dégage la bande sans affecter le trafic local.
Sans cette séparation, il n'y a rien à bloquer : tout est mélangé sous *.
3.7 La région par défaut
Sur un répéteur, region default ne règle qu'une chose : jusqu'où portent ses annonces.
C'est contre-intuitif, et cela mérite d'être lu deux fois avant de configurer quoi que ce soit. Dans le firmware du répéteur, la région par défaut n'est consultée qu'à deux endroits : l'envoi d'une annonce inondée, et le choix de portée d'une réponse lorsque la portée de la demande n'a pas pu être déterminée.
Une réponse reprend la portée de la demande. C'est le premier test de la fonction qui choisit cette portée : si la demande est arrivée avec une étiquette exploitable, la réponse repart avec la même. La région par défaut du répéteur n'intervient pas.
Conséquence, et elle est libératrice. Administrer un relais de Gap depuis Paris ne dépend pas du réglage de ce relais. La demande part étiquetée fr, tous les répéteurs portent fr, elle arrive ; la réponse repart en fr et revient. Que le relais de Gap annonce sur le département ou sur la France entière n'y change rien.
Donc la région par défaut se choisit sur un seul critère : quelle zone doit connaître ce relais. Et cette zone, c'est sa classe qui la définit. La règle tient en une phrase, et elle est transposable à n'importe quel réseau :
Un répéteur annonce à l'échelle qu'il dessert.
| Classe | Dessert | region default |
|---|---|---|
| 0 | relie des régions, échelle nationale | fr |
| 1 | relie des bassins, échelle régionale | fr-pac |
| 2 | dessert un bassin, dans son département | fr-05 |
| 3 | comble un creux, dans sa commune | fr-05-168-sigoyer |
Une classe, un niveau, et l'échelle descend avec la classe. C'est ce qui rend la convention transmissible : elle s'énonce sans connaître Chappe 05, et elle se recopie sans exception à retenir.
eu ne figure pas dans cette échelle, et ce n'est pas un oubli. Il reste porté par tous les répéteurs, donc il continue de transporter le trafic que des émetteurs étiquettent ainsi. Un niveau peut servir au relayage sans servir de portée d'annonce. Le trafic international, lui, circule surtout non étiqueté, sous *, que tout le monde relaie par défaut. Voir 3.6.
Ce que le niveau communal produit réellement. Le scope d'une commune n'est porté que par les répéteurs de cette commune. Deux situations, très différentes :
| Situation | Effet d'une annonce au niveau communal |
|---|---|
| Plusieurs relais dans la commune, cas urbain | ils se rediffusent entre eux : le niveau se comporte comme un palier municipal |
| Relais seul dans sa commune, cas rural | l'annonce ne franchit pas le premier saut |
Dans le second cas, tout ce qui est à portée radio directe connaît quand même le relais : une annonce est traitée avant la décision de relayage. Ce qui disparaît, c'est la découverte à deux sauts.
C'est un choix assumé pour la classe 3, dont la vocation est précisément locale. Ce n'est pas un réglage à recopier sur une classe supérieure.
Pour un companion, la logique est différente : il se déplace, et ses tentatives de contact doivent aboutir de n'importe où. fr reste la recommandation.
Sans région par défaut du tout, les paquets émis partent sous * et ne s'arrêtent nulle part, y compris hors de France. Un réglage explicite est donc toujours préférable à l'absence de réglage.
Cela ne dispense pas de couper les annonces inondées. Un advert coûte autant qu'un message et se répète indéfiniment :
set flood.advert.interval 0
Un répéteur avec flood.advert.interval 0 n'inonde plus d'annonces du tout, quelle que soit sa région par défaut. À n'appliquer qu'une fois le relais intégré au maillage. Voir 6.5.
3.8 Limiter le trafic non tagué
set flood.max.unscoped 5
Disponible en firmware 1.16. Rejette les messages sans région ayant déjà effectué plus de cinq sauts.
C'est le levier le plus efficace contre le bruit. Il coupe le trafic lointain non configuré, tout en laissant passer celui des nouveaux arrivants du voisinage, qui n'ont pas encore paramétré leurs régions.
| Valeur | Usage |
|---|---|
| 5 | zone ordinaire |
| 2 | zone frontalière, trafic étranger important |
| 1 | à éviter, coupe les voisins immédiats |
Ne pas confondre avec le blocage de *, qui coupe intégralement le trafic non tagué. Celui-ci ne se justifie que sur un répéteur frontalier faisant face à un volume étranger massif.
3.9 Le cas des zones frontalières
Un répéteur peut porter le code d'un département ou d'un pays voisin, s'il participe activement au routage de cette zone.
Exemple : un répéteur dominant depuis le nord d'un département et couvrant une partie du département voisin, permettant d'y interconnecter des zones autrement isolées.
Ce n'est pas contradictoire avec le principe de la peau d'oignon : c'est une exception justifiée par une fonction réelle, pas par une commodité.
Pour les frontières internationales, le mécanisme actuel est limité. Il n'est pas possible de taguer un canal avec deux régions simultanément. Deux voies :
- chaque côté ajoute le code de la zone voisine dans la liste de ses répéteurs
- ou création d'une région dédiée à la zone frontalière, employée des deux côtés
Des propositions techniques existent pour permettre deux régions dans un même paquet. Elles ne sont pas implémentées.
3.10 Position Chappe 05
Alignement sur la convention française. Les répéteurs du réseau portent eu, fr, fr-pac, fr-05, avec fr en région par défaut.
Ce que cela suppose d'accepter : le trafic national et européen tagué traverse le bassin et consomme du temps d'antenne local.
Ce que cela évite : devenir un trou dans le réseau, couper des messages correctement tagués, et s'isoler des échanges nationaux où se discutent précisément ces sujets.
Ce sur quoi porte réellement la discipline : le tag des canaux locaux à la portée juste, la coupure des adverts inondés, et la limitation du non tagué lointain.
Un seuil de réexamen
Cette position est révisable, et il vaut mieux définir à l'avance ce qui la remettrait en cause.
Signaux justifiant de retirer eu, puis fr :
- trafic national ou européen tagué représentant une part notable du temps d'émission des relais du bassin
- messages locaux retardés ou perdus par saturation
- décision concertée à l'échelle régionale ou nationale
Et dans ce cas, l'annoncer. Un répéteur qui cesse de porter une étiquette devient un trou pour ceux qui l'employaient. Le faire en silence est ce qu'il faut éviter.
3.11 Statut de cette convention
Elle n'a aucun caractère officiel. Elle est portée par des communautés actives, notamment Gaulix, dont la page de référence date du 19 juillet 2026 et se présente elle-même comme évolutive.
Une carte de recommandation de nommage produite par le créateur de MeshCore existe également, fondée sur les découpages OpenStreetMap. Les deux approches ne coïncident pas entièrement, et les outils d'analyse suivent encore d'autres logiques.
Ce qui relève du mécanisme est vérifiable et non discutable : absence d'héritage entre régions, rôle de *, effet de default.
Ce qui relève du choix est discutable : porter eu, la valeur de flood.max.unscoped, la région par défaut.
Ce qui compte le plus, c'est ce que font les voisins immédiats. Une convention nationale que personne n'applique dans le secteur ne sert à rien ; un usage partagé par trois opérateurs voisins fonctionne.
3.12 Note de version
| Firmware | Comportement |
|---|---|
| < 1.14 | pas de régions |
| < 1.15.0 | region allowf <nom> obligatoire après chaque region put |
| ≥ 1.15.0 | region put active l'inondation automatiquement, région par défaut disponible |
| ≥ 1.16.0 | flood.max.unscoped disponible |
Vérifier avec ver avant de configurer.
3.13 Recommandations sur les régions
| Réf | Recommandation | Niveau |
|---|---|---|
| R-REG-01 | Déclarer tous les niveaux qui couvrent le site, de eu au niveau communal, sur tout répéteur |
Recommandé |
| R-REG-01 bis | Autoriser explicitement l'inondation sur chaque niveau créé : region put crée en refus |
Impératif |
| R-REG-02 | Régler la région par défaut d'un répéteur sur l'échelle qu'il dessert : fr en classe 0, fr-pac en classe 1, fr-05 en classe 2, la commune en classe 3. fr sur les compagnons, qui se déplacent |
Recommandé |
| R-REG-02 bis | Ne pas employer le niveau communal en région par défaut au-dessus de la classe 3 : là où le relais est seul dans sa commune, son annonce ne franchit pas le premier saut | Recommandé |
| R-REG-03 | Conserver la région * activée, sauf répéteur frontalier face à un volume étranger massif |
Impératif |
| R-REG-04 | Régler flood.max.unscoped sur 5, ou 2 en zone frontalière |
Recommandé |
| R-REG-05 | Employer les codes ISO, jamais les noms en toutes lettres ni les codes IATA | Recommandé |
| R-REG-06 | Définir les régions par la géographie, jamais par l'usage | Impératif |
| R-REG-07 | N'ajouter le code d'une zone voisine que si le répéteur participe réellement à son routage | Recommandé |
| R-REG-08 | Annoncer tout retrait d'étiquette : le répéteur devient un trou pour ceux qui l'employaient | Impératif |
| R-REG-09 | Vérifier la version de firmware avant configuration | Recommandé |
| R-REG-10 | Se référer à ce que font les opérateurs voisins autant qu'aux recommandations nationales | Recommandé |
| R-REG-11 | Réexaminer la position si le trafic tagué large devient une part notable du temps d'émission | Conseillé |
| R-REG-12 | Renseigner region home au niveau communal : la déclaration est gratuite et rend la carte du réseau lisible |
Conseillé |
4. Protection du réseau
4.1 Ce qui n'existe pas
| Attente courante | Réalité |
|---|---|
| Liste noire de nœuds | n'existe pas |
| Liste blanche | n'existe pas |
| Canal en lecture seule | impossible par construction |
| Authentification d'un émetteur sur un canal | impossible |
Un canal se définit par une clé symétrique. Qui possède la clé peut chiffrer autant que déchiffrer. Pour un canal hashtag, la clé se dérive du nom : quiconque tape #meteo l'obtient.
Il n'y a donc rien à verrouiller. Le mécanisme est détaillé en 5.3.
4.2 Ce qui existe
La détection de boucles, ajoutée en firmware 1.14. Elle existe parce qu'un seul répéteur au firmware modifié suffit à provoquer une tempête de paquets répétés jusqu'à 64 sauts.
set loop.detect moderate
| Réglage | Comportement, pour un hash de 1 octet |
|---|---|
off |
aucune détection |
minimal |
rejette si le hash apparaît 4 fois ou plus |
moderate |
rejette si le hash apparaît 2 fois ou plus |
strict |
rejette dès la première répétition |
Les limites de nombre de sauts.
Deux réglages distincts, souvent confondus :
set flood.max <n> nombre de sauts pour les messages inondés
set flood.max.advert <n> nombre de sauts pour les adverts inondés
Ce qu'ils font. Un paquet inondé porte un compteur de sauts. Chaque répéteur qui le retransmet l'incrémente. Passé la limite, le paquet cesse d'être relayé.
À quoi ça sert. Sans limite, un paquet inondé se propage jusqu'à ce que plus aucun répéteur ne l'entende pour la première fois. Sur un maillage étendu, cela peut représenter des dizaines de sauts pour un message qui n'intéressait que le voisinage.
Comment choisir la valeur. Il faut compter le nombre de sauts nécessaires pour traverser la zone que le relais est censé desservir, et ajouter une marge.
| Situation | Ordre de grandeur |
|---|---|
| Bassin desservi par deux ou trois relais | 4 à 5 |
| Département structuré, chaîne de relais | 6 à 8 |
| Relais de bordure, en limite de zone | valeur basse, pour ne pas propager hors zone |
Le piège. Une valeur trop basse coupe des correspondants légitimes, sans qu'ils comprennent pourquoi : leur message part, il n'arrive pas, et rien ne le signale.
À manier avec prudence, donc. Les régions sont un instrument plus lisible pour limiter la portée : elles disent explicitement quel périmètre est visé, là où un compteur de sauts dépend de la topologie locale.
flood.max.advert est le moins risqué des deux : il limite les annonces périodiques, pas les messages. Une valeur basse y est plus facile à assumer.
Les plafonds par type de paquet. Un plafond global traite de la même façon un accusé de réception et une charge applicative de canal. Le firmware permet de distinguer :
set flood.max.type <type> <sauts>
Les seize types de charge utile sont listés dans le référentiel des commandes. Quatre concernent réellement un relais :
| Type | Contenu | Remarque |
|---|---|---|
5 GRP_TXT |
chat de canal | le trafic conversationnel, à porter loin |
6 GRP_DATA |
données applicatives de canal | télémétrie, capteurs, positions. Volume potentiellement élevé, intérêt local |
10 MULTIPART |
fragment d'un ensemble | un message découpé, coûteux par construction |
15 RAW_CUSTOM |
brut applicatif | inconnu du réseau, à contenir |
Le rejet des données de canal reçues en inondation.
set grp.data.block 1
set grp.data.allow <octet de canal>
grp.data.block 1 refuse de relayer les GRP_DATA inondés. C'est le seul levier qui coupe une source de volume sans toucher aux conversations. La liste grp.data.allow rouvre le passage pour les canaux explicitement admis, désignés par le premier octet de leur empreinte.
La qualité de service. Deux réglages, introduits pour le réseau Chappe 05.
set prio.type <type> <malus>
set airtime.budget.type <type> <pourcentage>
prio.type retarde un type quand la file d'émission est chargée : la valeur est un malus, pas une priorité. Zéro laisse le comportement d'origine, une valeur élevée fait céder le passage à ce type et le fait abandonner en premier si la file déborde.
airtime.budget.type plafonne la part du budget de temps d'antenne qu'un type peut consommer, en pourcentage du budget de rapport cyclique. Un capteur bavard s'arrête alors à sa part, sans étouffer le reste.
L'observation. Sans compteurs, un filtrage se règle à l'aveugle.
stats-filter
La commande restitue le nombre de paquets écartés, par motif : données de canal bloquées, plafond de sauts atteint, budget de temps d'antenne épuisé, boucle détectée. Un filtrage qui n'écarte rien ne sert à rien, un filtrage qui écarte tout coupe le réseau : ce sont ces compteurs qui départagent les deux.
Ce que vaut un relais sorti d'usine. Aucun de ces leviers n'est actif par défaut, et deux valeurs d'origine sont franchement dangereuses.
| Réglage | Défaut d'usine | Ce que cela donne |
|---|---|---|
| Rapport cyclique | 50 % | cinq fois le plafond réglementaire. À corriger avant toute mise en service |
| Mot de passe d'administration | password |
identique sur toutes les cartes, écrit en clair dans le firmware |
loop.detect |
off |
aucune détection de boucle |
flood.max |
64 | le maximum possible |
flood.max.unscoped |
64 | aucun frein sur le trafic non étiqueté |
flood.max.type |
5 12, 6 6, 10 8, 15 6 |
seul filtrage par type actif d'origine |
grp.data.block |
1, bloqué | contre-intuitif, mais c'est bien le défaut |
prio.type, airtime.budget.type |
0 partout | qualité de service inactive |
advert.interval |
2 minutes | très bavard pour une mise en service |
Un relais neuf n'est donc pas un relais configuré. Les deux premières lignes de ce tableau sont des impératifs, pas des recommandations.
4.3 Ce qui protège réellement
La convention. Elle ne bloque personne, mais elle fait qu'un message hors convention se remarque immédiatement.
L'identité de l'émetteur. Chaque message porte le nom du nœud. Un bulletin qui ne vient pas du nœud désigné est identifiable comme non officiel.
Le format. Un en-tête normalisé est une signature de fait.
Le rapport cyclique. Un émetteur abusif sature son propre relais avant de saturer le réseau.
4.4 Ce que le filtrage ne touche pas
Trois propriétés du firmware sont systématiquement mal comprises. Elles décident pourtant de ce qu'un réglage de portée produit réellement.
Les filtres de région ne s'appliquent qu'à l'inondation. Dans le code du répéteur, les trois contrôles, plafond de sauts, appartenance à une région, détection de boucle, sont placés derrière une seule condition : le paquet est-il en cours d'inondation. Un paquet qui suit un chemin connu traverse le relais sans être examiné.
La conséquence est structurante : restreindre la portée d'un relais ne coupe pas les échanges établis, elle coupe la découverte. Un correspondant qui connaît déjà le chemin passe.
Recevoir une annonce n'est pas la propager. Un advert est traité par le nœud qui l'entend avant d'arriver à la décision de relayage. Un nœud à portée radio d'un relais apprend donc son identité même si ce relais n'inonde ses annonces que sur son département. La portée règle qui en entend parler au-delà du voisinage, pas qui l'enregistre en le voyant passer.
Une réponse emprunte la portée de la demande. Quand un relais répond à une requête inondée, il reprend l'étiquette de portée du demandeur. Un administrateur qui interroge depuis fr reçoit une réponse qui circule sur fr, sans qu'il faille élargir la portée d'annonce du relais.
Ce que cela dicte. region home se lit finement, jusqu'à la commune : le firmware ne s'en sert jamais pour router, il la stocke et l'affiche, elle déclare seulement où le relais se trouve. region default, elle, ne gouverne que la portée des annonces que le relais émet, puisqu'une réponse reprend toujours la portée de la demande. Elle se règle donc sur la classe du relais, et non sur une valeur unique pour tout le parc. Voir 3.7.
4.5 Réglages par classe
Ces valeurs découlent des classes définies en 1.4. Elles sont proposées, pas imposées, et destinées à être révisées quand les compteurs de stats-filter auront parlé sur un parc réel. Le flasheur les applique en un clic sous le nom de la classe.
| Réglage | Classe 1 | Classe 2 | Classe 3 | Pourquoi |
|---|---|---|---|---|
set loop.detect |
strict |
moderate |
moderate |
une boucle sur un backbone se propage à tout le réseau |
set flood.max |
64 | 32 | 16 | portée logique attendue de la classe |
set flood.max.unscoped |
2 | 5 | 5 | un backbone ne sert pas de porte d'entrée au trafic non étiqueté |
set dutycycle |
10 | 10 | 10 | plafond réglementaire, jamais un réglage de confort |
set grp.data.block |
1 | 1 | 1 | les données de canal ne s'inondent pas par défaut, grp.data.allow rouvre au cas par cas |
set block.lasthop |
1 | 1 | 1 | la liste de blocage ne vise que le voisin direct fautif, pas tout ce qu'il a relayé |
set block.alltypes |
0 | 0 | 0 | bloquer tous les types d'un voisin coupe aussi ses accusés de réception |
set grp.relay.enable |
1 | 1 | 0 | la confirmation passive vaut là où la perte d'un saut est coûteuse |
Plafonds de sauts, priorités et parts de temps d'antenne, par type.
| Type | Classe 1 | Classe 2 | Classe 3 |
|---|---|---|---|
5 GRP_TXT |
12 sauts | 12 sauts | 8 sauts |
6 GRP_DATA |
6 sauts, malus 8, 10 % | 4 sauts, malus 6, 15 % | 2 sauts, malus 4, 20 % |
10 MULTIPART |
8 sauts | 8 sauts | 6 sauts |
15 RAW_CUSTOM |
6 sauts, malus 8, 5 % | 6 sauts | 4 sauts |
Lecture de cette grille. Le chat de canal est le trafic que le réseau existe pour porter : il garde la portée la plus longue partout. Les données applicatives sont utiles localement et coûteuses à distance : leur portée se resserre à mesure que l'on descend en classe, mais leur part de temps d'antenne s'élargit, parce qu'un relais de confort local est justement là pour les écouler chez lui. Le brut applicatif, dont le réseau ne sait rien, cède le passage partout.
Pourquoi la classe 3 est la plus filtrante sur la portée. Ce n'est pas une défiance envers les petits relais. Un relais de confort local se trouve, par construction, dans une zone déjà couverte : tout ce qu'il inonde loin est très probablement redondant avec ce qu'un relais de classe 2 a déjà porté. Ce qu'il apporte, c'est la couverture d'un trou, pas un saut supplémentaire vers l'extérieur.
4.6 Nomades et chemins périmés
Un terminal qui se déplace pose un problème que le réseau ne résout pas tout seul, et qu'il faut connaître avant d'en attribuer la faute à un relais.
Ce qui se passe. Un terminal mémorise, pour chaque correspondant, le chemin par lequel il l'a joint la dernière fois. Tant que ce chemin est valide, ses messages le suivent, sans inondation : c'est le mode économique. Quand le terminal change de lieu, ce chemin ne décrit plus rien, mais rien ne le lui dit.
Pourquoi rien ne le signale. Le firmware ne réessaie pas automatiquement en cas d'accusé de réception manquant. Le message part sur l'ancien chemin, le premier relais du chemin ne l'entend pas ou ne peut pas continuer, et l'affaire s'arrête là. De l'extérieur, c'est un silence, pas une erreur.
Ce qu'il faut faire. Effacer le chemin mémorisé du correspondant dans l'application, ce qui force le message suivant à repartir en inondation, donc à redécouvrir un trajet valide. Certaines applications proposent aussi une demande de découverte de chemin explicite.
Ce que cela coûte au réseau. Chaque redécouverte est une inondation. Un terminal qui se déplace beaucoup en génère d'autant plus, et c'est structurel : ce n'est pas un défaut de configuration d'un relais, et cela ne se corrige pas en élargissant sa portée.
Ce qu'il ne faut pas en conclure. Qu'il faudrait annoncer les relais le plus loin possible pour être joignable de partout. Une annonce reçue à Paris n'apporte rien : c'est le chemin qui manque, pas l'identité, et un chemin ne se transporte pas dans une annonce. Voir 4.4.
4.7 Recommandations sur la protection
| Réf | Recommandation | Niveau |
|---|---|---|
| R-PRO-01 | Activer la détection de boucles en moderate sur tout relais |
Recommandé |
| R-PRO-02 | Réserver strict aux situations de tempête avérée : il peut rejeter des trajets légitimes en maillage dense |
Conseillé |
| R-PRO-03 | Ne pas utiliser de firmware modifié ou non officiel sur un relais raccordé au réseau | Impératif |
| R-PRO-04 | Signaler à la communauté tout comportement anormal observé : répétitions, tempête, nœud aux métadonnées incohérentes | Recommandé |
| R-PRO-05 | Ne compter sur aucun mécanisme de filtrage par identité : il n'en existe pas | Impératif |
| R-PRO-06 | Déclarer la classe du relais, et appliquer la grille de 4.5 plutôt que des valeurs improvisées | Recommandé |
| R-PRO-07 | Dans le doute sur la classe, déclarer la classe inférieure : un relais qui rend plus que promis ne gêne personne | Conseillé |
| R-PRO-08 | Relever stats-filter avant et après tout durcissement du filtrage, et conserver les deux relevés |
Recommandé |
| R-PRO-09 | Ne jamais bloquer un type de paquet sans savoir ce qu'il transporte : 3 ACK et 8 PATH portent le fonctionnement du routage |
Impératif |
| R-PRO-10 | Changer le mot de passe d'administration avant la mise en service : le défaut est password sur toutes les cartes |
Impératif |
5. Cryptographie et sécurité des échanges
Cette section décrit ce que le protocole protège, ce qu'il ne protège pas, et ce qu'un opérateur doit en conclure.
5.1 Le modèle cryptographique
MeshCore combine deux mécanismes.
L'identité repose sur une paire de clés Ed25519 propre à chaque nœud, générée à la première mise en service. L'adresse d'un nœud dérive du condensat de sa clé publique : l'adressage est donc vérifiable cryptographiquement.
Le chiffrement utilise AES-128 avec un HMAC-SHA256 tronqué pour l'intégrité. Pour les messages directs, le secret partagé est dérivé par ECDH X25519 entre les deux correspondants, les clés Ed25519 étant converties en interne au format X25519.
Un horodatage est inclus dans la charge utile chiffrée, ce qui limite le rejeu.
5.2 Ce qu'un opérateur de relais doit savoir des canaux
Le détail du modèle des canaux relève de la politique des canaux et des messages, document distinct. Trois points concernent directement l'exploitation d'un relais.
Un relais relaie sans lire. Il ne détient aucune clé de canal. Il voit passer des paquets chiffrés, les retransmet selon leur étiquette de portée, et n'a aucun moyen de savoir ce qu'ils contiennent.
C'est une propriété, pas une limite : elle décharge l'opérateur de toute responsabilité éditoriale sur ce qu'il transporte, tout en lui interdisant tout filtrage par le contenu.
Aucun canal ne protège un secret. Les canaux dits hashtag dérivent leur clé de leur nom : quiconque connaît le nom possède la clé. Les canaux privés emploient une clé aléatoire, mais elle est partagée entre tous leurs membres.
Aucun canal n'authentifie l'auteur d'un message. Tout détenteur de la clé peut publier sous n'importe quel nom affiché. Un bulletin apparemment officiel peut provenir de n'importe qui.
C'est ce qui fonde la règle « un service, un émetteur nommé » : la seule donnée vérifiable est la clé publique du nœud émetteur.
Le mécanisme complet, la dérivation des clés, les niveaux de protection et les recommandations d'usage figurent dans POL-CHP05-MSG-2026-001, politique des canaux et des messages.
5.3 L'identité d'un relais
Chaque nœud possède une paire de clés Ed25519, générée à la première mise en service. Son adresse dérive du condensat de sa clé publique : l'adressage est donc vérifiable cryptographiquement.
C'est la seule identité qui compte sur le réseau. Le nom affiché n'est qu'une étiquette, modifiable à volonté et non vérifiable.
Cette clé privée est irremplaçable. Elle ne peut pas être révoquée : une clé compromise impose de regénérer une identité, donc de changer d'adresse et de refaire connaître le nœud.
Elle protège aussi l'administration du relais. Une clé de périphérique distincte empêche qu'un tiers reconfigure le nœud par radio, y compris depuis un canal public.
5.4 Ce qu'un relais expose
Les en-têtes de routage circulent en clair. C'est nécessaire au fonctionnement du maillage : un répéteur doit lire le chemin pour décider s'il retransmet.
Un observateur passif voit donc, sans jamais déchiffrer un seul message :
- quel nœud a émis, et vers quel destinataire
- par quels relais le message a transité
- à quelle heure, et à quelle fréquence
- la taille approximative du contenu
Sur un réseau où les nœuds portent des noms de lieux, ces métadonnées se traduisent vite en habitudes de vie. Qui est chez lui, qui se déplace, quand, et avec qui il communique.
Le contenu peut être parfaitement protégé et l'essentiel révélé quand même.
5.5 Le cas des passerelles
Une passerelle qui relie un nœud companion à un système d'information republie le contenu des messages en clair, messages directs compris.
Ce n'est pas un défaut de configuration : le pont dispose de la clé du nœud, il déchiffre légitimement, et il publie ce qu'il a déchiffré.
Tout opérateur de passerelle doit le savoir. Un message chiffré de bout en bout entre deux appareils ressort en clair dès qu'il atteint une passerelle dont l'un des deux est le correspondant.
Cela impose deux choses : que le broker reste strictement privé, et que le champ de contenu soit supprimé avant tout stockage ou toute republication.
5.6 Les limites connues
Le mode de chiffrement retenu a des limites documentées. Sur des messages courts, l'impact reste théorique, mais il existe. La communauté MeshCore le signale ouvertement, et c'est à porter au débit d'un modèle de menace honnête.
Il n'y a pas d'autorité de certification. L'identité d'un nœud est sa clé publique, rien de plus. Personne ne garantit que le nœud nommé FR05-VIGIE est bien celui que vous croyez, sauf à avoir vérifié sa clé par un autre canal.
Il n'existe aucune révocation. Une clé compromise ne peut pas être invalidée : il faut regénérer une identité, donc changer d'adresse sur le réseau.
5.7 Disponibilité
La disponibilité n'est garantie par aucun mécanisme.
| Facteur | Effet |
|---|---|
| Rapport cyclique | six minutes d'émission par heure et par relais, au maximum |
| Propagation | variable selon la météo, la saison, l'heure |
| Alimentation autonome | un relais solaire peut s'arrêter plusieurs jours en hiver |
| Absence de redondance | un relais unique sur un axe est un point de rupture |
| Saturation | un réseau chargé retarde ou perd des messages |
Un message peut arriver en retard, ou ne pas arriver. Le protocole ne distingue pas les deux cas pour l'émetteur, sauf accusé de réception explicite.
C'est pourquoi ce réseau ne peut pas être un dispositif de secours, quel que soit le soin apporté à son exploitation.
5.8 Intégrité
Le HMAC détecte une charge utile modifiée. Un message altéré en transit est rejeté.
Mais rien n'authentifie l'auteur d'un message de canal. Toute personne détenant la clé peut publier sous n'importe quel nom affiché. Un bulletin météo apparemment officiel peut venir de n'importe qui.
Ce qui permet de distinguer un message légitime :
- la clé publique du nœud émetteur, seule donnée réellement vérifiable
- le respect du format convenu, qui fait signature de fait
- la cohérence avec la source citée, vérifiable indépendamment
5.9 Confidentialité
Rien de ce qui transite sur un canal ne doit être considéré comme confidentiel.
Les messages directs offrent une protection réelle entre deux appareils. Mais même eux exposent les métadonnées, et sont lisibles par toute passerelle dont l'un des correspondants est un nœud raccordé.
5.10 Recommandations sur la cryptographie et la sécurité
| Réf | Recommandation | Niveau |
|---|---|---|
| R-SEC-01 | Considérer tout message de canal comme public, y compris sur un canal privé | Impératif |
| R-SEC-02 | Réserver les messages directs à ce qui doit rester confidentiel entre deux personnes | Recommandé |
| R-SEC-03 | Ne faire transiter aucune donnée exposant une personne : adresse, absence prolongée, donnée de santé, élément d'identité | Impératif |
| R-SEC-04 | Tenir compte des métadonnées : le seul fait d'émettre révèle une présence, une heure et une position approximative | Recommandé |
| R-SEC-05 | Ne jamais publier sur le réseau un identifiant, un mot de passe ou une clé | Impératif |
| R-SEC-06 | Maintenir un mot de passe d'administration distinct sur chaque relais, et le changer à la mise en service | Impératif |
| R-SEC-07 | Sauvegarder la clé privée de chaque nœud hors de l'appareil : elle est irremplaçable et non révocable | Impératif |
| R-SEC-08 | Sur une passerelle, supprimer le champ de contenu avant tout stockage ou republication | Impératif |
| R-SEC-09 | Maintenir tout broker de passerelle strictement privé, sans exposition depuis Internet | Impératif |
| R-SEC-10 | Vérifier la clé publique d'un correspondant par un canal indépendant avant tout échange sensible | Recommandé |
| R-SEC-11 | Regénérer l'identité d'un nœud dont la clé privée a pu être exposée | Impératif |
| R-SEC-12 | Ne pas présenter le réseau comme un moyen de communication sécurisé auprès de tiers | Recommandé |
| R-SEC-13 | Documenter publiquement ce que le réseau protège et ce qu'il ne protège pas | Recommandé |
| R-SEC-14 | Considérer qu'un message de canal peut être forgé par tout membre : la fiabilité repose sur la clé publique de l'émetteur | Impératif |
5.11 En résumé
Ce que le protocole assure raisonnablement
- L'identité d'un nœud est cryptographiquement vérifiable
- Un message direct n'est lisible que par son destinataire
- Une charge utile modifiée en transit est détectée
- Un nœud ne peut pas être reconfiguré à distance sans authentification
Ce qu'il n'assure pas
- La confidentialité de ce qui passe sur un canal
- L'anonymat, ni la discrétion des métadonnées
- L'authentification de l'auteur d'un message de canal, y compris privé
- La disponibilité, à aucun degré
- La révocation d'une clé compromise
6. Économie du temps d'antenne
Cette section contient le chiffre qui justifie tout le reste du document.
6.1 Ce que coûte un message
Chaque relais qui entend un message le retransmet exactement une fois. Le coût d'un message est donc :
transmissions = 1 (émetteur) + 1 par relais à portée
| Configuration | Transmissions par message |
|---|---|
| Un terminal, un relais | 2 |
| Un terminal, deux relais | 3 |
| Un terminal, quatre relais | 5 |
| Un terminal, dix relais | 11 |
Dans une zone dense où dix relais s'entendent mutuellement, un seul message court occupe le canal onze fois.
6.2 Le plafond réel, calculé
Le temps qu'un paquet occupe la fréquence se calcule exactement, à partir des paramètres radio. Il ne dépend ni du matériel ni de l'implémentation.
La formule
Ts = 2^SF / BW durée d'un symbole
Tpréambule = (npréambule + 4,25) × Ts
nutile = 8 + max(⌈(8×L − 4×SF + 28 + 16) / (4×SF)⌉ × CR, 0)
Tantenne = Tpréambule + nutile × Ts
Avec le preset France, SF8 et BW 62,5 kHz, un symbole dure 4,096 ms.
Ce que coûte chaque type de paquet
| Paquet | Charge utile | Temps à l'antenne | Par heure à 10 % |
|---|---|---|---|
| Accusé de réception | 16 o | 247 ms | 1 458 |
| Advert de répéteur | 40 o | 443 ms | 811 |
| Message de canal, 40 caractères | 72 o | 706 ms | 510 |
| Message de canal, 100 caractères | 132 o | 1 197 ms | 300 |
| Message de canal, 160 caractères | 192 o | 1 689 ms | 213 |
Le rapport cyclique de 10 % autorise 360 secondes d'émission par heure, sur fenêtre glissante.
L'écart entre les deux estimations, expliqué
Deux chiffres circulent, et les deux sont exacts. Ils ne mesurent pas la même chose.
Environ 300 messages par heure. Cela correspond très précisément à un message de canal de 100 caractères, soit 1 197 ms. C'est un compte de messages complets.
Environ 680 paquets par heure. Cela correspond à une moyenne de 0,52 s par paquet, obtenue sur du trafic réel. Cette moyenne inclut les accusés de réception à 247 ms et les adverts à 443 ms, bien plus courts qu'un message. C'est un compte de paquets, tous types confondus.
Le rapport entre les deux est cohérent : un message complet coûte environ deux fois la moyenne d'un paquet.
Le chiffre à retenir
Un échange complet, message plus accusé de réception, coûte 1 444 ms.
1 197 ms (message 100 car.) + 247 ms (accusé) = 1 444 ms
360 s ÷ 1,444 s ≈ 250 échanges par heure
Environ 250 conversations d'un message par heure et par répéteur, tous utilisateurs confondus.
C'est le chiffre le plus honnête, parce qu'il compte ce qu'un utilisateur perçoit comme un message plutôt que ce que la radio compte comme un paquet.
Ce que ce quota n'est pas
Il n'est pas par personne. C'est le total, pour tous les utilisateurs d'un même répéteur. Que le réseau compte cinq personnes ou cinq cents, le plafond ne bouge pas.
L'image est celle d'une cabine téléphonique disposant d'une heure de communication par jour : qu'une personne l'utilise ou cent, l'heure ne dure qu'une fois.
La fenêtre est glissante. Ce qui compte est toujours la dernière heure écoulée. Un répéteur peu sollicité la nuit ne capitalise rien pour la journée.
Conséquence directe sur la longueur des messages
Un message de 40 caractères coûte 706 ms, un message de 160 caractères en coûte 1 689.
Un message long coûte donc deux fois et demie un message court. Ce n'est pas un détail de style : c'est un facteur direct sur la capacité du réseau.
6.3 La règle d'or
Pour chaque message, choisir la plus petite portée couvrant tous les destinataires visés.
| Usage | Portée |
|---|---|
| Coordination entre deux personnes | message direct |
| Question aux gens du bassin | fr-05 |
| Bulletin météo départemental | fr-05 |
| Coordination entre départements voisins | fr-pac |
| Question technique au réseau national | fr |
Un message local envoyé en portée nationale coûte plusieurs fois plus de temps d'antenne que le même message en portée départementale. Tous les relais du pays dépensent leur quota pour une information qui ne concerne personne chez eux.
Avec peu d'utilisateurs, l'écart est invisible. Avec beaucoup, il devient le facteur limitant.
Envoyer aussi local que possible, aussi loin que nécessaire.
6.4 Comportement en charge, et le cas de la crise
Cette sous-section répond à l'objection la plus fréquente contre le cloisonnement : en cas de crise, ne vaudrait-il pas mieux que tout porte partout ?
D'abord, une précision
Le quota ne se dépense pas parce qu'un relais porte une étiquette, mais parce qu'un message la porte.
Tant que personne n'émet en portée nationale, un relais qui déclare fr ne consomme rien pour cela. Le problème n'apparaît que lorsque du trafic existe réellement.
C'est donc un problème de volume émis, pas de configuration. Mais le volume est précisément ce qui explose en crise.
Le scénario
Supposons une situation où les réseaux habituels sont indisponibles, et où deux cents personnes utilisent le réseau LoRa. Chacune envoie un message toutes les dix minutes, soit 1 200 messages par heure.
Le plafond d'un répéteur étant de 250 échanges par heure, il faudrait cinq fois la capacité disponible.
Tout dépend de la portée employée.
| Portée des messages | Ce que chaque relais doit relayer | Résultat |
|---|---|---|
Tous marqués fr |
les 1 200 messages, partout où un relais porte fr |
saturation généralisée |
| Marqués par département | seulement ceux de son département | tenable |
Avec un plafond de 250 échanges par heure, la première configuration sature avant d'avoir servi le quart des messages. Et elle sature partout à la fois, y compris dans les zones où il ne se passe rien.
Le principe
Le cloisonnement multiplie la capacité utile du réseau par le nombre de zones réellement séparées.
Un message marqué fr-05 ne consomme que le quota des relais du 05. Le même message marqué fr consomme celui de tous les relais du pays qui portent cette étiquette, pour une information qui n'intéresse personne ailleurs.
C'est le point contre-intuitif. En crise, le réflexe est de vouloir porter le plus loin possible. Mais un trafic non cloisonné s'effondre intégralement, alors qu'un trafic cloisonné conserve sa capacité locale, c'est-à-dire là où elle sert.
Une limite qui n'est pas que réglementaire
Le rapport cyclique est une contrainte légale. Mais même en s'en affranchissant, le canal reste physiquement partagé.
LoRa ne dispose pas d'un mécanisme d'évitement de collision élaboré. Un canal saturé ne transporte plus rien : il ne se dégrade pas progressivement, il cesse de fonctionner.
Deux émissions simultanées sur la même fréquence se détruisent mutuellement. Plus le nombre d'émetteurs augmente, plus la probabilité de collision croît, et le débit utile s'effondre bien avant que le plafond théorique ne soit atteint.
Ce qu'il faut en conclure
Le levier est le tag des canaux par l'émetteur, pas la liste des régions du répéteur.
Un répéteur qui restreint sa liste ne réduit pas le trafic national : il se contente de ne pas le voir passer, tout en devenant un obstacle pour les messages correctement tagués.
Ce qui préserve réellement le réseau :
| Levier | Qui l'actionne |
|---|---|
| Taguer chaque canal à la portée juste | l'émetteur |
| Couper les adverts inondés | l'opérateur du répéteur |
| Limiter le non tagué lointain | l'opérateur du répéteur |
| Bloquer une région large en cas de saturation | décision collective |
Le dernier levier n'existe que si la séparation entre trafic tagué et non tagué a été faite en amont. C'est ce qui justifie de porter les régions larges plutôt que de les refuser.
Ce que cela n'autorise pas à promettre
Ce raisonnement justifie la discipline de portée. Il ne fait pas du réseau un dispositif de crise pour autant.
Un réseau bien cloisonné tient mieux la charge, mais il reste soumis à tout ce qui figure en 5.7 : pas de garantie de disponibilité, pas de redondance, une alimentation autonome qui peut faillir, et une propagation variable.
Mieux dimensionné ne veut pas dire fiable.
6.5 Les adverts de flood
Un advert de flood coûte autant qu'un message complet, sans porter de contenu. C'est de la surcharge pure : une annonce « je suis toujours là » propagée à travers tout le maillage.
La recommandation des réseaux denses est de les couper :
set flood.advert.interval 0
Le relais reste découvrable par ses adverts à zéro saut, qui ne touchent que les voisins immédiats, et il apparaît de toute façon dans les chemins du trafic normal.
Une réserve importante en phase d'amorçage. Cet argument suppose que le relais figure déjà dans des trajets existants. Un relais isolé, qui ne voit encore personne, ne serait découvert par personne non plus.
Position retenue pour Chappe 05 : conserver un advert de flood tant que le relais n'a pas de voisin confirmé, avec un intervalle long. Le couper dès qu'il est intégré au maillage.
Si un advert de flood est conservé, l'intervalle maximal de 168 heures est préférable à la valeur par défaut.
6.6 Le nombre de relais
Une fois une zone couverte, un relais supplémentaire n'améliore pas la couverture. Il ajoute une transmission à chaque message qui passe, et rend donc chaque message plus coûteux pour tout le monde.
Le onzième relais d'une zone déjà couverte par dix ne fait rien gagner. Il fait passer chaque message de onze à douze transmissions, soit près de 10 % de capacité en moins pour l'ensemble des utilisateurs.
C'est contre-intuitif : on associe spontanément plus de relais à un meilleur réseau. Dans un maillage à inondation, la relation s'inverse au-delà d'un certain seuil.
Avant d'ajouter un relais, il faut pouvoir répondre à une question : quelle zone ou quelle liaison n'est pas couverte aujourd'hui, et que ce relais couvrira.
Si la réponse est « ça ne peut pas faire de mal », c'est qu'il ne faut pas le poser.
6.7 Le rapport cyclique comme régulateur
Le plafond réglementaire de 10 % n'est pas seulement une contrainte : c'est ce qui empêche un seul acteur de saturer la bande.
Un relais qui atteint son plafond cesse d'émettre. Il ne prévient personne, il devient simplement silencieux jusqu'à ce que la fenêtre glissante se libère.
Sur un réseau chargé, cela signifie que les messages ne sont pas perdus mais retardés, et que les relais les plus sollicités décrochent en premier.
6.8 Recommandations sur le temps d'antenne
| Réf | Recommandation | Niveau |
|---|---|---|
| R-AIR-01 | Couper l'advert de flood dès que le relais est intégré au maillage : set flood.advert.interval 0 |
Recommandé |
| R-AIR-02 | Si un advert de flood est conservé, retenir l'intervalle maximal plutôt que la valeur par défaut | Recommandé |
| R-AIR-03 | Conserver les adverts à zéro saut, qui ne touchent que les voisins immédiats | Recommandé |
| R-AIR-04 | Ne poser un relais que si l'on peut nommer la zone ou la liaison qu'il couvrira | Impératif |
| R-AIR-05 | Ne pas densifier une zone déjà couverte : chaque relais supplémentaire renchérit le coût de tous les messages | Impératif |
| R-AIR-06 | Limiter le nombre de sauts par flood.max et flood.max.advert sur les relais de bordure |
Conseillé |
| R-AIR-07 | Marquer chaque message à la plus petite portée couvrant les destinataires visés | Impératif |
| R-AIR-08 | Réserver la portée nationale aux questions qui concernent réellement le réseau national | Recommandé |
| R-AIR-09 | Privilégier le message direct à la diffusion sur un canal lorsque le destinataire est unique | Recommandé |
| R-AIR-10 | Proscrire tout automatisme publiant sans filtrage : un capteur qui émet chaque minute consomme à lui seul une part notable du quota | Impératif |
| R-AIR-11 | Ne pas rediffuser un message déjà relayé par un autre opérateur | Recommandé |
| R-AIR-12 | Formuler court : un message de 160 caractères coûte deux fois et demie un message de 40 | Recommandé |
7. Coordination entre réseaux voisins
7.1 Ce qui ne demande aucune coordination
La convention française suffit pour communiquer d'un département à l'autre.
Un répéteur portant eu, fr, fr-pac et fr-05 relaie tout message tagué à l'un de ces niveaux. Un message émis dans le 04 et tagué fr-pac traverse donc le 05 sans qu'aucun accord préalable ne soit nécessaire.
C'est tout l'intérêt d'une convention uniforme : chacun applique la même chose, et l'interopérabilité en découle.
7.2 Ce qui en demande
Trois cas seulement.
Ajouter le code d'une zone voisine
Un répéteur peut porter le code d'un département voisin s'il participe réellement au routage de cette zone. Exemple : un site dominant qui interconnecte des secteurs autrement isolés du département d'à côté.
Pourquoi le signaler : les opérateurs concernés comptent alors sur ce répéteur, parfois sans le savoir. Une coupure non annoncée les prive d'une liaison qu'ils croyaient acquise.
Les frontières internationales
Le mécanisme actuel ne permet pas de taguer un canal avec deux régions simultanément. Deux voies :
- chaque côté ajoute le code de la zone voisine dans la liste de ses répéteurs
- ou création d'une région dédiée à la zone frontalière, employée des deux côtés
Les deux supposent un accord explicite entre opérateurs des deux pays.
Restreindre le trafic
Passer la région * en refus coupe tout le trafic non tagué, y compris celui des débutants du voisinage.
Retirer une étiquette transforme le répéteur en obstacle pour ceux qui l'employaient.
Ces deux mesures se justifient parfois. Elles doivent être annoncées, sans quoi le répéteur devient un trou dont personne ne comprend l'origine.
7.3 Deux principes
Une convention ne vaut que si elle est appliquée uniformément. Un répéteur qui s'en écarte, dans un sens ou dans l'autre, crée un comportement que ses voisins ne peuvent pas prévoir.
Toute restriction se dit. Ajouter une étiquette peut se faire en silence, cela n'empêche rien. Retirer, jamais.
7.4 État pour Chappe 05
Aucune coordination particulière n'est nécessaire aujourd'hui.
Le réseau du bassin compte un nœud tiers confirmé. La convention française suffit largement à ce stade.
Les contacts établis avec les opérateurs voisins servent à autre chose : partager les mesures, identifier les points hauts, éviter de dupliquer les efforts.
Les questions de coordination se poseront quand un répéteur du 05 couvrira effectivement une partie du 04 ou du 38, ou quand la charge justifiera des restrictions.
7.5 Recommandations sur la coordination
| Réf | Recommandation | Niveau |
|---|---|---|
| R-COO-01 | Appliquer la convention française plutôt qu'un arrangement local | Recommandé |
| R-COO-02 | Signaler aux opérateurs concernés l'ajout du code de leur zone | Recommandé |
| R-COO-03 | Annoncer toute restriction : retrait d'étiquette, refus de *, valeur basse de flood.max.unscoped |
Impératif |
| R-COO-04 | Prévenir avant toute interruption prévue d'un répéteur participant au routage d'une zone voisine | Impératif |
| R-COO-05 | Convenir explicitement des modalités avec les opérateurs d'un pays voisin avant toute liaison transfrontalière | Recommandé |
| R-COO-06 | Documenter publiquement quel répéteur porte quelle étiquette et depuis quand | Recommandé |
| R-COO-07 | Partager les mesures de terrain avec les réseaux limitrophes | Conseillé |
8. Choix du site
8.1 Le principe
Le site se choisit par la mesure, pas sur la carte.
Un point haut qui ne voit rien ne sert à rien. Un point moyen bien dégagé vaut mieux qu'un sommet encaissé.
8.2 Le piège du col
Un col relie deux bassins qui ne se voient pas. C'est exactement la fonction d'un relais, et ce qui en fait un site apparemment évident.
Mais un col peut être encaissé. Entre deux sommets, il voit deux vallées et rien d'autre. Un épaulement cent mètres plus haut portera souvent bien plus loin.
Le réseau Chappe 05 en a un exemple documenté : un nœud déclaré sur un col n'a répondu depuis aucun des deux points de mesure, alors qu'une liaison de 9,9 km passait au même moment depuis l'un d'eux.
8.3 Ce qui compte, par ordre d'importance
| Poste | Gain typique |
|---|---|
| Hauteur et dégagement | 10 à 20 dB |
| Antenne correcte, câble court | 5 à 8 dB |
| Amplificateur en réception | 2 à 4 dB |
| Puissance d'émission, au-delà du plafond de 27 dBm PAR | inutilisable en France |
Le placement domine tout le reste.
8.4 Recommandations sur le choix du site
| Réf | Recommandation | Niveau |
|---|---|---|
| R-SIT-01 | Valider un site par au moins une mesure radio avant tout engagement financier | Impératif |
| R-SIT-02 | Observer et photographier chaque azimut visé, en notant l'orientation | Recommandé |
| R-SIT-03 | Effectuer trois relevés et retenir la médiane : un relevé isolé peut refléter une propagation favorable passagère | Recommandé |
| R-SIT-04 | Vérifier le dégagement de la zone de Fresnel, pas seulement la ligne de vue | Recommandé |
| R-SIT-05 | Documenter les liaisons qui échouent autant que celles qui réussissent | Recommandé |
| R-SIT-06 | Vérifier l'accès hivernal avant de retenir un site d'altitude | Impératif |
| R-SIT-07 | Préférer un épaulement dégagé à un col encaissé, à altitude comparable | Conseillé |
9. Matériel
9.1 Le nœud
nRF52840 obligatoire, pas d'ESP32. La consommation en veille se compte en dizaines de microampères contre plusieurs milliampères. C'est ce qui fait la différence entre un relais qui passe l'hiver et un relais qui tombe en janvier.
SX1262, jamais SX1276. C'est aussi la condition pour utiliser un jour le firmware de journalisation de paquets.
9.2 Recommandations sur le nœud
| Réf | Recommandation | Niveau |
|---|---|---|
| R-MAT-01 | Utiliser un microcontrôleur nRF52840 sur tout relais autonome | Recommandé |
| R-MAT-02 | Utiliser un transceiver SX1262 | Recommandé |
| R-MAT-03 | Employer un module radio pré-certifié, pour rester couvert par la directive RED sans devenir fabricant | Impératif |
| R-MAT-04 | Sauvegarder la clé privée du nœud dès le premier démarrage, avant mise en service | Impératif |
9.3 L'antenne
La bande doit couvrir 863-870 MHz, pas 860-930 : une antenne large bande est médiocre partout.
Le gain se choisit selon le site :
| Site | Gain | Raison |
|---|---|---|
| Toit dominant une agglomération | 3 à 5 dBi | lobe large, atteint la vallée en contrebas |
| Crête, liaisons longues à vue | 8 dBi | lobe resserré à 12-15°, portée maximale |
Un gain élevé aplatit le diagramme de rayonnement. En relief marqué, cela peut faire manquer les correspondants situés nettement plus bas.
Attention aux gains annoncés. Une antenne de 450 mm ne fait pas 5 dBi réels, quoi qu'en dise la fiche : compter 3 à 4 dBi. Un gain de 8 dBi suppose une longueur de l'ordre de 1,30 m.
9.3 bis Le cas des antennes directionnelles
Une Yagi promet 11 dBi pour le prix d'une omni. Sur un répéteur, c'est un piège, et pour une raison que le gain fait oublier : la directivité vaut aussi en réception.
Un appareil MeshCore ne porte qu'un rôle et n'a qu'une radio. Un répéteur inonde, donc il doit entendre tout le monde, de partout. Muni d'une antenne directive, il est entendu loin dans son axe mais n'entend pas la réponse venue d'ailleurs.
Le mode de panne qui en découle est le plus coûteux de tous parce qu'il est invisible : des liaisons à sens unique, qui ressemblent à de l'instabilité, qu'aucune supervision ne signale, et que le voisin attribuera à son propre matériel.
S'y ajoute une limite réglementaire. Un module à 22 dBm, moins 2 dB de pertes internes, avec une Yagi de 11 dBi, atteint 28,6 dBm PAR : au-delà du plafond de 27 dBm. Il faut réduire l'émission d'environ 1,6 dB, donc payer une antenne chère pour en brider le bénéfice.
Une antenne directive reste défendable sur une liaison de dorsale entre deux points hauts connus, à condition d'accepter que ce relais cesse de participer au maillage dans toutes les autres directions. En desserte de bassin, elle est un contresens : la mission d'un relais de niveau 2 est précisément d'atteindre la vallée en contrebas dans toutes les directions.
9.4 Recommandations sur l'antenne
| Réf | Recommandation | Niveau |
|---|---|---|
| R-ANT-01 | Choisir une antenne dont la bande couvre 863-870 MHz, et non une large bande 860-930 | Recommandé |
| R-ANT-02 | Adapter le gain au relief : 3 à 5 dBi en desserte urbaine, 8 dBi en liaison de crête | Recommandé |
| R-ANT-03 | Évaluer le gain réel d'après la longueur physique, non d'après la valeur annoncée | Conseillé |
| R-ANT-04 | Vérifier le type exact de connecteur avant commande : SMA et RP-SMA sont incompatibles, deux connecteurs mâles également | Recommandé |
| R-ANT-05 | Retenir un ROS inférieur à 1,5 dans la bande d'usage | Conseillé |
| R-ANT-06 | Proscrire les antennes directionnelles sur un répéteur de desserte : la directivité vaut aussi en réception, et produit des liaisons à sens unique qu'aucune supervision ne signale | Recommandé |
| R-ANT-07 | Vérifier que la puissance apparente rayonnée reste sous 27 dBm, gain d'antenne compris et pertes de câble déduites : le PAR se réfère au dipôle, un gain annoncé en dBi doit être diminué de 2,15 dB | Impératif |
9.5 Le câble
Le plus court possible. À 869 MHz :
| Câble | Perte pour 10 m |
|---|---|
| RG174 | ~9 dB, à proscrire |
| RG58 | ~5 dB, acceptable sous 3 m |
| LMR-195 | ~3,5 dB |
| Aircell 7, HF400, LMR-400 | ~1,5 dB |
Le câble est aussi important que l'antenne. Cinq mètres de RG58 annulent le gain d'une bonne antenne.
9.6 Recommandations sur le câble et le montage
| Réf | Recommandation | Niveau |
|---|---|---|
| R-CAB-01 | Limiter la longueur de câble au strict nécessaire | Impératif |
| R-CAB-02 | Employer un câble à faibles pertes au-delà de 3 m : Aircell 7, HF400 ou LMR-400 | Recommandé |
| R-CAB-03 | Proscrire le RG174 hors pigtail de moins de 30 cm | Impératif |
| R-CAB-04 | Préférer les câbles connectorisés d'usine au sertissage manuel | Recommandé |
| R-CAB-05 | Étanchéifier chaque connexion extérieure au ruban auto-amalgamant, puis protéger des UV | Impératif |
| R-CAB-06 | Placer l'antenne au-dessus du boîtier et ménager une boucle d'égouttement avant le connecteur | Recommandé |
| R-CAB-07 | Installer un parafoudre coaxial et une mise à la terre si le câble pénètre dans un bâtiment | Impératif |
Un montage entièrement extérieur, sans liaison filaire vers l'intérieur, ne nécessite pas de parafoudre : il n'existe aucun chemin conducteur vers l'installation domestique.
9.7 Alimentation autonome
Dimensionnement pour un relais consommant environ 12 Wh par jour :
| Panneau | Décembre, journée claire |
|---|---|
| 3 W | 9 Wh, déficit permanent |
| 10 W | 30 Wh, minimum acceptable |
| 20 à 30 W | confortable |
La chimie compte : le lithium-ion ne charge pas sous 0 °C. Avec une réserve suffisante, un relais passe plusieurs semaines sur ses cellules. Le LiFePO4 est supérieur en montagne, au prix d'un assemblage plus complexe.
9.8 Recommandations sur l'alimentation
| Réf | Recommandation | Niveau |
|---|---|---|
| R-ALI-01 | Dimensionner le panneau pour la production de décembre, non pour la moyenne annuelle | Impératif |
| R-ALI-02 | Retenir 10 W au minimum, 20 à 30 W pour un fonctionnement confortable | Recommandé |
| R-ALI-03 | Utiliser des cellules 18650 de marque reconnue, 3000 à 3500 mAh | Recommandé |
| R-ALI-04 | Écarter toute cellule annonçant plus de 3600 mAh : la capacité réelle est très inférieure et le vieillissement rapide | Impératif |
| R-ALI-05 | Vérifier le type de tête attendu par le support avant commande, plate ou bombée | Conseillé |
| R-ALI-06 | Prévoir une réserve couvrant au moins deux semaines sans production, le lithium-ion ne chargeant pas sous 0 °C | Recommandé |
| R-ALI-07 | Incliner fortement le panneau sur un site exposé à la neige, pour qu'elle ne s'y accumule pas | Recommandé |
| R-ALI-08 | Envisager une chimie LiFePO4 sur les sites d'altitude, malgré la complexité d'assemblage | Conseillé |
10. Nommage
Format retenu : FR05-LIEU-LIBRE
| Segment | Signification |
|---|---|
FR05 |
pays et département, sans séparateur |
LIEU |
toponyme du site, en capitales |
LIBRE |
segment facultatif : rang, fonction, version de l'installation |
Exemples : FR05-MANSE, FR05-STMENS-2, FR05-GAP-HUB.
Les relais portent le nom du lieu. C'est ce qui permet de comprendre la topologie d'un coup d'œil sur une carte.
Contrainte technique. Le champ de nom du firmware fait trente-deux octets, soit trente-et-un caractères utilisables. Au-delà, le nom est tronqué en silence. Le générateur du flasheur affiche le décompte en temps réel.
Le préfixe est FR05, pas 05. Le nom d'un nœud circule bien au-delà du département : sur les analyseurs de paquets et les cartes nationales, 05 seul se confond avec un rang ou un numéro de canal, là où FR05 se lit immédiatement.
Ce format remplace 05GAP-CHP-XXXXX, employé jusqu'en septembre 2026. L'ancien format portait le bassin et le nom du projet, deux informations que la carte du réseau donne déjà. Les nœuds existants peuvent être renommés sans conséquence : la clé publique ne change pas, seul l'affichage évolue. Voir R-NOM-03.
Cette convention est propre à Chappe 05. Les réseaux voisins ont la leur, et c'est très bien ainsi.
| Réf | Recommandation | Niveau |
|---|---|---|
| R-NOM-01 | Nommer les relais d'après leur toponyme, non d'après leur fonction | Recommandé |
| R-NOM-02 | Conserver le préfixe FR05, lisible sur les cartes nationales |
Recommandé |
| R-NOM-04 | Vérifier que le nom tient en trente-et-un caractères : au-delà, le firmware tronque sans le dire | Impératif |
| R-NOM-03 | Signaler tout changement de nom à la communauté : la clé publique reste inchangée, mais l'affichage évolue | Conseillé |
11. Exploitation
11.1 Position
Un relais d'infrastructure publie sa position. C'est ce qui permet aux autres opérateurs de calculer les liaisons et de placer leurs propres nœuds.
Un nœud personnel ne la publie pas. Un companion mobile qui diffuse sa position diffuse les déplacements de son porteur.
Un opérateur qui ne souhaite pas apparaître sur les cartes publiques doit pouvoir s'y soustraire. Certains agrégateurs prévoient un mécanisme d'exclusion, par exemple un caractère convenu dans le nom du nœud. Ce choix appartient à l'hébergeur du relais, et il ne se discute pas.
11.2 Supervision
Un relais silencieux depuis plus de vingt-quatre heures mérite un signalement.
Les causes fréquentes, par ordre :
| Cause | Indice |
|---|---|
| Batterie déchargée | panne progressive, souvent en fin de nuit |
| Connexion corrodée | dégradation lente du niveau reçu |
| Nœud figé | arrêt net, sans dégradation préalable |
| Firmware modifié | tempête de paquets, voir la détection de boucles |
11.3 Recommandations sur l'exploitation
| Réf | Recommandation | Niveau |
|---|---|---|
| R-EXP-01 | Publier la position de tout relais d'infrastructure | Recommandé |
| R-EXP-02 | Ne pas publier la position d'un nœud personnel mobile | Impératif |
| R-EXP-03 | Signaler toute panne dépassant vingt-quatre heures | Recommandé |
| R-EXP-04 | Annoncer à l'avance toute intervention programmée sur un relais | Conseillé |
| R-EXP-05 | Sauvegarder les clés privées hors de l'appareil, dans un gestionnaire de mots de passe | Impératif |
| R-EXP-06 | Tenir à jour une fiche par relais : position, altitude, matériel, date de mise en service | Conseillé |
12. Cadre juridique
Cette section décrit les obligations qui s'appliquent à un opérateur, notamment lorsqu'il collecte ou publie des données issues du réseau.
Elle n'a pas valeur de conseil juridique. Elle signale les textes applicables et les questions à se poser.
12.1 Émettre sur la bande ISM
Aucune licence n'est requise. La bande 863 à 870 MHz est ouverte, sous conditions techniques.
Ces conditions sont fixées par la décision de la Commission européenne 2006/771/CE et ses révisions, transposées en France par l'ARCEP et l'ANFR, avec pour référence technique la recommandation ERC 70-03 de la CEPT et la norme ETSI EN 300 220.
Pour la sous-bande employée, 869,4 à 869,65 MHz : 500 mW PAR et 10 % de rapport cyclique.
Le non-respect de ces limites engage l'opérateur. L'usage d'un amplificateur portant la puissance au-delà du plafond constitue une émission non conforme.
Le matériel doit être conforme. La directive RED 2014/53/UE impose le marquage CE. Employer un module pré-certifié évite d'endosser les obligations d'un fabricant.
12.2 Collecter des données du réseau
C'est ici que se situe l'essentiel des obligations.
Ce qui est collecté
Un opérateur qui exploite une passerelle, un collecteur ou un tableau de bord enregistre :
| Donnée | Nature |
|---|---|
| Clé publique d'un nœud | identifiant unique et stable |
| Nom affiché | souvent un pseudonyme reconnaissable |
| Position | donnée de localisation |
| Horodatages | permet de reconstituer des habitudes |
| Contenu des messages | peut concerner des tiers |
Pourquoi ce sont des données à caractère personnel
L'article 4.1 du RGPD définit la donnée à caractère personnel comme toute information se rapportant à une personne physique identifiée ou identifiable, notamment par référence à un identifiant tel qu'un numéro d'identification, des données de localisation ou un identifiant en ligne.
Une clé publique de nœud relève de cette dernière catégorie. Seule, elle ne nomme personne. Associée à une position, à des horodatages récurrents et à un nom affiché, elle rend son porteur identifiable.
Le Conseil d'État a jugé qu'un identifiant sous forme de pseudonyme, associé à une adresse technique, à un emplacement géographique et à un identifiant de terminal, ne constitue pas une anonymisation valable.
Les données pseudonymisées demeurent des données à caractère personnel. L'article 4.5 le précise, et la pseudonymisation est une mesure de sécurité au sens de l'article 32, non une sortie du champ du règlement.
L'exemption domestique ne s'applique pas
L'article 2.2.c écarte du règlement les traitements effectués dans le cadre d'activités strictement personnelles ou domestiques.
Publier un tableau de bord ou une carte accessible sort de ce cadre. Dès lors que le service est ouvert à des tiers, l'opérateur devient responsable de traitement au sens de l'article 4.7.
Les obligations qui en découlent
| Obligation | Article | Ce que cela suppose |
|---|---|---|
| Base légale | 6 | intérêt légitime pour l'exploitation technique, consentement pour la publication de données identifiantes |
| Information | 13 et 14 | mention accessible décrivant ce qui est collecté, pourquoi, combien de temps |
| Minimisation | 5.1.c | ne collecter que ce qui est nécessaire |
| Limitation de conservation | 5.1.e | durée définie et appliquée |
| Droits des personnes | 15 à 22 | accès, rectification, effacement, opposition |
| Sécurité | 32 | mesures proportionnées au risque |
| Registre | 30 | tenue d'un registre des traitements |
Le cas particulier du contenu des messages
Une passerelle republie le contenu des messages en clair, messages directs compris.
Un message peut contenir des données concernant des tiers, qui n'ont consenti à rien et ignorent l'existence de la passerelle.
Le stocker constitue un traitement sans base légale identifiable. C'est la raison pour laquelle la suppression du champ de contenu avant tout enregistrement n'est pas seulement une précaution technique.
Le cas des positions publiées
La position d'un relais d'infrastructure est publiée par son opérateur, qui en décide. Aucune difficulté.
La position d'un nœud personnel est une donnée de localisation. Publiée, elle expose les déplacements de son porteur. C'est la raison de fond de R-EXP-02.
12.3 Publier des informations d'autrui
Le contenu d'un message appartient à son auteur. Le republier hors du réseau, sur un site ou un tableau de bord, suppose son accord.
Cela vaut aussi pour les captures de conversation partagées à titre d'illustration.
Les données publiques ne sont pas libres de droit. Un bulletin de vigilance ou un arrêté préfectoral peut être rediffusé, mais la source doit être citée et le contenu non dénaturé.
Une carte de couverture construite à partir d'observations tierces mobilise le travail d'autrui. Citer les contributeurs et respecter la licence des données employées relève du même principe.
12.4 Responsabilité de l'hébergeur d'un relais
Un relais transporte sans lire. Il ne détient aucune clé de canal, ne peut pas connaître le contenu de ce qu'il achemine, et ne peut exercer aucun filtrage éditorial.
Cette absence de maîtrise est un élément de fait, et elle distingue nettement la situation d'un simple relayage de celle d'un hébergement de contenu.
En revanche, l'opérateur reste responsable de la conformité de son émission : puissance, rapport cyclique, matériel certifié.
12.5 Recommandations sur le cadre juridique
| Réf | Recommandation | Niveau |
|---|---|---|
| R-JUR-01 | Respecter les limites de puissance et de rapport cyclique de la sous-bande employée | Impératif |
| R-JUR-02 | Employer du matériel radio pré-certifié conforme à la directive RED | Impératif |
| R-JUR-03 | Supprimer le contenu des messages avant tout enregistrement sur une passerelle | Impératif |
| R-JUR-04 | Publier une mention d'information décrivant les données collectées, leur finalité et leur durée de conservation | Impératif |
| R-JUR-05 | Définir et appliquer une durée de conservation, et documenter la purge | Impératif |
| R-JUR-06 | Permettre à un opérateur de demander le retrait de son nœud des services publiés | Impératif |
| R-JUR-07 | Ne pas publier la position d'un nœud personnel sans l'accord de son porteur | Impératif |
| R-JUR-08 | Tenir un registre des traitements pour tout service exposant des données du réseau | Recommandé |
| R-JUR-09 | Citer la source de tout bulletin rediffusé, sans en modifier le sens | Impératif |
| R-JUR-10 | Obtenir l'accord de l'auteur avant de republier un message hors du réseau | Recommandé |
| R-JUR-11 | Citer les contributeurs et respecter la licence des données de couverture employées | Recommandé |
| R-JUR-12 | Restreindre l'accès aux données de collecte aux personnes qui en ont l'usage | Recommandé |
13. Savoir-vivre
Un réseau ouvert n'a pas de modération. Ce qui le rend praticable tient à ce que chacun y met.
13.1 Une ressource partagée
Le temps d'antenne est commun. Ce qu'une personne consomme n'est plus disponible pour les autres, et un répéteur saturé ne sert plus personne.
Cela suffit à fonder l'essentiel : formuler court, taguer à la portée juste, ne pas rediffuser ce qui l'a déjà été.
13.2 Envers les nouveaux arrivants
Tout le monde a commencé sans rien comprendre aux régions, aux presets et aux zones de Fresnel.
Répondre aux questions élémentaires est ce qui fait qu'un réseau grandit. Un nouvel arrivant mal accueilli ne revient pas, et le maillage y perd un nœud.
Orienter plutôt que corriger. Signaler un canal plus adapté vaut mieux que reprocher un mauvais usage.
13.3 Neutralité
Le réseau ne prend pas parti. Il ne porte ni position politique, ni cause, ni revendication.
Ce n'est pas une position politique en soi : c'est la condition pour qu'un maillage rassemble des gens qui n'ont en commun que le territoire et l'intérêt technique.
Un canal détourné en tribune prive les autres d'une ressource limitée, et expose les hébergeurs de relais à être associés à des propos qu'ils n'ont pas choisi de transporter.
Les débats de fond ont leur place ailleurs, où la bande passante ne se compte pas en secondes par heure.
13.4 Ce qui n'a pas sa place
| Pratique | Raison |
|---|---|
| Occupation prolongée d'un canal | prive les autres d'une ressource limitée |
| Automatisme non filtré | consomme sans discernement |
| Propos visant une personne | aucune modération n'existe pour y remédier |
| Usurpation d'un émetteur identifié | rien ne l'empêche techniquement, tout l'interdit collectivement |
| Publication d'informations sur un tiers absent | l'expose sans qu'il puisse s'y opposer |
13.5 En cas de désaccord
Ni blocage, ni exclusion. Aucun mécanisme technique ne le permet, et c'est structurel.
Ce qui reste : expliquer, documenter, et si nécessaire cesser de répondre. Un usage abusif finit par isoler celui qui le pratique, parce que les autres cessent de l'écouter.
Les droits d'administration de la plateforme ne servent pas à trancher un désaccord de fond. Voir R-ROL-03.
13.6 Recommandations sur le savoir-vivre
| Réf | Recommandation | Niveau |
|---|---|---|
| R-USG-01 | Répondre aux questions des nouveaux arrivants | Recommandé |
| R-USG-02 | Orienter vers le canal adapté plutôt que reprocher un usage | Recommandé |
| R-USG-03 | Ne pas employer le réseau comme tribune politique ou revendicative | Recommandé |
| R-USG-04 | Ne pas publier d'information concernant une personne absente du réseau | Impératif |
| R-USG-05 | Ne pas se faire passer pour un émetteur identifié | Impératif |
| R-USG-06 | Partager ses mesures, y compris les liaisons qui échouent | Recommandé |
| R-USG-07 | Ne pas laisser un opérateur seul face à un relais en panne sur un site difficile | Conseillé |
14. Rôles sur la plateforme
Le tableau de bord Chappe 05 distingue trois rôles, attribués par le fournisseur d'identité.
Ils décrivent l'accès à la plateforme. Ils ne créent aucune hiérarchie entre les personnes : quelqu'un qui héberge un relais et quelqu'un qui n'en héberge pas ont la même voix dans les discussions.
14.1 Membre
Ce qu'il peut faire
- Consulter les nœuds, les adverts, la télémétrie, la carte
- Renseigner son profil et son indicatif
Ce qu'on attend de lui
- Respecter la convention de canaux
- Ne pas republier une information dont il ne connaît pas la source
- Signaler ce qui paraît anormal
Comment l'obtenir
C'est le rôle par défaut. Toute personne qui crée un compte l'obtient.
14.2 Opérateur
Ce qu'il peut faire
- Tout ce que peut un membre
- Adopter ses propres nœuds dans le hub
- Poser des étiquettes sur ses nœuds
- Déclarer des liaisons à surveiller
Ce qu'on attend de lui
- Maintenir ses relais en état de marche, ou signaler qu'il ne le peut plus
- Publier la position de ses relais d'infrastructure
- Documenter ses mesures, échecs compris
- Prévenir avant une intervention qui coupera un relais
- Ne pas modifier ce qui appartient à d'autres opérateurs
Comment l'obtenir
Il est attribué lorsqu'un nœud est en service et déclaré. Il n'y a pas de procédure formelle : un message suffit.
14.3 Administrateur
Ce qu'il peut faire
- Tout ce que peut un opérateur
- Gérer les canaux déclarés dans le hub
- Attribuer les rôles
- Configurer la plateforme
Ce qu'on attend de lui
- Maintenir la plateforme en état de marche
- Sauvegarder la configuration et les secrets
- Documenter les changements
- Ne pas utiliser les droits d'administration pour arbitrer un désaccord de fond
- Rendre compte à la communauté des décisions techniques structurantes
Comment l'obtenir
Il est réservé aux personnes qui maintiennent effectivement l'infrastructure. Il n'est ni un statut ni une récompense.
14.4 Une remarque sur les rôles
Ces rôles décrivent un accès à un outil. Ils ne créent aucune hiérarchie entre les personnes.
Quelqu'un qui héberge un relais et quelqu'un qui n'en héberge pas ont la même voix dans les discussions. Le rôle d'administrateur n'est ni un statut ni une récompense : c'est une charge d'entretien.
Voir la section 13 pour ce qui relève des usages partagés.
14.5 Recommandations sur les rôles
| Réf | Recommandation | Niveau |
|---|---|---|
| R-ROL-01 | Attribuer le rôle opérateur dès qu'un nœud est en service et déclaré | Recommandé |
| R-ROL-02 | Limiter le rôle administrateur aux personnes qui maintiennent effectivement la plateforme | Impératif |
| R-ROL-03 | Ne pas se servir des droits d'administration pour trancher un désaccord de fond | Impératif |
| R-ROL-04 | Consigner par écrit les décisions techniques qui engagent la communauté | Recommandé |
| R-ROL-05 | Prévoir un suppléant sur toute fonction critique, plateforme comprise | Conseillé |
15. Ce que ce réseau n'est pas
Chappe 05 n'est pas un dispositif de secours.
- Aucune disponibilité n'est garantie
- Un message peut arriver en retard, ou ne pas arriver
- Le réseau ne remplace ni les sirènes, ni FR-Alert, ni un appel au 112
- Personne ne surveille les messages en permanence
- Un réseau bien cloisonné tient mieux la charge, mais cela ne le rend pas fiable pour autant, voir 6.4
Le discours qui présente ces réseaux comme des dispositifs d'urgence vient d'un contexte nord-américain où le maillage des secours publics est différent. En France, il crée une attente que le réseau ne peut pas honorer.
Et il produit un risque réel : quelqu'un qui croit disposer d'un filet de sécurité prend des décisions différentes.
En cas d'urgence, appelez le 112.
16. Récapitulatif des recommandations
Impératives
| Réf | Objet |
|---|---|
| R-REG-01 bis | Autoriser l'inondation sur chaque région créée |
| R-RF-02 | Vérifier la fréquence après application du preset |
| R-RF-03 | Ne pas dépasser 27 dBm de PAR |
| R-RF-04 | Régler le rapport cyclique à 10 % |
| R-PRO-03 | Pas de firmware modifié sur un relais raccordé |
| R-PRO-05 | Ne compter sur aucun filtrage par identité |
| R-PRO-09 | Ne bloquer aucun type de paquet sans savoir ce qu'il transporte |
| R-PRO-10 | Changer le mot de passe d'administration avant mise en service |
| R-SIT-01 | Valider un site par la mesure avant engagement |
| R-SIT-06 | Vérifier l'accès hivernal |
| R-MAT-03 | Module radio pré-certifié |
| R-MAT-04 | Sauvegarder la clé privée dès le premier démarrage |
| R-CAB-01 | Limiter la longueur de câble |
| R-CAB-03 | Proscrire le RG174 |
| R-CAB-05 | Étanchéifier chaque connexion extérieure |
| R-CAB-07 | Parafoudre et terre si le câble entre dans un bâtiment |
| R-ALI-01 | Dimensionner sur décembre |
| R-ALI-04 | Écarter les cellules aux capacités fantaisistes |
| R-EXP-02 | Ne pas publier la position d'un nœud personnel mobile |
| R-EXP-05 | Sauvegarder les clés hors de l'appareil |
| R-ROL-02 | Limiter le rôle administrateur |
| R-ROL-03 | Ne pas arbitrer un désaccord par les droits |
| R-JUR-01 | Respecter puissance et rapport cyclique |
| R-JUR-02 | Matériel radio pré-certifié |
| R-JUR-03 | Supprimer le contenu avant enregistrement |
| R-JUR-04 | Publier une mention d'information sur les données collectées |
| R-JUR-05 | Définir et appliquer une durée de conservation |
| R-JUR-06 | Permettre le retrait d'un nœud des services publiés |
| R-JUR-07 | Pas de position d'un nœud personnel sans accord |
| R-JUR-09 | Citer la source de tout bulletin rediffusé |
| R-USG-04 | Pas d'information sur une personne absente du réseau |
| R-USG-05 | Ne pas usurper un émetteur identifié |
| R-SEC-01 | Considérer tout message de canal comme public |
| R-SEC-03 | Ne faire transiter aucune donnée exposant une personne |
| R-SEC-05 | Ne jamais publier un identifiant, un mot de passe ou une clé |
| R-SEC-06 | Mot de passe d'administration distinct par relais |
| R-SEC-07 | Sauvegarder la clé privée hors de l'appareil |
| R-SEC-08 | Supprimer le contenu avant stockage sur une passerelle |
| R-SEC-09 | Broker de passerelle strictement privé |
| R-SEC-11 | Regénérer l'identité d'un nœud dont la clé a pu être exposée |
| R-AIR-04 | Ne poser un relais que si l'on peut nommer ce qu'il couvrira |
| R-AIR-05 | Ne pas densifier une zone déjà couverte |
| R-AIR-07 | Marquer chaque message à la plus petite portée utile |
| R-AIR-10 | Proscrire tout automatisme publiant sans filtrage |
| R-COO-03 | Annoncer toute restriction : retrait d'étiquette, refus de * |
| R-COO-04 | Prévenir avant toute interruption d'un répéteur desservant une zone voisine |
| R-REG-03 | Conserver la région * activée |
| R-REG-06 | Régions par la géographie, jamais par l'usage |
| R-REG-08 | Annoncer tout retrait d'étiquette |
| R-SEC-14 | Un message de canal peut être forgé par tout membre |
| R-RF-08 | Companions en 2 octets seulement si le parc est à jour |
Recommandées
| Réf | Objet |
|---|---|
| R-RF-01 | Appliquer le preset nommé plutôt que saisir les valeurs |
| R-RF-05 | Écarter les modules à amplificateur de puissance |
| R-RF-06 | Vérifier la puissance rayonnée avant mise en service |
| R-RF-07 | path.hash.mode 1 sur les répéteurs en 1.14+ |
| R-RF-09 | Vérifier le firmware des répéteurs dont on dépend |
| R-REG-01 | Déclarer tous les niveaux qui couvrent le site |
| R-REG-02 | Région par défaut sur fr |
| R-REG-04 | flood.max.unscoped sur 5, ou 2 en zone frontalière |
| R-REG-05 | Codes ISO, jamais les noms en toutes lettres |
| R-REG-07 | Code d'une zone voisine seulement si routage réel |
| R-REG-09 | Vérifier la version de firmware |
| R-REG-10 | Se référer à ce que font les opérateurs voisins |
| R-PRO-01 | Détection de boucles en moderate |
| R-PRO-04 | Signaler tout comportement anormal observé |
| R-PRO-06 | Appliquer la grille de la classe déclarée |
| R-PRO-08 | Relever stats-filter avant et après tout durcissement |
| R-SEC-02 | Réserver les messages directs au confidentiel |
| R-SEC-04 | Tenir compte des métadonnées |
| R-SEC-10 | Vérifier la clé publique par un canal indépendant |
| R-SEC-12 | Ne pas présenter le réseau comme sécurisé |
| R-SEC-13 | Documenter ce que le réseau protège et ne protège pas |
| R-AIR-01 | Couper l'advert de flood une fois le relais intégré |
| R-AIR-02 | Intervalle maximal si un advert de flood est conservé |
| R-AIR-03 | Conserver les adverts à zéro saut |
| R-AIR-08 | Réserver la portée nationale à ce qui la justifie |
| R-AIR-12 | Formuler court, le coût croît avec la longueur |
| R-AIR-09 | Message direct plutôt que canal si destinataire unique |
| R-AIR-11 | Ne pas rediffuser un message déjà relayé |
| R-COO-01 | Appliquer la convention française plutôt qu'un arrangement local |
| R-COO-02 | Signaler aux opérateurs concernés l'ajout du code de leur zone |
| R-COO-05 | Convenir des modalités avant toute liaison transfrontalière |
| R-COO-06 | Documenter quel répéteur porte quelle étiquette |
| R-SIT-02 | Observer et photographier chaque azimut visé |
| R-SIT-03 | Trois relevés, retenir la médiane |
| R-SIT-04 | Vérifier le dégagement de la zone de Fresnel |
| R-SIT-05 | Documenter les liaisons qui échouent |
| R-MAT-01 | Microcontrôleur nRF52840 sur relais autonome |
| R-MAT-02 | Transceiver SX1262 |
| R-ANT-01 | Antenne couvrant 863-870 MHz, non large bande |
| R-ANT-02 | Adapter le gain au relief |
| R-ANT-04 | Vérifier le type de connecteur avant commande |
| R-CAB-02 | Câble à faibles pertes au-delà de 3 m |
| R-CAB-04 | Câbles connectorisés d'usine |
| R-CAB-06 | Antenne au-dessus du boîtier, boucle d'égouttement |
| R-ALI-02 | 10 W minimum, 20 à 30 W confortable |
| R-ALI-03 | Cellules 18650 de marque reconnue |
| R-ALI-06 | Réserve couvrant deux semaines sans production |
| R-ALI-07 | Incliner fortement le panneau sur site enneigé |
| R-NOM-01 | Nommer les relais d'après leur toponyme |
| R-NOM-02 | Conserver le préfixe départemental |
| R-EXP-01 | Publier la position d'un relais d'infrastructure |
| R-EXP-03 | Signaler toute panne dépassant 24 heures |
| R-ROL-01 | Rôle opérateur dès qu'un nœud est en service |
| R-ROL-04 | Consigner par écrit les décisions engageant la communauté |
| R-JUR-08 | Tenir un registre des traitements |
| R-JUR-10 | Accord de l'auteur avant republication hors du réseau |
| R-JUR-11 | Citer les contributeurs et respecter les licences |
| R-JUR-12 | Restreindre l'accès aux données de collecte |
| R-USG-01 | Répondre aux questions des nouveaux arrivants |
| R-USG-02 | Orienter plutôt que reprocher |
| R-USG-03 | Ne pas employer le réseau comme tribune |
| R-USG-06 | Partager ses mesures, échecs compris |
Conseillées
| Réf | Objet |
|---|---|
| R-REG-11 | Réexaminer la position si le trafic tagué large devient notable |
| R-REG-12 | Renseigner region home au niveau communal |
| R-PRO-02 | Réserver strict aux tempêtes avérées |
| R-PRO-07 | Dans le doute, déclarer la classe inférieure |
| R-AIR-06 | Limiter le nombre de sauts sur les relais de bordure |
| R-COO-07 | Partager les mesures avec les réseaux limitrophes |
| R-SIT-07 | Épaulement dégagé plutôt que col encaissé |
| R-ANT-03 | Évaluer le gain d'après la longueur physique |
| R-ANT-05 | ROS inférieur à 1,5 dans la bande d'usage |
| R-ALI-05 | Vérifier le type de tête attendu par le support |
| R-ALI-08 | Chimie LiFePO4 sur les sites d'altitude |
| R-NOM-03 | Signaler tout changement de nom |
| R-EXP-04 | Annoncer les interventions programmées |
| R-EXP-06 | Tenir une fiche par relais |
| R-ROL-05 | Prévoir un suppléant sur toute fonction critique |
| R-USG-07 | Ne pas laisser un opérateur seul face à un relais en panne |
17. Ressources
Documentation MeshCore
| Ressource | Adresse |
|---|---|
| Documentation officielle | https://docs.meshcore.io |
| Commandes de répéteur | https://meshcore.ninja/repeater-commands/ |
| Format des paquets | https://docs.meshcore.io/packet_format/ |
| Foire aux questions, hash de chemin | https://docs.meshcore.io/faq/ |
| Flasher les appareils | https://flasher.meshcore.io |
| Carte mondiale | https://map.meshcore.io |
| Code source | https://github.com/meshcore-dev/MeshCore |
| Analyse du code, chiffrement | https://deepwiki.com/ripplebiz/MeshCore/9-security-and-access-control |
Cadre juridique
| Ressource | Adresse |
|---|---|
| RGPD, texte consolidé | https://www.cnil.fr/fr/reglement-europeen-protection-donnees |
| CNIL, notion de donnée personnelle | https://www.cnil.fr/fr/definition/donnee-personnelle |
| ANFR, utilisation des fréquences | https://www.anfr.fr |
| ARCEP, dispositifs à courte portée | https://www.arcep.fr |
Communauté
| Ressource | Adresse |
|---|---|
| Gaulix, règles de base et générateur de régions | https://gaulix.fr/docs-parametrage/regles-de-nommage-regions-canaux-meshcore/ |
| Gaulix, dix idées reçues sur les régions | https://gaulix.fr/10-idees-recues-sur-les-regions-meshcore/ |
| Calculateur de pertes et puissances | à compléter |
| Communauté française | https://www.meshcore.fr |
| KiekR, guide pour opérateurs de relais | https://kiekr.app/repeater-operators |
| KiekR, pourquoi les régions | https://kiekr.app/why-regions |
| EastMesh, canaux et clés | https://wiki.eastmesh.au/meshcore/channels-and-keys/ |
| Démonstration sur les clés hashtag | https://github.com/jkingsman/meshcore-packet-knife |
Chappe 05
| Ressource | Adresse |
|---|---|
| Carte temps réel | https://carte.chappe05.fr |
| Supervision | https://dashboard.chappe05.fr |
| Site | https://chappe05.fr |
18. Points ouverts
Ce document est une version de travail. Les points suivants restent à trancher :
| Point | État |
|---|---|
| Taille de hash des companions | Quand basculer les companions du 05 en 2 octets. Suppose de connaître l'état du parc de répéteurs de la zone, y compris ceux des réseaux voisins traversés |
| Échelle d'annonce européenne | Aucune classe ne s'annonce en eu aujourd'hui : le niveau reste porté pour le relayage, sans palier d'annonce. À définir le jour où une convention européenne sera nécessaire |
| Document de référence français sur les régions | Aucun n'a été trouvé, alors que plusieurs communautés étrangères ont formalisé leur stratégie |
| Lien du calculateur Gaulix | À compléter |
| Niveau communal hors classe 3 | Le palier municipal ne se comporte comme tel que là où plusieurs relais partagent la commune. Son intérêt au-delà de la classe 3 reste à établir |
| Répéteurs couvrant une zone voisine | Aucun identifié à ce jour. Le générateur du flasheur sait désormais lesquels sont atteints, reste à décider lesquels sont réellement desservis |
| Grille de filtrage de la classe 0 | Elle reprend celle de la classe 1, faute de cas réel à mesurer. À arrêter quand un relais national sera posé |
Toute remarque d'opérateur est bienvenue.
Annexe A. Configurations types
Cinq profils, à adapter avant application. Chaque bloc est une séquence complète, dans l'ordre où elle doit être saisie.
A.0 Avant toute chose
Vérifier la version de firmware.
ver
Les séquences ci-dessous supposent 1.15.0 ou supérieur.
region put crée une région en refus d'inondation. C'est le comportement du firmware, toutes versions confondues : la région est créée avec le drapeau de refus, et seul un region allowf <nom> explicite l'ouvre. Une région créée et laissée fermée fait du relais un trou pour cette étiquette, sans que rien ne le signale. Les séquences ci-dessous portent donc systématiquement les deux commandes.
Ne pas oublier region save. Sans elle, l'arbre est perdu au redémarrage.
Vérifier les paramètres appliqués après configuration.
get
region
Sauvegarder la clé privée avant toute mise en service. Elle est irremplaçable et non révocable.
A.1 Classe 1, backbone
Point haut structurant, qui relie des bassins entre eux. Sa perte coupe une partie du réseau du reste : il suppose un site dégagé, une alimentation fiable et un opérateur joignable. Voir 1.4.
set name FR05-LIEU-LIBRE
set radio 869.618,62.5,8,8
set tx 22
set dutycycle 10
set loop.detect strict
set flood.max 64
set flood.max.unscoped 2
set grp.data.block 1
set block.lasthop 1
set block.alltypes 0
set grp.relay.enable 1
set flood.max.type 5 12
set flood.max.type 6 6
set flood.max.type 10 8
set flood.max.type 15 6
set prio.type 6 8
set prio.type 15 8
set airtime.budget.type 6 10
set airtime.budget.type 15 5
set path.hash.mode 1
set multi.acks 1
region put eu
region put fr eu
region put fr-pac fr
region put fr-05 fr-pac
region put fr-05-061-gap fr-05
region allowf eu
region allowf fr
region allowf fr-pac
region allowf fr-05
region allowf fr-05-061-gap
region default fr-pac
region home fr-05-061-gap
region save
set advert.interval 240
set flood.advert.interval 0
set lat 44.xxxxx
set lon 6.xxxxx
gps advert prefs
set password <mot de passe unique>
reboot
À adapter : le nom, la commune dans l'arbre de régions, les coordonnées, le mot de passe. Le flasheur produit ces cinq lignes de région à partir d'une adresse ou d'un point posé sur la carte.
Sur flood.advert.interval 0 : coupe les annonces inondées. À ne faire qu'une fois le relais intégré au maillage, sinon personne ne le découvrira. Voir 6.5.
Vérifier que la région * reste activée dans l'interface d'administration. Elle laisse passer le trafic non encore tagué.
Pourquoi strict et non moderate. Une boucle amorcée sur un relais de backbone se propage à l'ensemble du réseau. Le risque de rejeter un trajet légitime en maillage dense est réel, mais il reste local, là où la tempête ne l'est pas. Relever stats-filter après quelques semaines pour vérifier que les rejets restent marginaux.
Pourquoi flood.max.unscoped 2. Un backbone ne doit pas servir de porte d'entrée au trafic non étiqueté venu de loin : le volume qu'il porterait est exactement celui que les régions existent pour contenir.
A.2 Classe 2, bassin et desserte
Toit dominant, colline urbaine, point haut de bassin. Il couvre une vallée, une commune ou un versant, et rassemble le trafic local. C'est la classe la plus courante.
set name FR05-LIEU-LIBRE
set radio 869.618,62.5,8,8
set tx 22
set dutycycle 10
set loop.detect moderate
set flood.max 32
set flood.max.unscoped 5
set grp.data.block 1
set block.lasthop 1
set block.alltypes 0
set grp.relay.enable 1
set flood.max.type 5 12
set flood.max.type 6 4
set flood.max.type 10 8
set flood.max.type 15 6
set prio.type 6 6
set airtime.budget.type 6 15
set path.hash.mode 1
set multi.acks 1
region put eu
region put fr eu
region put fr-pac fr
region put fr-05 fr-pac
region put fr-05-061-gap fr-05
region allowf eu
region allowf fr
region allowf fr-pac
region allowf fr-05
region allowf fr-05-061-gap
region default fr-05
region home fr-05-061-gap
region save
set advert.interval 240
set flood.advert.interval 0
set lat 44.xxxxx
set lon 6.xxxxx
gps advert prefs
set password <mot de passe unique>
reboot
À adapter : le nom, la commune dans l'arbre de régions, les coordonnées, le mot de passe. Le flasheur produit ces cinq lignes de région à partir d'une adresse ou d'un point posé sur la carte.
Sur flood.advert.interval 0 : coupe les annonces inondées. À ne faire qu'une fois le relais intégré au maillage, sinon personne ne le découvrira. Voir 6.5.
Vérifier que la région * reste activée dans l'interface d'administration. Elle laisse passer le trafic non encore tagué.
Un relais de crête entre dans cette classe, sauf s'il porte réellement une liaison entre bassins. La hauteur élargit la couverture géographique, pas la portée logique : un relais de crête et un relais de toit portent les mêmes étiquettes. Seule différence pratique, la puissance devra souvent être réduite, une antenne à gain élevé faisant dépasser les 27 dBm de PAR. Voir 2.2.
A.3 Classe 3, confort local
Relais d'appoint qui comble un trou de couverture déjà entouré : un quartier, un creux, une façade de vallée. Sa perte se remarque à peine au-delà de sa zone.
set name FR05-LIEU-LIBRE
set radio 869.618,62.5,8,8
set tx 22
set dutycycle 10
set loop.detect moderate
set flood.max 16
set flood.max.unscoped 5
set grp.data.block 1
set block.lasthop 1
set block.alltypes 0
set grp.relay.enable 0
set flood.max.type 5 8
set flood.max.type 6 2
set flood.max.type 10 6
set flood.max.type 15 4
set path.hash.mode 1
set multi.acks 1
region put eu
region put fr eu
region put fr-pac fr
region put fr-05 fr-pac
region put fr-05-061-gap fr-05
region allowf eu
region allowf fr
region allowf fr-pac
region allowf fr-05
region allowf fr-05-061-gap
region default fr-05-061-gap
region home fr-05-061-gap
region save
set advert.interval 240
set flood.advert.interval 0
set lat 44.xxxxx
set lon 6.xxxxx
gps advert prefs
set password <mot de passe unique>
reboot
À adapter : le nom, la commune dans l'arbre de régions, les coordonnées, le mot de passe. Le flasheur produit ces cinq lignes de région à partir d'une adresse ou d'un point posé sur la carte.
Sur flood.advert.interval 0 : coupe les annonces inondées. À ne faire qu'une fois le relais intégré au maillage, sinon personne ne le découvrira. Voir 6.5.
Vérifier que la région * reste activée dans l'interface d'administration. Elle laisse passer le trafic non encore tagué.
Pourquoi les plafonds les plus bas. Ce n'est pas une défiance envers les petits relais. Un relais de confort local se trouve, par construction, dans une zone déjà couverte : ce qu'il inonde loin est très probablement redondant avec ce qu'un relais de classe 2 a déjà porté. Ce qu'il apporte, c'est la couverture d'un trou, pas un saut de plus vers l'extérieur.
grp.relay.enable 0. La confirmation passive de relais coûte de l'écoute et des réémissions. Elle se justifie là où la perte d'un saut est coûteuse, pas sur un relais dont les voisins entendent déjà la même chose.
A.4 Variante, participation au routage d'un département voisin
Site dominant une limite départementale, et couvrant effectivement des zones du département voisin qui seraient autrement isolées. Cette variante se superpose à une classe, elle ne la remplace pas.
region put fr-04 fr
region allowf fr-04
region save
Le critère est fonctionnel, pas géographique. Ajouter fr-04 ne se justifie que si le relais fait réellement transiter des messages à l'intérieur du 04. Voir R-REG-07.
Savoir quels départements le relais atteint réellement. Le générateur de régions du flasheur échantillonne la zone couverte, trois couronnes d'azimuts autour du site, et interroge l'API géographique de l'État pour chaque point. Il restitue les départements atteints, avec le nombre de points, le secteur d'azimut et la distance à partir de laquelle ils apparaissent. Pour une antenne directionnelle, l'échantillonnage se limite au secteur visé.
L'outil constate la géographie, il ne décide pas. Les départements détectés sont proposés décochés : atteindre un département n'est pas y router du trafic. C'est l'opérateur qui tranche, et qui prévient les voisins.
Ne pas oublier region allowf. Une région créée sans autorisation d'inondation est un trou : le relais annonce porter le 04 et n'en relaie rien. Voir R-REG-01 bis.
Prévenir les opérateurs concernés. Ils comptent peut-être sur ce relais sans le savoir. Voir 7.2.
A.5 Variante, relais frontalier international
Répéteur faisant face à un pays voisin, exposé à un volume important de trafic étranger non tagué. Là encore, variante d'une classe, pas une classe de plus.
set flood.max.unscoped 2
Deux mesures spécifiques.
flood.max.unscoped 2, plus strict, pour couper le trafic non tagué venu de loin. Un relais de classe 1 y est déjà.
Et, si le volume le justifie, passer la région * en refus dans l'interface d'administration. Cela bloque intégralement le trafic sans région.
Cette seconde mesure coupe aussi les débutants du voisinage. À n'employer qu'en dernier recours, et à annoncer.
Pour un échange délibéré avec le pays voisin, ajouter le code de la zone concernée dans la liste, region allowf compris, et convenir de la réciproque avec les opérateurs d'en face.
A.6 Room server
Salon persistant. Il ne retransmet pas : les réglages de relayage sont sans objet.
set name FR05-LIEU-LIBRE
set radio 869.618,62.5,8,8
set tx 22
set path.hash.mode 1
set multi.acks 1
region default fr
region home fr-05-061-gap
region save
set guest.password <mot de passe de publication>
set allow.read.only on
set owner.info Chappe 05 - reseau des Hautes-Alpes - chappe05.fr
set lat 44.xxxxx
set lon 6.xxxxx
gps advert prefs
set password <mot de passe d'administration, distinct>
reboot
Deux mots de passe distincts. Le premier autorise la publication, le second l'administration. Ne jamais confondre.
allow.read.only on ouvre la lecture sans mot de passe, tout en réservant la publication. C'est le seul dispositif du réseau permettant cette asymétrie.
Ne pas activer set repeat on : un salon en mode répéteur perd les fonctions d'administration à distance propres au firmware répéteur.
A.7 Companion, terminal ou passerelle
Un companion ne relaie rien. region put est sans effet ; seul le défaut compte, et surtout le tag des canaux.
set name FR05-LIEU-LIBRE
set radio 869.618,62.5,8,8
set tx 22
set multi.acks 1
region default fr
region home fr-05-061-gap
region save
L'essentiel se règle dans l'application, sous Paramètres expérimentaux :
| Réglage | Valeur |
|---|---|
| Région par défaut | fr |
| Taille d'en-tête | 2 octets, si le parc régional est en 1.14 ou supérieur |
| Tag par canal | la portée la plus juste pour chaque canal |
Le tag des canaux est le levier principal de préservation du réseau. Voir la politique des canaux et des messages.
Ne pas publier la position d'un nœud personnel mobile. Voir R-EXP-02.
A.8 Tableau de synthèse
| Profil | loop.detect |
flood.max |
.unscoped |
grp.relay |
default |
home |
Région * |
|---|---|---|---|---|---|---|---|
| Classe 1, backbone | strict |
64 | 2 | 1 | fr-pac |
commune | activée |
| Classe 2, bassin | moderate |
32 | 5 | 1 | fr-05 |
commune | activée |
| Classe 3, confort local | moderate |
16 | 5 | 0 | commune | commune | activée |
| Variante voisin | selon classe | selon classe | selon classe | selon classe | selon classe | commune | activée |
| Variante frontalier | selon classe | selon classe | 2 | selon classe | selon classe | commune | selon volume |
| Room server | sans objet | sans objet | sans objet | sans objet | fr |
commune | sans objet |
| Companion | sans objet | sans objet | sans objet | sans objet | fr |
commune | sans objet |
La région par défaut, elle, descend avec la classe : fr en classe 0, puis fr-pac, fr-05, la commune. Elle ne règle que la portée des annonces du relais, jamais celle des réponses qu'il émet. Voir 3.7.
Toutes les classes portent le même arbre de régions : eu, fr, fr-pac, fr-05 et la commune, chacun ouvert à l'inondation. Ce qui distingue les classes, ce sont les plafonds et la qualité de service, jamais la liste des régions portées. Voir 3.5.
Tous les profils : dutycycle 10, flood.advert.interval 0 une fois intégrés au maillage, path.hash.mode 1 sur les répéteurs en 1.14 ou supérieur, position publiée pour l'infrastructure et jamais pour un nœud mobile.
A.9 Réserves
Les noms de commandes varient selon la version de firmware et le rôle de l'appareil. Vérifier avec help avant application.
gps advert prefs n'existe que sur les images compilées avec le support GPS. C'est cette commande, et non un réglage set, qui décide si un nœud publie sa position : none ne publie rien, prefs publie les coordonnées saisies par set lat et set lon, share publie la position du récepteur GPS en direct. Sur une image sans GPS, la commande est absente et les coordonnées saisies ne sont pas diffusées.
La région * se gère dans l'interface d'administration à distance, section de gestion des régions, plutôt qu'en ligne de commande. Vérifier son état après configuration.
flood.max.unscoped requiert le firmware 1.16 ou supérieur.
Sur path.hash.mode 1 : la valeur 1 correspond bien à un hash de 2 octets. Voir 2.4.
Ce réglage ne concerne que les adverts du répéteur. Un répéteur en 1.14 ou supérieur relaie les trois tailles.
Ne pas confondre avec le réglage du companion, qui décide de la taille des messages émis et se configure dans l'application, sous Paramètres expérimentaux. Celui-là ne doit passer en 2 octets que si le parc de répéteurs de la zone est à jour.
Chaque relais doit avoir un mot de passe d'administration distinct, changé à la mise en service. Voir R-SEC-06.
Les valeurs de classe sont des points de départ. Elles supposent un réseau en phase de constitution et n'ont pas encore été éprouvées sur un parc réel. Elles devront être réexaminées à la lumière des compteurs de stats-filter, et à mesure que le maillage se densifie. Voir R-PRO-08.
Les défauts d'usine ne conviennent pas. Un relais neuf sort à 50 % de rapport cyclique et avec password comme mot de passe d'administration. Voir le tableau des défauts en 4.2.
Le flasheur applique ces profils en un clic, sur chappe05.fr/flasher/. La table des classes y est unique : ajuster une classe se fait à un seul endroit, et cette annexe en est le reflet écrit.
Annexe B. Fiche de relais
À tenir à jour pour chaque nœud, et à conserver hors de l'appareil.
Nom FR05-
Rôle repeater | room server | companion
Classe 1 backbone | 2 bassin | 3 confort local
Clé publique
Clé privée → gestionnaire de mots de passe, jamais ici
Site lieu-dit, commune
Position lat / lon
Altitude m
Hébergeur nom, contact
Accès permanent | saisonnier, conditions
Matériel modèle du nœud
Antenne modèle, gain annoncé, gain estimé
Câble type, longueur
Alimentation secteur | solaire, panneau W, capacité Ah
Étiquettes region put
Portée par défaut region default
Firmware version, date de mise à jour
Mise en service date
Liaisons validées correspondant, distance, azimut, SNR, date
Interventions date, nature
POL-CHP05-REL-2026-001 · version 1.8 · 15 septembre 2026 Und3r_1337, Chappe 05, réseau LoRa des Hautes-Alpes