Construction d’un réseau Meshwork

La configuration de Meshwork se résume à faire en sorte que chaque nœud connaisse son propre nom et son domaine et dispose d’au moins un pair joignable. Ensuite, le domaine construit lui-même les liaisons restantes. Toutes les actions sont effectuées dans l’interface d’administration web ; la modification des paramètres Meshwork nécessite le rôle d’administrateur. Les champs exacts et leur emplacement sont décrits dans la section Interface web.

Prérequis et joignabilité

  • Joignabilité réseau. Un nœud doit pouvoir établir une connexion TCP vers le serveur web d’administration d’un pair. Le port est repris de l’adresse du pair (« hôte:port ») ou du port public que le pair annonce à son sujet (Identité du nœud) — c’est toujours le port sur lequel son serveur web est configuré et, lorsque HTTPS est activé chez le pair, son port TLS. Les valeurs pour une installation neuve sont indiquées dans Réglages initiaux ; le port requis d’un pair doit être ouvert du côté des autres nœuds.

  • HTTPS pour la découverte automatique via internet. Si les nœuds du domaine découverts automatiquement communiquent via des adresses publiques (internet), ils doivent établir entre eux une connexion sécurisée (HTTPS) afin de confirmer en toute sécurité leur authenticité mutuelle sur le réseau ouvert. Activez donc HTTPS au moins sur les nœuds par lesquels s’effectue la découverte. L’activation de HTTPS prend effet après un redémarrage du serveur. Si les nœuds ne sont accessibles que par des adresses publiques et qu’aucun n’utilise HTTPS, les liaisons directes découvertes automatiquement ne sont pas authentifiées : le nœud reste visible (via un relais depuis un pair), mais sa liaison directe est signalée avec un motif (voir Carte du réseau et catalogue des ressources).

  • Réseau local — HTTPS non requis. Si les nœuds du domaine communiquent via des adresses privées d’un même réseau de confiance (10.x.x.x, 172.16–31.x.x, 192.168.x.x, ainsi que 127.x.x.x et 169.254.x.x), une connexion sécurisée pour la découverte automatique n’est pas nécessaire — les nœuds confirment l’authenticité également via un simple HTTP. Un nœud est reconnu comme local d’après son adresse IP, définissez donc les pairs sur un réseau local précisément par adresses IP et non par noms de domaine. HTTPS peut néanmoins être activé — il sera utilisé s’il est disponible.

  • Une liaison explicite fonctionne aussi via HTTP — l’exigence HTTPS ne s’y applique en aucun cas.

  • Le nom et le secret sont obligatoires. Un nœud ne participe au réseau que si un nom et un secret de signature lui sont définis. Sans nom ou sans secret, un nœud ne participe pas à Meshwork.

  • Restrictions sur les noms. Un nom de nœud comporte de 2 à 16 caractères, un nom de domaine ne dépasse pas 16 caractères ; les lettres latines, les chiffres et les caractères _, -, . sont autorisés. Les espaces et autres caractères ne sont pas admis (par exemple, le domaine « Alex Home » ne peut pas être défini — utilisez Alex_Home).

Identité du nœud

Dans les paramètres du serveur, on définit comment le nœud se présente sur le réseau :

  • Nom du nœud — un nom court et unique par lequel les autres reconnaissent le nœud. Un nom vide signifie que le nœud ne participe pas au réseau.

  • Note — une étiquette libre du nœud (par exemple « Moscou, baie 3 »), affichée dans l’interface d’administration pour plus de commodité et sans effet sur le fonctionnement du réseau.

  • Domaine — les nœuds ayant le même domaine se trouvent automatiquement, partagent un catalogue des ressources commun et répliquent les alertes. Une valeur vide désactive la découverte automatique (le nœud ne peut fonctionner que via la liste explicite de pairs).

  • Ports publics (HTTP et HTTPS) — les ports que le nœud communique aux pairs pour la joignabilité en retour lors de la traduction d’adresses (NAT). S’ils ne sont pas définis, le nœud communique ses propres ports de serveur web.

  • Domaines supplémentaires (mode super-node) — le nœud participe à la découverte automatique de chaque domaine listé au même titre que le domaine principal. Les ressources restent isolées par domaine — le nœud ne les mélange pas.

Pairs et secrets

On définit ici avec quels pairs le nœud maintient une liaison directe et comment les parties se vérifient mutuellement. Les requêtes entre nœuds sont signées avec un secret partagé, de sorte qu’aucune liaison ne s’établit sans secrets concordants. La longueur de chaque secret est de 16 à 128 caractères.

La liste des pairs est constituée d’entrées de la forme « adresse — nom — secret » :

  • Adresse d’un pair — le « hôte:port » de son interface d’administration. Une entrée peut être sans adresse : un tel pair n’est jamais appelé par ce nœud (il ne fait que se connecter lui-même) et est identifié par son nom et son secret — cela s’utilise pour un nœud derrière un NAT qui ne peut qu’initier une connexion.

  • Nom d’un pair doit correspondre exactement au nom défini sur le pair lui-même.

  • Secret partagé de la liaison avec ce pair doit être identique aux deux extrémités.

