Français English Contribute to the Janmesh project documentation & translation
Accueil Un mesh local ? Pour quoi faire ? Rejoindre ou créer un meshlocal Logiciels du projet Janmesh IRC/Contact

Janmesh - Journal

Retrouvez l'histoire du JanMesh, depuis le début

Test applicatifs

La messagerie instantannée via ZeroConf/Bonjour ne semble pas vouloir fonctionner avec le client Empathy. Après de brèves recherches sur internet il semble que le client Pidgin soit lui opérationnel pour opérer ce genre d'application.
Le partage DAAP de Ryhtmbox reste à tester plus avant. La découverte de peers locaux pour le téléchargement de torrents avec Transmission reste complétement à tester.

C'est parti

(6 Février, pas tout à fait encore le petit matin)
Ça y est, c'est parti, la documentation a été mise à jour, le Janmesh est officiellement opérationnel !

Mise à jour de la documentation

(4 janvier 2016, matin)
Après investigation, il s'avère que les adresses de type lien local fournissent un service acceptable pour l'attribution des adresses IPv4. Il n'est donc plus nécessaire de recourir à l'adressage statique dans la plage 10.0.0.0/8. La documentation a été mise à jour (dans la section "rejoindre Janmesh" de ce site)

Mise à jour de la documentation

(3 janvier 2016, milieu de soirée)
Une sous section "documentation" a été crée dans la section Rejoindre Janmesh de ce site, elle est encore incomplète mais donne quelques indications.

Premiers tests

