Dupedi - Correction software des dysfonctionnements d'un switch
Il a été nécessaire d'apporter une solution au fait qu'un switch subissait des collisions capables de «tuer» le réseau en quelques secondes.
La lenteur provoquée par le dysfonctionnement de ce switch gênait les installations automatisées depuis le réseau ou l'accès aux «home» stockés sur le serveur distant.
Explications :
Il arrive à un ancien switch (auto-sensing 10/100Mbits) de ne pas correctement détecter la vitesse des cartes réseau connectées.
De nos jours, pratiquement toutes les cartes réseau sont auto-sense, ce signifie qu'elles sont capables de détecter la vitesse maximale à laquelle elles peuvent communiquer avec leurs correspondants. Il arrive parfois que deux cartes réseaux communiquent mal ensemble. Il peut s'en suivre le choix d'une vitesse de transfert pouvant se révéler inférieure à celle utilisée par un modem PSTN. La plupart des hubs ou switches récents et/ou de qualité permettent une gestion à distance qui a pour effet, entre-autre, de fixer la vitesse et le duplex d'un port. Ce n'est pas le cas pour le switch qui nous concerne.
Nous avons donc dû développer une solution à mettre en oeuvre du côté PC, solution qui force la vitesse et le duplex de la carte réseau. La plupart des cartes réseau actuelles sont dotées d'un circuit MII qui gère et supporte cette manipulation. C'est pourquoi Linux dédie deux outils à ce circuit : mii-tool et mii-diag.
Le script suivant, qui ne réclame aucun paramètre, permet facilement de modifier la vitesse et le duplex de la carte réseau. Il suffit de l'exécuter une seule fois avec les droits root pour qu'il prenne effet au prochain boot de la machine.
#! /bin/sh # This script forces the interface to 100baseTx-FD # Written by J. Warnier on 3/07/2002 # Version 1.1 if [ -x /sbin/mii-tool ]; then TOOL=/sbin/mii-tool else exit 0 fi if [ -e /etc/network/interfaces ]; then INTERFACES=/etc/network/interfaces else exit 0 fi if [ `grep -q $TOOL $INTERFACES` ]; then echo "WARNING: $TOOL is already used in $INTERFACES, please check by hand " echo "Nothing done..." exit 0 else echo "Adding \"pre-up $TOOL -F 100baseTx-FD eth0\" to $INTERFACES... " cp $INTERFACES $INTERFACES.dpkg-old echo " pre-up $TOOL -F 100baseTx-FD eth0">>$INTERFACES fi
Ce script ajoute donc une ligne à la fin du fichier /etc/network/interfaces qui sert à configurer les cartes réseau sous Debian.
Note: De nos jours, les cartes réseaux n'utilisent plus forcément le composante MII que mii-tool permet de contrôler, par exemple la plupart de cartes Gigabits Ethernet. On peut alors utiliser l'outil ethtool dont la syntaxe est légèrement différente.