Outre la liste des pairs, un nœud possède son propre secret de signature : c’est avec lui que le nœud signe ses requêtes sortantes. Un pair vérifie la signature avec le secret qu’il conserve pour ce nœud, de sorte que le propre secret du nœud doit correspondre au secret enregistré à son sujet chez chaque pair.

Note

Règle pratique : pour un site simple, définissez un unique secret partagé et utilisez-le à la fois comme propre secret de signature sur chaque nœud et comme secret dans chaque entrée de pair — alors toute paire de nœuds s’authentifie de la même manière. Pour une séparation plus stricte, vous pouvez conserver un secret distinct par liaison.

Démarrage rapide

Variante A. Deux nœuds directement (liaison explicite)

Le Meshwork le plus simple, ce sont deux serveurs connectés manuellement.

  1. Sur chaque nœud, définissez un nom court unique (par exemple, node1 et node2).

  2. Sur chaque nœud, ajoutez une entrée de pair : l’adresse de son interface d’administration, son nom et le secret partagé.

  3. Sur chaque nœud, définissez le propre secret de signature. Le plus simple est de conserver un unique secret partagé pour les deux nœuds.

  4. Ouvrez la carte du réseau dans l’interface d’administration. En quelques secondes, les deux nœuds se voient mutuellement à l’état « online ».

Un domaine n’a pas besoin d’être défini pour cela, mais sans domaine commun vous n’obtiendrez que la visibilité mutuelle des nœuds. Le catalogue des ressources commun et la réplication des alertes ne fonctionnent qu’entre nœuds du même domaine — si vous en avez besoin, définissez un domaine commun pour les nœuds (variante B).

Variante B. Un domaine avec découverte automatique

Lorsqu’il y a plus de deux nœuds, il est plus commode de leur attribuer un domaine commun que de lister chaque liaison manuellement.

  1. Sur chaque nœud, définissez un nom unique et le domaine commun du site.

  2. Si les nœuds du domaine communiquent via internet (par adresses publiques), activez HTTPS sur au moins un ou deux nœuds du domaine et redémarrez-les (voir Prérequis et joignabilité). Sur un réseau local, cette étape peut être ignorée.

  3. Reliez les nœuds via un « point d’entrée » : sur chaque nœud, indiquez au moins un pair déjà opérationnel (adresse, nom, secret partagé), comme dans la variante A. Le nœud trouvera de lui-même les autres nœuds du domaine.

  4. Ouvrez la carte du réseau. En quelques secondes, tous les nœuds du domaine y apparaissent : ceux indiqués explicitement comme permanents, ceux trouvés automatiquement comme découverts automatiquement.

Nœuds derrière un NAT

Un nœud sur un réseau privé, injoignable directement depuis l’extérieur, peut participer pleinement au réseau en tant qu”initiateur. Il établit lui-même une connexion vers un pair joignable, et via cette unique connexion les données circulent dans les deux sens — le nœud se signale et reçoit des informations sur les autres. Pour un tel nœud, il suffit d’indiquer au moins un pair joignable.

Les informations sur un nœud NAT se propagent automatiquement dans le domaine : un pair qui est online avec lui relaie son état aux autres. Chez les pairs distants, un tel nœud est affiché comme reçu via relais, mais à l’état « online ».

Pour qu’un nœud derrière un NAT soit joignable aussi pour les connexions entrantes (par exemple, pour servir de point d’entrée du domaine), configurez la publication du port public (voir Identité du nœud) et transférez ce port sur le routeur/pare-feu vers le serveur web d’administration du nœud. Du côté des pairs, un tel nœud est conservé sous une entrée « nom + secret sans adresse » : le pair n’essaiera pas en vain de joindre l’adresse privée, mais identifiera le nœud par son nom et son secret lorsqu’il se connectera de lui-même.

Problèmes courants

  • Les nœuds ne se voient pas. Vérifiez : les deux ont un nom de nœud défini ; chacun a un secret de signature et il correspond à celui enregistré à son sujet chez le pair ; l’adresse du pair est correcte et son port d’administration est ouvert du côté de l’autre nœud.

  • Un pair est à l’état « offline ». Le nœud a dépassé la fenêtre d’attente : vérifiez le réseau et le bon fonctionnement de son serveur web. Pour un nœud derrière un NAT, assurez-vous qu’il initie lui-même la connexion vers un pair joignable ou que la publication et le transfert de port sont configurés.

  • Un pair découvert automatiquement est signalé avec un motif, la liaison directe ne fonctionne pas. Le domaine ne parvient pas à confirmer l’authenticité des nœuds. S’ils communiquent via internet, activez HTTPS sur au moins un nœud du domaine et redémarrez-le ; sur un réseau local, vérifiez que les pairs sont indiqués par adresses IP et non par noms de domaine. Via une liaison explicite (nœuds permanents), la liaison fonctionne aussi sans HTTPS.

  • Indication NAT erronée. Si les nœuds sont indiqués par noms de domaine et non par IP, l’indication NAT peut ne pas être déterminée d’après l’adresse — cela ne gêne pas le fonctionnement. Pour un diagnostic NAT fiable, utilisez des adresses IP.

  • Le changement de domaine a « réinitialisé » la carte. La modification du domaine ou de l’ensemble des domaines supplémentaires reconstruit l’appartenance : les liaisons découvertes automatiquement et le catalogue commun sont temporairement réinitialisés et reconstruits. C’est normal.