Les réseaux Wireless

Cela fait plus de 20 ans que les administrateurs du monde entier "tirent" des câbles pour relier leurs ordinateurs entre eux, mais cela risque de changer bientôt. Les évolutions technologiques permettent à présent la fabrication de cartes réseaux communiquant par ondes hertziennes. Les premières cartes de ce type sont à peine disponibles sur le marché grand public qu'une nouvelle génération est en préparation. Où en est Linux à ce stade ?

Le standard utilisé pour les réseaux sans fil (wireless en anglais), le 802.11, date de 1997. A cette date, ce n'était pas un événement important, mais simplement une base de travail pour standardiser les développements des fabricants de matériel de ce type. La première version du standard définissait une communication à 2 Mbps avec un rabattage sur 1 Mbps en cas de "bruit" sur la liaison. Ces spécifications étaient définies par la première norme DSSS, mais les fabricants ont rapidement évolué avec une nouvelle version permettant un débit de 11 Mbps (ou 5.5 Mbps). Ainsi naquit la norme 802.11b, utilisée par les périphériques actuels.

Les équipements 802.11b communiquent sur la bande des 2.4 GHz ISM (2.4000 GHz à 2.4835 GHz). Mais le standard définit également d'autres spécifications, comme le WEP (Wired Equivalent Privacy). Le WEP résout un des plus importants problèmes du réseau sans fil. En effet, avec un réseau classique, vous pouvez contrôler très facilement les connexions. Personne ne risque de se mettre dans un coin pour se connecter sur le réseau à grand renfort de pinces crocodiles. Il n'en va pas de même avec les réseaux hertziens. Sans protection spécifique, n'importe quel utilisateur pourrait se connecter à n'importe quel réseau en se trouvant simplement à proximité.

