> Tech > Conseil 4 : Le monstre MTU

Conseil 4 : Le monstre MTU

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Avec la montée en puissance du câble, de DSL (Digital Subscriber Line) et des connexions Internet sans fil, un nouveau problème est apparu. Il présente deux symptômes: des transferts de fichiers lents ou défaillants et de médiocres performances en, VPN (virtual private network) sur des liaisons Internet apparemment sans défaut.

Conseil 4 : Le monstre MTU

Le
surfing sur le Web est satisfaisant, mais
quand un utilisateur domestique de
DSL ou du câble essaie de se connecter
à  un serveur d’entreprise, la performance
se dégrade jusqu’à  un niveau
inacceptable.
Ce problème est causé par un attribut
de réseau peu connu appelé taille
du MTU (Maximum Transmission
Unit). Le MTU spécifie la taille maximale
d’un paquet physique créé par
une unité émettrice. Pour que tout se
passe bien, il faut que toutes les unités
placées sur le chemin parcouru par un
paquet s’accordent sur cette valeur.
Comme la grande majorité des LAN
utilisent Ethernet, la taille du MTU par
défaut adoptée par la plupart des équipements
de réseau est de 1 500 octets,
le standard Ethernet. Cette valeur
donne une certaine aisance pour les
champs d’en-tête Ethernet, qui occupent
18 octets, pour une taille de paquet
maximale réelle de 1 518 octets.
Malheureusement, quelques implémentations
TCP/IP considèrent que
le MTU de 1 500 octets est la taille
maximale du paquet après application
des en-têtes Ethernet. Comme
certaines implémentations TCP/IP
considèrent que la limite de 1 500 octets
inclut les en-têtes Ethernet, certains
fournisseurs d’équipements DSL
ont emboîté le pas. Le résultat est que
quand un client TCP/IP est à  l’origine
d’un paquet de 1 500 octets parfaitement
légal (excluant les en-têtes Ethernet),
le modem DSL rejette le paquet
au motif qu’il est trop grand. Si le modem
DSL utilise PPPoE (Point-to-Point
Protocol over Ethernet), qui ajoute encore
davantage d’octets d’en-tête à 
chaque paquet, le problème peut encore
s’aggraver.
Ironiquement, vous constaterez
peut-être que les pings fonctionnent
parfaitement sur des connexions aussi
imparfaites. Cela s’explique parce que
les paquets de ping par défaut sont très
petits (généralement moins de 100 octets),
mais les applications envoyant
des paquets plus grands se heurteront
à  la barrière MTU. Les transferts de fichiers,
en particulier, essaient d’utiliser
la taille de paquet la plus grande possible
pour un maximum d’efficacité. La
plupart des paquets de transfert de fichiers
ne parviendront donc pas à  passer,
bloquant le transfert.
Le problème ne touche pas tous les
systèmes d’exploitation. Certaines
versions de Windows 2000, mais pas
toutes, sont immunisées, tandis que
presque chaque version de Windows
98 et XP échoue. Les versions antérieures
de l’OS Macintosh fonctionnent
bien, mais pas OS X.
Le correctif à  long terme est que
les ISP mettent à  niveau leurs modems
DSL avec un firmware qui permette
toutes les tailles de paquet légales. Le
correctif à  court terme consiste à  réduire
manuellement la valeur MTU sur
l’ordinateur de l’utilisateur. Le mode
opératoire diffère selon les systèmes
d’exploitation.
Mais avant d’appliquer le correctif
MTU, il faut d’abord déterminer si le
problème vous touche. Vous pouvez
faire cela à  partir d’une machine
Windows en utilisant la commande
ping. Déterminez d’abord l’adresse de
passerelle de l’utilisateur à  partir de la
configuration TCP/IP (avec l’utilitaire
IPCONFIG pour Windows 2000/XP ou
l’utilitaire WINIPCFG pour les versions
antérieures de Windows). Puis, ouvrez
une fenêtre DOS et tapez la commande
suivante :

ping -f -l 1500 a.b.c.d

où a.b.c.d est l’adresse de passerelle de
l’utilisateur. Cette passerelle est en fait
à  l’extrémité de la connexion DSL ou câble-modem de l’utilisateur, donc le ping rencontrera les
éventuelles restrictions MTU qui existent sur la liaison
Internet. L’option -f ordonne à  la passerelle de ne pas fragmenter
le paquet, et l’ option -l spécifie une taille de paquet
de 1 500 octets.