(2 janvier 2016, fin d'après midi)
Entre hier et aujourd'hui j'ai pu faire quelques tests.
Par rapport à ce qui était indiqué précédément, il s'avère que desactiver la connectivité IPv4 n'est pas praticable.
A l'heure actuelle, il a été mis en place un réseau de type ad-hoc, sans la couche de routage olsrd, sans la couche d'accès et de chiffrage cjdns.
Les deux machines répondent au ping et le dns distribué .local fonctionne.
Le réseau est crée facilement via l'interface graphique de network-manager : ad-hoc, adresse IPv4 statique dans la plage 10.0.0.0/8, adresse IPv6 automatique.
Pour le moment le réseau est chiffré au niveau du médium, via WPA. Ce ne sera pas nécessaire une fois que cjdns sera installé et que les connexions non-cjdns seront rejetés au niveau du firefall, comme expliqué dans le premier billet de ce journal. En effet, ceci aura pour conséquence de faire passer tout le trafic par cjdns, qui chiffre en point à point les échanges. Ce qu'il est prévu pour le futur immédiat (tout de suite) :
  1. Installer Ubuntu Linux 14.04 sur anduril.local, pour avoir accès aux dépots logiciels contenant olsrd. Anduril est équipé pour le moment d'un OS obsolète. Les backups ont été fait, il va être possible de procéder à l'installation immédiatement après la mise en ligne de ce billet.
  2. Peut être, renommer seuil.local en autre chose, pour une cohérence dans les nom de machine. Peut être durandal.local .
  3. Installer olsrd sur les deux machines, pour que le routage mesh zeroconfiguration soit effectif. Entre deux machine, cela ne changera rien, mais ainsi ce sera prêt pour le moment ou un troisième noeud sera ajouté.
  4. Installer cjdns sur les deux machines, ajouter chacune d'elle dans les peers de l'autre
  5. Enfin, configurer le firewall ufw (via son interface graphique gufw, probablement) pour rejeter tout le traffic sauf le traffic cjdns sur les interfaces wlan. Ainsi, seules les interfaces vituelles tun0 de cjdns seront active et relaieront les transmission. À ce moment là il sera envisageable de stopper le chiffrement, devenu inutile, au niveau du médium, puisque la surcouche cjdns prendra à sa charge le chiffrement.
Une fois ces étapes remplies, il sera possible de tester quelques applications zeroconf, comme Salut, ddns ou DAAP, pour voir si elle fonctionnent sans configuration particulière sur le réseau IPv6 fournit par cjdns. C'est très probable qu'à ce moment, de la documentation supplémentaire sera ajoutée ici. Ce sera la première fois qu'une ressource complète en français, et même en n'importe quelle langue, sera rendue disponible pour la mise en place d'un mesh-local sécurisé et fiable.
Les étapes pour le futur plus lointain seront
  1. De configurer anduril, qui est connecté, en plus de sa connexion wifi au mesh-local, à un réseau local privé via ethernet, qui lui fourni l'accès internet, pour qu'elle partage cette connectivité avec seuil.local (durandal), qui ne dispose que d'une seule interface réseau, une interface wifi, qui lui permet de se connecter au mesh
  2. D'ajouter un troisième noeud au réseau, configurer pour communiquer avec les deux premiers
  3. Ce troisième noeud se connectera au meshlocal via wifi, mais dispose également d'une prise ethernet. Il faudra alors le configurer pour qu'il partage sa connectivité mesh via cette interface, et la distribue à un quatrième noeud du réseau (orcrist), qui lui est connecté en wifi au réseau privé local, mais dispose d'une interface ethernet disponible
Pistes ultérieures pour un futur encore indéfini :
  1. La version 15 de Network-Manager gère la création de réseau wifi en mode Access Point. C'est le seul mode reconnu par les périphériques Android. Si cette version est packagée dans Ubuntu 16.04 qui sortira en avril, il peut être intéressant de basculer le réseau depuis le mode Ad-Hoc vers les modes Master/Secondary, qui est le seul supporté par les téléphones et tablettes android et iOS. Ainsi leurs utilisateur verront son nom de réseau (SSID) qui est l'adresse ce ce site. Idéalement, il faudrait au final ouvrir le port 80 et le router vers un serveur HTTP d'une des machine du mesh, pour que les curieux qui se connectent au réseau puissent voir une petite plaquette reprenant les informations clé de ce site.
Et c'est tout pour le moment !

Journal du déploiement initial

Exemple de configuration de cjdns, à tester, pour former un réseau mesh entre quelques machines, via wifi, sous Linux

(31 décembre 2015)
Voici ce qui est prévu autour de Janmesh pour le futur à court terme

Topologie de test

Le mesh du déploiement initial est composé de trois machine.

étapes primordiales du déploiement du meshlocal :

Step 1 : Chaque machine bloque, au niveau du firewall logiciel intégré au système d'exploitation, la totalité du trafic venant de son interface wifi, à l'exception du port utilisé par cjdns
  1. Installer le firewall gufw depuis la logithèque (software-center) ou avec la commande sudo apt-get install gufw (nécessite les droits administrateur)
  2. Lancer gufw (nécéssite les droits administrateur) et activer le firewall
  3. Créer une nouvelle règle -> avancer -> refuser -> les deux -> interface : wlan0 (ou autre wlan correspondant à l'interface wifi qui sera utilisée pour le mesh) -> entrée et sortie : toutes les IPs
    (TODO : indiquer ici l'adresse avec masque qui signifie "toutes les IPs"... 0/128 ?)
    -> plage de ports (pour les deux) :
    1-(X-1),(X+1)-65535
    où X est le numéro de port où cjdns sera à l'écoute
    (TODO:indiquer le port par défaut)
  4. Valider
  5. Quitter gufw
Step 2 : scanner la présence d'éventuels services sensibles qui serait à l'écoute sur un port ouvert, et désactiver l'interface utilisée pour le mesh au cas par cas.
Voir Securing your system sur la documentation Hyperborea (en anglais)
Step 3 : Chaque machine souhaitant être membre du JanMesh opère un réseau wifi ad-hoc totalement public. Le mot de passe WPA est le SSID (nom du réseau), qui est l'adresse de la page d'accueil du site web que vous lisez en ce moment même.

Exemple en GUI sous Lubuntu, Ubuntu et autres utilisant network manager :
  1. CLic droit sur l'icone "réseau" dans la zone des notifications. Se déconnecter d'un éventuel réseau. Activer éventuellement le wifi. Sélectionner "Créer un nouveau réseau wifi"
  2. Nom du réseau : http://janmesh.clewn.org
    Sécurité wifi : WPA personnel
    Mot de passe : http://janmesh.clewn.org
    Valider.
Step 4 : Les adresses des interfaces dans le réseau wifi de bas niveaux sont strictement IPv6. Les adresses sont obtenues automatiquement via la technique de la stateless address autoconfiguration que propose le protocole IPv6. Le protocole IPv4 n'est pas utilisé, sauf pour la liaison boucle locale interne à chaque machine.

  1. Dans la zone des notifications, clic droit sur l'icone réseau, sélectionner "modification des connexions"
  2. Choisir la connection réseau sans fil "http://janmesh.clew.org"
  3. Dans l'onglet IPv4, changer la méthode "partagé entre plusieurs ordinateurs" : choisir "lien local uniquement"
  4. Dans l'onglet IPv6, changer la méthode pour pour "automatique, adresses uniquement"
  5. Valider
Step 5 : Chacun de ces noeuds wifi met en oeuvre une surcouche ANSI niveau 3 : olsrd, pour assurer un routage en mode mesh : les paquets prennent la route la plus efficace. Si un noeud quitte le réseau, de nouvelles routes sont automatiquement calculées. Même chose si un noeud rejoint le réseau.

Dans un terminal, entrer les commandes (nécessite les droits adminitrateurs)
sudo apt-get install olsrd
sudo cp /etc/olsrd/olsrd.conf /etc/
ouvrir le fichier /etc/olsrd.conf et vérifier que la section Interface ressemble bien à quelque chose comme
Interface "wlan0" { Ip4Broadcast 255.255.255.255 }
wlan0 est bien le nom de l'interface réseau qui servira à la connexion Mesh. Lancer le service avec la commande sudo olsrd (nécessite les droits utilisateur. Cette commande sera à exécuter à nouveau si la machine doit éventuellement redémarrer) Plus d'information sur olsrd (en anglais)
Step 6 : Chacune de ces machines met en oeuvre au niveau application, le protocole cjdns. Chaque machine se déclare comme pair d'au moins une autre des machines du mesh
Installer et démarrer cjdns
Voir Installer sous Debian Jessie (en anglais) pour la liste des commandes, mais, -sous Ubuntu vous devrez d'abord taper la commande sudo -i pour devenir administrateur ; -il faudra entrer apt-get install au lieu de apt-install -il faudra ajouter à la liste des paquets à instaler (build-essentials, nodejs...) systemd-services
Ajouter chacune des autres machine comme pair
Voir Configurer cjdns (en anglais).
TODO : Traduire tout ça et rédiger
Pour ajouter une machine supplémentaire au mesh : reprendre chacune des étapes et trouver au moins une machine à portée de wifi dont l'administrateur accepte comme pair la machine demandant à entrer sur le réseau.

à titre d'exercice :

-Une machine est connecté au meshlocal par le wifi, et à un lan privé connecté à internet via une liaison filaire.
-Une machine est connecté au meshlocal et uniquement au meshlocal. La machine précédente autorise le partage de sa connection filaire avec elle.
-une machine est utilisée comme meshbox : connectée au mesh via le wifi, elle agit comme passerelle pour une tierce machine, lui fournissant l'accès au JanMesh via sa connexion filaire. Cette tierce machine ne requiert aucune configuration particulière.

Salon de discussion IRC #janmesh

Si vous avez des questions, ou si vous souhaitez simplement vous informer sur le projet, rejoignez le salon #janmesh sur Freenode pour discuter avec les membres du projet.

Français English Contribute to the Janmesh project documentation & translation
Accueil Un mesh local ? Pour quoi faire ? Rejoindre ou créer un meshlocal Logiciels du projet Janmesh IRC/Contact
© les contributeurs de Janmesh.net - À l'exception des photographies de la section Janmeshiens & Janmeshiennes, le contenu de ce site est placé sous licence libre Creative Commons BY-SA