Pour tous ceux qui n’en ont jamais entendu parler, OpenWRT est une mini distribution Linux conçue pour fonctionner sur les routeurs et autres périphériques embarqués dotés d’une interface réseau. Créé à l’origine pour les routeurs Linksys WRT54G/GL (dont je possède un exemplaire), OpenWRT est devenu, avec sa nouvelle branche baptisée “Kamikaze”, une distribution généraliste pour ce genre d’appareils, dont la configuration se fait entièrement à l’aide de fichiers texte et non plus en réglant des variables dans une mémoire spéciale propre au WRT54G/GL. Pour peu que votre routeur soit supporté, vous remplacez le firmware original de celui-ci par le firmware OpenWRT adapté à votre appareil et vous obtenez une distribution Linux minimaliste et à jour, accessible à distance principalement via un terminal SSH. Vous avez ensuite la possibilité d’ajouter des paquetages supplémentaires selon vos besoins. Les paquetages actuellement disponibles pour OpenWRT sont très nombreux et permettent à votre appareil de faire pratiquement tout ce qui vous passe par la tête, hormis peut-être le café: serveur Web, serveur FTP, passerelle VPN, client pour mise à jour automatique de DNS dynamique, serveur DNS, serveur de temps NTP, passerelle uPnP, centrale téléphonique Asterisk, … Les avantages liés à l’utilisation d’OpenWRT sur votre routeur sont nombreux, à commencer par des performances et une stabilité de premier ordre. Personnellement, depuis que je l’utilise, je n’ai jamais constaté le moindre plantage/redémarrage de mon routeur ni ralentissement du réseau, même en cas de forte charge (nombreuses connexions ouvertes simultanément). L’aspect minimaliste et modulaire d’OpenWRT garantit également qu’un maximum de mémoire sera disponible pour que votre routeur puisse faire son travail dans les meilleures conditions.

Il aura fallu attendre un an et demie avant la parution de cette nouvelle mouture 8.09 qui était initialement prévue pour septembre 2008 comme l’indique son numéro de version, mais qui a finalement vu le jour le mois dernier après que les développeurs aient pris un peu plus de temps afin de tester et peaufiner le code dans le but d’éliminer tous les petits bugs restants. Voici donc les nouveautés:

  • Support officiel de nombreuses nouvelles plates-formes. Cependant, dans la pratique, parmi les appareils courants et peu onéreux actuellement en vente chez nous en Europe, il n’y a que les routeurs basés sur les puces Broadcom 47xx (Linksys WRT54G/GL, Asus WL-300g et WL-500g) et Atheros AR531x/231X (La Fonera) qui fonctionnent à 100%. La plupart des routeurs ne disposent pas d’assez de RAM ou de mémoire Flash ou sont basés sur des puces non supportées ou partiellement supportées par Linux, généralement parce que les constructeurs (Broadcom et Texas Instruments pour citer les pires) refusent de publier les sources de leurs pilotes Linux ou les spécifications de leur matériel. C’est d’autant plus dommage que de nombreux appareils comme le Linksys WAG200G ou le Netgear DG834G fonctionnent déjà à l’origine sous Linux, système d’exploitation libre, en combinaison avec des pilotes propriétaires non-libres qui ne fonctionnent qu’avec une version bien particulière du noyau.
  • Mise à jour des différents composants et des noyaux Linux vers leur dernière version.
  • Nouveau pare-feu entièrement réécrit basé sur Netfilter.
  • Les fichiers de configuration sont désormais intégralement situés dans /etc/config/ et possèdent une syntaxe unifiée. Auparavant, certains fichiers de configuration Linux tels que /etc/ethers, /etc/hosts ou /etc/TZ devaient encore être édités manuellement, à présent ils sont générés automatiquement par des scripts à partir des nouveaux fichiers de configuration unifiés situés dans /etc/config/.
  • Grosse nouveauté de cette version, OpenWRT inclut désormais d’origine une interface web complète baptisée LuCI (Lua Configuration Interface) capable d’éditer à votre place ces fichiers de configuration situés dans /etc/config/ ce qui est beaucoup plus confortable, en plus d’afficher des statistiques diverses et de permettre la sauvegarde et la restauration complète des fichiers de configuration ainsi que la mise à jour vers un nouveau firmware. Cette interface est entièrement modulaire, ce qui signifie qu’on a la possibilité d’installer de nouveaux modules permettant d’éditer au travers de l’interface web de nouveaux fichiers de configuration associés à des paquetages additionnels, de traduire l’interface dans une autre langue ou de modifier l’apparence de celle-ci au moyen de thèmes. LuCI permet aussi de gérer l’ensemble des paquetages installés sur votre routeur. Il est donc désormais possible de le configurer entièrement depuis votre navigateur web sans passer par un Terminal SSH.
  • Autre ajout à la distribution standard: un ensemble de scripts capables de notifier n’importe quel service de DNS dynamique en cas de changement d’adresse IP d’une interface du routeur. Il suffit d’éditer un simple fichier de configuration pour ajouter le support d’un service qui n’y figure pas encore. J’ai par exemple ajouté sans effort le support du site OVH.com.
  • Enfin, il est désormais possible d’installer une distribution OpenWRT basée sur le noyau Linux 2.6 sur les routeurs dotés d’une puce Broadcom 47xx grâce au nouveau pilote libre b43. Cependant, la version du noyau Linux sur laquelle est basée cette distribution 8.09 inclut un pilote b43 pas parfaitement stable et il est donc conseillé d’installer sur ces routeurs la distribution OpenWRT basée sur l’ancien noyau Linux 2.4, en attendant la prochaine version d’OpenWRT qui sera basée sur un noyau Linux 2.6 plus récent qui inclut un pilote b43 grandement amélioré.

Avec cette nouvelle version, les développeurs ont gagné le pari de créer une distribution Linux universelle pour un nombre croissant de périphériques embarqués, plus accessible et plus simple à maintenir grâce aux nouveaux fichiers de configuration et surtout à la nouvelle interface web, tout en restant toujours aussi stable, performante, personnalisable et extensible. Si votre routeur est supporté, OpenWRT est sans nul doute le plus beau cadeau que vous puissiez lui faire. Attention, la configuration d’OpenWRT nécessite néanmoins un minimum de connaissances techniques sur le fonctionnement d’un routeur et de Linux et sa procédure d’installation varie d’un périphérique à l’autre. Lisez attentivement la documentation avant de vous lancer.

Mise à jour (09/06/2009): Le bug du port forwarding a été corrigé dans la nouvelle version 8.09.1. Cependant le support du WiFi a été retiré pour les routeurs à base de puce Broadcom 47xx pour la version basée sur le noyau 2.6. Utilisez donc la version basée sur le noyau 2.4. OpenWRT 8.09.2, qui devrait sortir dans moins de 6 mois, proposera un noyau Linux 2.6 récent accompagné d’un nouveau pilote WiFi stable pour ces puces.
Mise à jour (24/03/2009): Malheureusement, il semble qu’un bug aléatoire affectant le port forwarding soit présent dans la version 8.09 d’OpenWRT conçue pour les puces Broadcom et basée sur le noyau 2.4. La version basée sur le noyau 2.6 n’est pas affectée mais le WiFi n’est pas entièrement stable dans cette version. Si vous avez un routeur à base de puce Broadcom, je vous conseille donc d’éviter cette version 8.09 en attendant la suivante ou la publication d’un correctif. Une alternative intéressante pour ce genre d’appareil est le firmware Tomato, très performant et simple à configurer, même s’il ne vous permet pas d’installer des applications supplémentaires comme le permet OpenWRT.

Christophe Beyls