Bienvenue sur le wiki de Nuit debout, nous sommes le 1056 mars.




Box Internet Debout

De NuitDebout
Aller à : navigation, rechercher

Introduction[modifier | modifier le wikicode]

Schéma du fonctionnement de la Box Internet Debout

La problématique que nous tentons de résoudre à travers ce projet est celle de l'accès à internet pour l'ensemble des Nuit Debout existantes et à venir.

Le but de ce projet est de créer un point d'accès à internet facilement reproductible et déployable dans n'importe quelle Nuit Debout.

Avoir un point d'accès à internet stable dédié aux Nuit Debout permet de multiples applications: retransmission d'AG en live, communication directe entre les Nuit Debout, TV Debout, Radio Debout...

Actuellement, les activités sur place nécessitant une connexion internet comme par exemple TV Debout utilisent une clé 4g unique dédiée à leur activité. Le problème est que la stabilité et la bande passante offerte par l'utilisation d'une connexion 4g unique reste assez limitée (notamment quand il s'agit de retransmettre simultanément l'AG en live et les interviews).

Le principe de fonctionnement de la Box Internet Debout est simple: récupérer de multiples connexions 3g/4g et les agréger pour créer une connexion unique utilisant qui serait plus puissante et plus stable qu'une unique connexion 3g/4g.

Pour suivre ou participer au projet, n'hésitez pas à rejoindre le canal #dev-mesh-network sur le chat de Nuit Debout!


Ressources utilisées[modifier | modifier le wikicode]

Hardware[modifier | modifier le wikicode]

Coté matériel, le raspberry pi a été choisit pour ses multiples avantages:

  • Le principe de standardisation du matériel qui permet de pouvoir rendre reproductible la box très facilement en distribuant directement des images pré-configurés du système d'exploitation, qu'il ne reste plus qu'a copier sur la carte SD utilisée avec le raspberry.
  • Son prix assez abordable (aux alentours de 40€ suivant les modèles et les vendeurs)

Il faudra également des clés 3g et/ou des clés wifi

La dernière chose nécessaire est un serveur, pour pouvoir récupérer les multiples flux de données TCP et les réassembler avant de les renvoyer en un flux unique sur internet

  • lien wiki a venir très prochainement: comment obtenir un VPS (Virtual Private Server) gratuit*

Software[modifier | modifier le wikicode]

Au niveau de l'aggrégation de connexions 3g/4g, nous avons choisi d'utiliser le protocole MPTCP (qui permet l'aggrégation de n'importe quel flux TCP)

Les avantages du MPTCP:

  • Le failover, qui permet d'ajouter et de retirer des connexions 3g/4g de façon fluide sans que cela créer de coupures ou de bugs au niveau de la connexion de sortie. Le failover permet également d'éviter une coupure de la connexion de sortie si une des connexions d'entrée coupait momentanément.
  • L'utilisation de toutes les connexions simultanément par un même flux unique, ce qui n'est pas le cas par exemple avec le load-balancing qui ne peut utiliser qu'une seule connexion par flux de données.

Pour le système d'exploitation, Raspbian ou OpenWRT sont pour l'instant envisagés.


Fonctionnement en détails[modifier | modifier le wikicode]

Récupération des flux 3g/4g[modifier | modifier le wikicode]

Au niveau de la récupération des flux 3g/4g, il y a 2 méthodes possibles.

1ère méthode[modifier | modifier le wikicode]

La 1ère méthode est d'utiliser directement des clés 4g branchées sur le raspberry. Cette méthode est la plus adaptée lorsque l'on a des cartes sim avec abonnement 4g achetées spécifiquement pour être utilisées avec la Box Internet Debout. L'inconvénient est qu'il faut acheter ces cartes sim avec abonnement 4g spécifiquement pour la box, et ça peut couter cher quand on a dans l'optique de justement en utiliser plusieurs pour coupler les connexions 4g entre elles.


2ème méthode[modifier | modifier le wikicode]

La 2ème méthode part du principe de permettre à n'importe quel participant de Nuit Debout ayant un smartphone avec une connexion 4g et une carte wifi intégrée de pouvoir partager sa connexion internet avec la box. Le principe est le suivant: la personne voulant partager sa connexion 4g émet un réseau wifi en transformant son smartphone en hotspot wifi et avec lequel il partage sa connexion 4G. La box de son coté se connecte a ce réseau wifi et accède donc à internet grâce au réseau 4g. Il faut donc connecter au raspberry une clé wifi à la place d'une clé 4g pour cette méthode.