Si vous recevez un message d’erreur disant que le paquet
ne peut pas être envoyé sans fragmentation, c’est qu’il y a
une limitation MTU. Répétez le ping avec des tailles de paquet
de plus en plus petites jusqu’à  réussir. Un bon moyen
pour cela consiste à  commencer avec un numéro bas,
comme 1400, qui fonctionnera presque certainement.
Ensuite, faites un saut équivalent à  la moitié de la valeur restante
(de 50 à  1450, par exemple) et essayez.
Si cela réussit, ajoutez une autre moitié
; si cela échoue, descendez de moitié
(par exemple, de -25 à  1425). Cette méthode
dichotomique vous conduira à  votre
limite MTU en quelques essais. Les limites
MTU courantes avec DSL et le câble sont de
1 492 octets et de 1 454 octets. Les limites
de connexion sans fil peuvent être même
encore plus basses (j’en ai vu jusqu’à  1 412
octets).
Après avoir déterminé le MTU compatible
avec votre connexion Internet, il faut
modifier le système d’exploitation hôte en conséquence.
Pour Windows 2000/XP, procédez ainsi :

  1. Exécutez l’utilitaire REGEDIT et naviguez jusqu’à  la section
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Ser
    vices\Tcpip\Parameters\Interface.

  2. Dans cette section, trouvez la clé Interfaces associée à 
    votre adaptateur Ethernet Internet. Elle contiendra
    l’adresse IP de la machine.

  3. Utilisez l’option de menu Edit, New, WORD pour créer une
    nouvelle valeur DWORD dans cette clé nommée MTU.

  4. Double-cliquez sur le nouveau DWORD, sélectionnez l’option
    Decimal, et entrez la valeur MTU déterminée ci-dessus.

  5. Cliquez sur OK et redémarrez Windows.

Pour Windows 98/ME, procédez ainsi :

  1. Exécutez REGEDIT et naviguez jusqu’à  la section
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Ser
    vices\Class\Net.

  2. Sous cette section, trouvez un clé numérotée (0006, par
    exemple) contenant une valeur DriverDesc de TCP/IP.

  3. Sélectionnez New dans le menu Edit, choisissez String
    Value et tapez MaxMTU comme nom de la nouvelle valeur.

  4. Double-cliquez sur la nouvelle valeur, sélectionnez l’option
    Decimal, et entrez la valeur MTU déterminée ci-dessus.

  5. Cliquez sur OK et redémarrez Windows.

Pour les utilisateurs Mac OS X, procédez ainsi :

  1. Dans une fenêtre Terminal, tapez la commande suivante :
    ifconfig
  2. Vous obtenez une sortie avec une ligne ressemblant à  ceci :
    en0: flags=8863 mtu 1500
  3. Notez le nom de l’interface (en0) et le paramètre MTU
    courant (1500). Pour changer le MTU pour cette interface,
    tapez la commande suivante, en spécifiant la nouvelle valeur
    MTU :

    sudo ifconfig en0 mtu newMTUvalue
  4. Le mot de passe administratif de l’utilisateur vous sera
    demandé. Entrez-le pour compléter la commande.

  5. Re-exécutez la commande « ifconfig » pour vérifier que le
    MTU a été changé pour prendre la nouvelle valeur.

  6. Ne réinitialisez pas l’ordinateur ! Ce changement n’est que
    temporaire et doit être ré-entré chaque fois que l’ordinateur
    est réinitialisé. Songez à  en faire un script de
    démarrage qui s’exécutera automatiquement à  chaque
    initialisation.

Si le réseau en cause contient de nombreux ordinateurs,
il peut être fastidieux et lourd de changer chacun d’eux.
Installez plutôt un appareil pare-feu qui supporte le correctif
MTU. Cette fonction vous permet de limiter le MTU de tous
les paquets à  une valeur inférieure, en fragmentant les
paquets si nécessaire.

Téléchargez cette ressource

Préparer l’entreprise aux technologies interconnectées

Préparer l’entreprise aux technologies interconnectées

Avec la « quatrième révolution industrielle », les environnements hyperconnectés entraînent de nouveaux risques en matière de sécurité. Découvrez, dans ce guide Kaspersky, comment faire face à cette nouvelle ère de vulnérabilité.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010