Introduction

Cette page sert de point d'entrée pour accéder à la documentation concernant le projet d'intégration du protocole de routage Babel et d'IPv6 à la technologie développée par Commotion Wireless.

Avantages d'intégrer Babel à Commotion

Nous pourrons profiter du travail fait par le projet Commotion (participer dans une plus grande communauté), tout en continuant d'utiliser le protocole de routage Babel. L'interface de Commotion simplifie la configuration d'un relais, avec son interface web simple et son assistant de configuration.

Versions

Date (RL) OpenWRT Commotion
2014-10-01 [*] AA 1.0
2015-07-xx [**]  BB 1.2
  • [*] Date approximative du firmware généré à partir du travail des étudiants de Polytechnique du printemps 2014.
  • [**] Pas encore prêt, work in progress!

Sources et images disponibles

Images du firmware de Commotion avec les additions de Babel, IPv6 et de l'interface web:

En 2014, un groupe d'étudiants de l'École Polytechnique a travaillé sur l'implémentation initial de Babel dans Commotion. Les modifications sont disponibles sur leur dépôt Git: https://github.com/reseaulibre-polymtl/commotion-router/tree/babel

Description des dépôts:

  • commotion-router : Base de l'image pour les routeurs
    • Branche "babel" : Contient les changements pour supporter Babel et IPv6
    • Branche "ReseauLibre" : Specifie d'utiliser commotion-feed branche "ReseauLibre" pour avoir TOUTES les modifications pour Réseau Libre (babel, ipv6, interface web, etc)
  • commotion-feed : Indique les autres repos à utiliser lors de la compilation tel que luci-commotion et luci-theme-commotion
    • Branche "ReseauLibre" : Pour utiliser nos fork de luci-commotion (changements interface web), luci-theme-commotion (header pour afficher IPv6) et commotiond (pour désactiver la génération de BSSID et utiliser 02:CA:FF:EE:BA:BE)
  • luci-commotion : Modifications au MVC de l'interface web du routeur
    • Branche "babel" : Ajout du champ pour changer de protocol et messages de warning pour plugins non supportés
  • luci-theme-commotion : Theme de l'interface web (surtout du CSS + les header et footer)
    • Branche "header-ipv6-support" : Le nom le dit!