A savoir que les 2 méthodes peuvent être combinés (en ayant par exemple 2 clés 4g et 2 clés wifi connectées au raspberry).

Connexion de sortie[modifier | modifier le wikicode]

Au niveau de la connexion de sortie, la aussi 2 possibilités:

  • Soit faire passer la connexion de sortie par le port ethernet du raspberry.
  • Soit faire passer la connexion de sortie avec une clé wifi, le raspberry devenant également un hotspot wifi émettant une connexion wifi unique (cette connexion étant l'agrégation des connexions 4g).

L'avantage de la connexion de sortie avec une clé wifi est que l'on peut du coup connecter de multiples appareils au réseau, l'inconvénient étant que cela enlève un port USB qui aurait put servir à réceptionner une connexion 4g.

Liste des outils[modifier | modifier le wikicode]

Testé et fonctionnel En cours de test Pas encore testé Testé et non-fonctionnel
OS Agrégateur de connexions Gateway
Raspbian MPTCP OpenVPN
OpenWRT MLVPN Redsocks
Shadowsocks

Travaux en cours[modifier | modifier le wikicode]

Dépot github du projet

Raspberry pi 2
OS Agrégateur de connexions Gateway
Raspbian Jessie MPTCP:v0.89

Config:

  • --congestion controls: lia
  • --path-manager: fullmesh
  • --scheduler: default
OpenVPN


Serveur
OS Agrégateur de connexions Gateway
Debian Jessie MPTCP:v0.89

Config:

  • --congestion controls: lia
  • --path-manager: fullmesh
  • --scheduler: default
OpenVPN


Chronologie des taches
Statut Tache Description
[OK] Compilation d'un kernel linux patché et fonctionnel avec MPTCP pour raspberry pi 2 Instructions

MPTCP:v0.89 Config:

  • --congestion controls: lia
  • --path-manager: fullmesh
  • --scheduler: default
[OK] Configuration du protocole MPTCP sur Raspbian Jessie et Debian Jessie version 0.89
[OK] Test de fonctionnement du MPTCP avec un serveur MPTCP Fait avec le serveur officiel multipath-tcp.org
[OK] Compilation d'OpenWRT avec MPTCP (kernel 3.18) + Images à flasher disponibles Instructions

MPTCP:v0.90 Config:

  • --congestion controls: lia
  • --path-manager: fullmesh
  • --scheduler: default
[OK] Configuration du protocole MPTCP sur OpenWRT version 0.90

Scripts du wiki officel d'OpenWRT utilisés

[X] Configuration réseau avec mwan3 En cours
[X] Configuration d'OpenVPN En cours
[...]

Le gros du travail se situe au niveau de la pré-configuration et configuration du système d'exploitation: tout l'enjeu est d'automatiser au maximum la configuration pour rendre le déploiement et l'utilisation de la box le plus simple possible.

L'essentiel du travail sera donc de configurer le système d'exploitation (sans doutes Raspbian ou OpenWRT) et d'écrire des scripts Shell (et éventuellement python).

Il faudra également patcher le kernel linux utilisé car bien que le MPTCP soit intégré de base au noyau linux, il ne l'est pas pour les noyaux linux utilisés par le raspberry (architecture ARMv7).


Tutos et blog posts[modifier | modifier le wikicode]

MPTCP sur OpenWRT:

Plusieurs utilisations du protocole MPTCP:


Autres sources internet possibles[modifier | modifier le wikicode]

Il existe d'autres sources de connexions internet possibles autres que la 3g/4g, suivant l'emplacement de la Nuit Debout:

  • Possibilité de récupérer une connexion wifi publique s'il en existe une à proximité (wifi du Mac Donald, wifi d'un parc publique, etc...).
  • Possibilité de demander à un particulier, commercant, restaurant, ou autre, de partager sa connexion internet avec la Nuit Debout. Dans ce cas la l'utilisation d'antennes directionnelles peut-être une bonne option pour optimiser l'installation (niveau matériel les antennes directionnelles Yagi sont un bon choix niveau rapport qualité/prix).

A savoir que la aussi il y a possibilité de coupler ces éventuelles connexions avec d'autres.

Aller plus loin[modifier | modifier le wikicode]

Ce projet de box internet Nuit Debout est un projet qui fait partie d'un ensemble beaucoup plus large du domaine des réseaux et des réseaux mesh. D'autres projets sont en cours et d'autres seront à venir, il y a énormément de choses réalisables à ce niveau et qui permettront d'aider Nuit Debout à se développer.

Réseaux Mesh & P2P