Le WEP permet d'authentifier tous les acteurs du réseau wireless et de sécuriser les communications à l'aide d'un chiffrement basé sur RC4. Il est cependant important de noter que certains spécialistes ont mis en évidence une faille dans ce système, qui permettrait de passer outre cette protection. L'exploitation de cette faille reste très difficile et nécessite à la fois du matériel spécifique et une parfaite maîtrise du standard. Les prochaines évolutions du 802.11 devraient régler le problème (ou du moins, on l'espère).

En ce qui concerne le matériel disponible pour le commun des mortels, les périphériques wireless prennent généralement la forme d'une carte PCMCIA. Ceci est parfaitement normal puisque les ordinateurs concernés sont principalement les portables et autres matériels non sédentaires. Le contre-coup de ce choix technologique et commercial est le fait que pour installer la quasi-totalité des périphériques 802.11b dans un ordinateur du bureau, il est nécessaire d'utiliser un adaptateur PCMCIA USB ou PCI. Les fabricants ont, bien sûr, prévu cela et fournissent habituellement des "bundles" incluant la carte PCMCIA et l'adaptateur.

Le matériel utilisé pour cet article est composé de deux cartes PCMCIA Sitecom et d'un adaptateur PCMCIA / PCI (livré avec la seconde carte). Notons au passage que le site du fabricant propose des drivers Linux sous la forme d'une archive nommée linux-wlan-ng-1.0.0.tar.gz. Sans pour autant en connaître la raison, il s'est avéré, après un temps non négligeable de test, que ce driver n'est ni le fruit du travail de Sitecom, ni une version 1.0.0. Il s'agit en réalité du driver prism2 développé par AbsoluteValue Software en version 0.1.6 datant de juillet 2000 ! Cette version ne peut être compilée avec la série 2.4.x du kernel et comporte un nombre non négligeable de bogues. La dernière version en date est la 0.1.14.

Nos configurations de tests sont respectivement :

  • un portable Toshiba Satellite 1700-300 utilisant un kernel 2.2.19 sur une distribution Debian;
  • un ordinateur de bureau assemblé (sur une base de Celeron 800) utilisant un kernel 2.4.8 sur une distribution SuSE depuis longtemps transformée en quelque chose approchant LFS :)

    Rappel du fonctionnement du support PCMCIA

    Le standard PCMCIA permet l'insertion et le retrait de périphériques à la volée. Cette caractéristique, appelée hot-plug, nécessite la mise en oeuvre d'un démon destiné à surveiller les sockets PCMCIA. Le kernel Linux, pour sa part, ne comprend que le support de l'interface PCMCIA. Le support des différents périphériques est laissé à un projet différent de celui du kernel. Il vous faudra donc posséder le support pour l'interface PCMCIA, mais également les différents drivers disponibles pour les périphériques.

    Le démon de surveillance des sockets PCMCIA est livré avec les drivers des périphériques. D'autres utilitaires (comme car d'Info) sont généralement livrés et permettent de diagnostiquer facilement un éventuel problème.

    Une fois l'ensemble des drivers et des utilitaires installés, l'insertion d'une carte dans un socket déclenchera l'intervention du démon cardmgr (Card Manager) qui se chargera d'identifier le périphérique, de charger les modules PCMCIA adéquats en mémoire et d'exécuter les scripts de configuration. Les éléments de configuration (fichiers de paramètre et scripts) sont placés dans le répertoire /etc/pcmcia. Un script spécifique sera placé dans l'arborescence init SysV (/etc/rc.d/...). Il vous permettra, à tout moment, d'activer ou de désactiver le support PCMCIA de votre système.

    Installation sur le portable

    La distribution Debian installée possédant déjà un support PCMCIA en version 3.1.22, elle ne nécessite pas d'installation d'un quelconque support supplémentaire à part les drivers propres à la nouvelle carte PCMCIA.

    Si vous n'avez jamais utilisé de périphériques PCMCIA sur votre machine, vous pouvez très facilement tester la présence du démon cardmgr en insérant la carte dans le socket. Un signal sonore sous la forme d'une tonalité aiguë (détection d'insertion), suivi d'une tonalité plus grave (échec du chargement des pilotes), vous renseigne sur le support de la carte en question. Si vous ne percevez aucun son, c'est que le support PCMCIA n'est pas installé. La tonalité grave signalant une erreur est parfaitement normale puisque nous n'avons pas encore ajouté le support pour la carte Sitecom. Sur une distribution Debian, l'installation du support PCMCIA se fait par les simples commandes (en tant qu'utilisateur root) :

    # apt-get install pcmcia-cs pcmcia-modules-x.x.x
    
    Pour le démon et les utilitaires, ainsi que les modules kernel, où x.x.x est le numéro de version du kernel installé.

    Vous devrez également ajouter les packages de développement pour ces deux éléments car les drivers d'AbsoluteValue en ont besoin pour être compilés. Une fois tout cela fait, assurez-vous du bon fonctionnement du support PCMCIA en insérant la carte comme expliqué plus haut.

    Lorsque tout fonctionne, récupérez les drivers d'AbsoluteValue sur http://www.linux-wlan.com. La dernière version des drivers en date est proposée sous la forme d'une archive linux-wlan-ng-0.1.14.tar.gz. Décompressez-la dans un répertoire quelconque et lancez la configuration des sources avec :

    $ make config
    
    Un certain nombre de questions vous seront posées :
    -------------- Linux WLAN Configuration Script -------------
    
    The default responses are correct for most users.
    
    Build Prism2.x PCMCIA Card Services (_cs) driver? (y/n) [y]:
    Build Prism2 PLX???? based PCI (_plx) adapter driver? (y/n) [y]:
    Build Prism2.5 native PCI (_pci) driver? (y/n) [y]:
    
    Répondez oui (y) à toutes ces questions. Il s'agit de la compilation des pilotes sous la forme de module pour le kernel. En principe, nous n'avons besoin ici que du driver PCMCIA, mais mieux vaut prévoir à long terme et vous éviter des manipulations supplémentaires en cas de changement de matériel pour un périphérique déjà supporté par ces drivers.
    Linux source directory [/usr/src/linux]: 
    
    The kernel source tree is version 2.2.19.
    The current kernel build date is Fri Apr 20 16:41:08 2001.
    
    Ici, la valeur par défaut est généralement suffisante, puisque le script de configuration va vérifier automatiquement la présence des sources du kernel et la version en cours d'utilisation.
    pcmcia-cs source dir [/usr/src/linux/pcmcia-cs-3.1.22]:
    Build for Kernel PCMCIA? (y/n) [n]:
    
    Vous devrez ici spécifier l'emplacement des fichiers de développement du support des périphériques PCMCIA.

    Linux Magazine France n°34 - Décembre 2001