Documentation sur l'implémentation

  • IPv6 (auto-génération des préfixes d'adresses IPv6, architecture réseau)
  • Babel (configuration de Babel)

Compilation image (pour développeurs)

Babel avec Commotion 1.2rc et OpenWRT Barrier Breaker (BB) - expérimental!

Installer les outils nécessaires à la compilation:

# apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc

Puis obtenir le code source et lancer la compilation:

$ git clone https://github.com/reseaulibre/commotion-router.git
$ cd commotion-router
$ git checkout rl-babel-1.2
$ mkdir build
$ cd build
$ DATE=`date +"%Y%m%d"`
$ cmake -DCOMMOTION_VERSION:String=1.2rc1 -DCOMMOTION_RELEASE:String=rl_$DATE -DCONFIG:String=ubnt -DDEBUG:Bool=True -DBUILD_PACKAGES=False ..
$ make

Une fois la compilation terminée, les images se retrouvent dans ./bin/ar71xx/generic/

Quelques notes importantes:

  • Nous recommandons d'utiliser un environnement basé sur la dernière version de Debian GNU/Linux ou Ubuntu.
  • Modifier les paramètres à la commande "cmake" pour utiliser:
    • COMMOTION_VERSION: voir ce répertoire pour la dernière version: https://downloads.commotionwireless.net/router/
    • CONFIG: le profil 'ubnt' génèrera des images pour la majorité des appareils d'Ubiquity.

Pour plus d'information sur les variables, voir le README.md: https://github.com/opentechinstitute/commotion-router

Babel avec Commotion 1.0 et OpenWRT Attitude Adjustment (AA)

git clone -b ReseauLibre http://github.com/reseaulibre-polymtl/commotion-router.git
./setup.sh
cd openwrt
make V=99

Si la compilation fonctionne bien, les images devraient se trouver dans openwrt/bin/xxxxxx.

Si libcyassl cause problème..

À confirmer / mieux comprendre, note par ML le 2014-06-10:

git clone -b ReseauLibre http://github.com/reseaulibre-polymtl/commotion-router.git
./setup.sh
cd openwrt
./scripts/feeds update
./scripts/feeds install -p commotion olsrd libldns libcyassl
make V=99

Comment soumettre une patch à notre fork

La branche "rl-babel-1.2" sert de branche officielle de Réseau Libre. Nous ne développons pas directement sur la branche master, pour ne pas faire diverger les dépôts git.

Pour soumettre une patch:

  • Se créer un compte github, si vous n'en avez pas déjà un (https://github.com)
    • NB: ce n'est pas obligatoire d'avoir un compte github, mais c'est beaucoup plus facile pour tester les patches.
  • Faire un fork sur github de notre dépôt: https://github.com/ReseauLibre/commotion-router/ (cliquer sur l'icône "fork").
  • Clôner le dépôt que vous venez de forker dans votre compte.
  • Créer une nouvelle branche pour la patch (topical branch), ex: "git checkout -b rl-billet-123"
  • Faire le changement au code, et 'committer' à votre dépôt.
  • Faire un "push" de la branche vers votre compte github ("git push origin rl-billet-123").
  • Puis à partir de l'interface web de github (sur https://github.com/votre-compte/commotion-router), il devrait y avoir un message comme quoi vous venez de créer une branche, et avoir une icône qui permet de faire un "pull-request".
  • Faire un pull-request sur le dépôt officiel de réseau libre, sur la branche "rl-babel-1.2"

Lorsque le billet #1 sera terminé, une tâche sera automatiquement lancée pour compiler une nouvelle image utilisant le code envoyé dans le 'pull-request'. Ceci nous permet de tester plus rapidement les images, sans avoir besoin d'un environnement de compilation.

(Archive) Pull-requests faits en 2014

En août 2014, gradyotr a débuté la fusion (merge) des patches dans la branche 'babeld':
https://github.com/opentechinstitute/commotion-router/commits/babel/ipv6

Cette branche n'a pas encore été fusionnée dans les branches principales.

Les pull-requests faits à Commotion sont:

Pour Babel et IPv6

commotion-routeur branche babel : https://github.com/opentechinstitute/commotion-router/pull/118

Pour interface web (configuration et erreurs)

luci-commotion branche babel : https://github.com/opentechinstitute/luci-commotion/pull/200

Pour afficher le IPv6 dans le header

luci-theme-commotion branche header-ipv6-support : https://github.com/opentechinstitute/luci-theme-commotion/pull/37

Traduction / Translation

Voir: Traductions

FAQ / problèmes à régler

Le portail captif ne fonctionne pas si le routeur n'est pas connecté à Internet

Exact. Le portail captif a besoin que le service DNS (résolution de noms de domaines) fonctionne. Il est possible de bloquer l'accès à Internet par une règle de firewall. À revérifier dans Commotion 2.0. Voir: https://lists.chambana.net/pipermail/commotion-discuss/2013-September/000211.html

Traduction de l'interface de configuration et de la documentation officielle de Commotion

Une bonne partie de l'interface et du site web sont déjà traduits en français (plus de 80%). Les fichiers de traductions ne sont peut-être pas intégrés par défaut sur notre image? Voir: https://commotionwireless.net/docs/localization/ et plus précisément https://www.transifex.com/projects/p/commotion-user-interface/

Je peux accéder à la page d'accueil de Commotion, mais pas à la section admin

La page d'accueil est accessible à tous, mais la section d'administration est en "https" et le port utilisé pour ce protocole (port 443) est bloqué par défaut dans les configurations du pare-feu de Commotion.

Pour le débloquer:

  • se connecter par ssh au routeur (ssh root@x.x.x.x, où x.x.x.x est l'adresse IP du routeur)
  • ouvrir le fichier /etc/config/firewall (vi /etc/config/firewall)

Après la configuration suivante:

config rule
        option src 'lan'
        option dest_port '443'
        option target 'ACCEPT'
        option proto 'tcp'

Ajouter:

                              
config rule                   
        option src 'wan'      
        option dest_port '443'
        option target 'ACCEPT'
        option proto 'tcp'   

Si vous n'êtes pas familier avec l'éditeur "vi", il faut peser la touche 'i' avant d'insérer/ajouter du texte, et lorsque terminé, peser la touche "Échapper". Sauvegarder en tappant: ":wq". Pour une intro à l'éditeur vi, voir: http://www.mgroup.fr/index.php?post/2013/03/25/centos_introduction_vi

Puis redémarrer le pare-feu:

# /etc/init.d/firewall restart

Voilà, la section admin devrait maintenant être débloquée!

Pas de DHCP

Par défaut, juste IPv6! Pour activer IPv4, choisir un network puis l'ajouter à la section ap de /etc/config/network:

config interface 'ap'
        option ifname 'wlan0'
        option proto 'static'
        option ipaddr '192.168.42.1'
        option netmask '255.255.255.0'

Vous voudrez probablement faire du DHCP sur ap au lieu de lan:

config dhcp ap
    option interface        ap
    option start    100
    option limit    150
    option leasetime        12h

Ceci semble être un "bug" spécifique à nos images.

Pas de routage vers l'internet

Si vous avez:

From 192.168.31.1 icmp_seq=1 Destination Port Unreachable

Il est possible que votre pare-feu soit mal configuré.

Il faut ajouter l'ap au interfaces permises dans le LAN (à confirmer!):

config zone
        option name 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward REJECT'
        option network 'ap lan'

Il est également possible de contourner complètement le pare-feu avec les instructions détaillées dans ?administration.

Les paquets ne passent toujours pas

C'est alors que babel n'annonce pas les routes correctement, tentez le tout pour le tout:

config filter
        option type 'redistribute'
        option local 'true'
        option action 'allow'

config filter
        option type 'redistribute'
        option local 'false'
        option action 'allow'

Il n'y a pas de splash screen commotion

Pour une raison que j'ignore, l'image du TP-Link 1043 présentement disponible n'a aucune des configurations normales de Commotion, donc aucun splash screen...