Réseaux MS Windows

Réglage de IP MTU, TCP MSS et PMTUD sur Windows et Sun Systems

17 décembre 2015 - Traduction automatique
Autres versions: PDFpdf | Anglais (22 août 2015) | Commentaires


Contenu


Introduction

Ce document fournit des exemples sur la configuration des noeuds pour régler l'Unité de transmission maximale (MTU) de l'IP, la Taille maximale de segment (MSS) de TCP et la Découverte du MTU du chemin d'IP (PMTUD) sur Solaris 10 (et versions antérieures), HP-UX 9.x, 10.x, 11.x, IBM AIX, Linux, Windows 95/98/ME, Windows NT 3.1/3.51, Windows NT 4,0 et Windows 2000/XP.

Conditions préalables

Conditions requises

Les lecteurs de ce document devraient avoir connaissance des sujets suivants :

Composants utilisés

Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.

Conventions

Pour plus d'informations sur les conventions de documents, reportez-vous à Conventions relatives aux conseils techniques Cisco.

Informations générales

En raison de défaillances du matériel réseau, de défauts de configuration ou de défauts de logiciels, vous pourriez vérifier des situations où de petits transferts de données TCP fonctionnent sans problème. Mais où de grands transferts de données, ceux avec des paquets intégraux, sont suspendus, puis dépassent le temps d'attente. Une alternative est de configurer les noeuds d'envoi pour faire l'une ou l'ensemble de ces deux actions :

  • Désactivez PMTUD.

  • Rétrécissez le TCP MSS et/ou l'IP MTU afin de réduire la taille de paquet maximale.

Description du problème et causes possibles

Parfois, au-dessus de certains chemins d'IP, un noeud TCP/IP peut envoyer de petites quantités de données (en général moins de 1500 octets) sans difficulté, mais les tentatives de transmission avec des quantités plus grandes de données sont suspendues, puis expirent. Ceci est souvent observé comme un problème unidirectionnel du fait que les grands transferts de données réussissent dans une direction, mais échouent dans l'autre. Ce problème est vraisemblablement provoqué par la valeur de TCP MSS, panne une PMTUD, différents types de support de LAN ou des liaisons défectueuses. Ces sous-sections décrivent les problèmes :

Valeur TCP MSS

La valeur de TCP MSS détermine la quantité maximale de données TCP dans un datagramme IP simple que le système local peut accepter (réassembler). Le datagramme IP peut être fragmenté en plusieurs paquets lors de l'envoi. Théoriquement, cette valeur peut être aussi grande que 65495, sachant qu'une si grande valeur n'est jamais utilisée. Typiquement, un système d'extrémité utilise le « MTU de l'interface sortant » moins 40 en tant que MSS enregistré. Par exemple, une valeur des Ethernets MSS est 1460 (1500 - 40 = 1460).

Panne PMTUD

PMTUD est un algorithme décrit dans RFC 1191 et mis en application dans des piles TCP/IP récentes.leavingcisco.com Cet algorithme essaie de découvrir le plus grand datagramme IP qui peut être envoyé sans fragmentation par un chemin d'IP et maximise le débit de transfert des données.

PMTUD est mis en application quand un expéditeur IP configure l'indicateur « Ne pas fragmenter » (DF - Don't Fragment) dans l'en-tête IP. Si un paquet IP avec cet indicateur accède à un routeur dont la liaison prochain saut a un MTU trop petit pour envoyer le paquet sans fragmentation, ce routeur isole ce paquet et envoie une erreur ICMP « fragmentation necessaire, mais DF fixé » à l'expéditeur IP. Quand l'expéditeur IP reçoit ce message Internet Control Message Protocol (ICMP), il apprend à utiliser un plus petit MTU IP pour les paquets envoyés vers cette destination et les paquets suivants peuvent passer.

Divers problèmes peuvent faire échouer l'algorithme PMTUD. L'expéditeur IP n'apprend jamais le MTU du plus petit chemin, mais continue sans succès à retransmettre le paquet trop grand, jusqu'à ce que les retransmissions dépassent le temps autorisé. Quelques problèmes comprennent :

  • Le routeur avec le chemin du prochain saut trop petite échoue à générer le message d'erreur ICMP nécessaire.

  • Un routeur dans le chemin inverse entre le routeur de petite taille MTU et l'expéditeur IP rejette le message d'erreur ICMP avant qu'il puisse atteindre l'expéditeur IP.

  • Confusion dans la pile de l'expéditeur d'IP où il ignore le message d'erreur ICMP reçu.

Une alternative face à ces problèmes est de configurer l'expéditeur IP pour désactiver PMTUD. Ceci amène l'expéditeur IP à envoyer leurs datagrammes avec l'indicateur DF enlevé. Quand les grands paquets accèdent au routeur MTU de petite taille, ce routeur les fragmente en de multiples paquets plus petits. Les données plus petites et fragmentées atteignent la destination où elles sont réassemblées dans le grand paquet original.

Différents types de support de LAN

Deux hôtes sur le même réseau routé, mais sur différents types de support de LAN (Ethernets contre Token Ring et Fiber Distributed Data Interface (FDDI)) peuvent agir différemment. Les systèmes raccordés d'Ethernet peuvent fonctionner correctement tandis que le Token Ring et les systèmes raccordés FDDI peuvent échouer. Cette panne se doit au fait que le système Ethernet rapporte une valeur MSS de 1460 tandis que le Token Ring et les systèmes FDDI raccordés rapportent une valeur MSS autour de 4400. Puisque le serveur distant ne peut pas dépasser la valeur MSS rapportée de l'autre extrémité, il peut utiliser des paquets plus petits quand il communique avec le système raccordé d'Ethernet que quand il communique avec le Token Ring et le système FDDI raccordé.

"Topologie du réseau Dumbbell

Des problèmes PMTUD sont souvent vus en topologie du réseau en « haltère » (par exemple, une topologie où le MTU d'une liaison intérieure dans le chemin du réseau est inférieure à celle des interfaces des hôtes de communication). Par exemple, si vous utilisez un tunnel IP (Encapsulation de routage générique (GRE)), le MTU de l'interface du tunnel est inférieure à celui de l'interface physique de correspondance. Si PMTUD échoue en raison du filtrage ICMP ou de problèmes de pile d'hôte, alors les grands paquets sont incapables de traverser le tunnel. Une alternative dans des versions du logiciel Cisco IOS avec le bogue Cisco ID CSCdk15279 (clients enregistrés seulement) intégré consiste à augmenter le tunnel IP MTU à 1500B.

Liens défectueux

Parfois, un routeur a une liaison avec un grand MTU (1500 octets), mais le routeur n'est pas en mesure de livrer un datagramme de cette taille au-dessus de cette liaison. Ce routeur ne renvoie pas d'erreur ICMP de « fragmentation requise mais DF configuré » à l'expéditeur, parce que la liaison n'a pas réellement de petit MTU. Cependant, les grands datagrammes ne peuvent pas passer à travers la liaison. Par conséquent, PMTUD n'aide pas et toutes les tentatives de transmission de grand paquet à travers cette liaison échouent.

Ceci se doit parfois à un problème de couche inférieure de la liaison, comme un circuit en relais de trame avec un MTU trop petit et trop peu de mise en mémoire tampon, un défaut de l'unité de service de canal/unité de service de données (CSU/DSU) ou répéteur, un câble non conforme ou un défaut du logiciel ou du micrologiciel.

Cette liste montre les défauts de logiciels relatifs.

Un autre problème de couche inférieure de la liaison est causé par l'utilisation d'un pont sous-standard FDDI à Ethernet qui ne peut pas exécuter la fragmentation de la couche IP. Une alternative potentielle est de configurer un plus petit MTU sur les interfaces du routeur attachées au lien problématique. Cependant, ceci pourrait ne pas être une option et ne pas être entièrement pertinent. Vous pouvez vouloir configurer un plus petit MTU, 1500 par exemple, sur les noeuds d'extrémité d'IP, comme décrit dans la section suivante.

Comment désactiver le PMTUD et configurer un plus petit MTU/MSS sur un noeud d'extrémité

Ces exemples définissent un IP MTU de 1500 ou un TCP MSS de 1460 pour Solaris 10 (et versions antérieures),HP-UX 9.x, le 10.x, et le 11.x, IBM AIX, Linux, Windows 95/98/ME, Windows NT 3.1/3.51, Windows NT 4,0 et Windows 2000/XP. Quand vous fixez une valeur d'IP MTU de 1500 et une valeur de TCP MSS de 1460, cela produit généralement le même effet parce qu'un segment de TCP vient normalement dans 40 octets d'un en-tête IP/TCP.

Remarque: Si vous changez le MTU de l'interface (routeur ou noeud d'extrémité), tous les systèmes connectés au même domaine de diffusion (réseau et concentrateur) doivent exécuter le même MTU. Si deux systèmes sur le même domaine de diffusion n'utilisent pas la même valeur de MTU, ils auront des problèmes de communication quand les paquets (plus grands que le petit MTU, mais plus petit que le grand MTU) sont envoyés du système avec le plus grand MTU au système avec le plus petit MTU.

Solaris 10 (et versions antérieures)

Désactivez PMTUD :

$ ndd -set /dev/ip ip_path_mtu_discovery 0

Paramètrez le maximum MSS à 1460 :

$ ndd -set /dev/tcp tcp_mss_max 1460

Source : TCP/IP illustré : Les protocoles, vol. 1, annexe E, de W. Richard Stevens et de Gary R. Wright.

HP-UX 9.x, 10.x, et 11.x

Désactivez PMTUD :

HP-UX 9.X ne prend pas en charge la découverte de MTU du chemin.

HP-UX 10,00, 10,01, 10,10, 10,20, et 10,30 prennent en charge la découverte de MTU de la voie d'accès. Elle est sur (1) par défaut pour le TCP et hors fonction (0) par défaut pour UDP. « Marche/Arrêt » peut être basculé avec la commande nettune.

# nettune -s tcp_pmtu 0
   
# nettune -s udp_pmtu 0

HP-UX 11 prend en charge la découverte PMTU et l'active par défaut. Ceci est contrôlé à travers la commande ndd setting ip_pmtu_strategy.

# ndd -h ip_pmtu_strategy 0

Définissez la stratégie de découverte de MTU de la voie d'accès : 0 désactive la découverte de MTU du chemin ; 1 permet la stratégie 1 ; la stratégie 2. de 2 enables pour de plus amples informations, utilisent le ndd - commande h sur un système de HP UX 11.

Source : Hewlett Packard leavingcisco.com

Paramètrez le maximum MSS à 1460 :

HP-UX 10.x :

# lanadmin -M 1460 <NetMgmtID> 
/usr/sbin/lanadmin [-a] [-A station_addr] [-m] [-M mtu_size] 
[-R] [-s] [-S speed] NetMgmtID -M mtu_size

Définissez la nouvelle taille du MTU de l'interface qui correspond à NetMgmtID. La valeur de la taille MTU doit être dans la plage de liaison spécifique et vous devez avoir des privilèges de superutilisateur.

Source : Page d'homme pour HP-UX sur version 10,2

HP-UX 11.x :

# ndd -set /dev/tcp tcp_mss_max 1460

Pour de plus amples informations, reportez-vous à la page d'homme pour ndd sur un système HP-UX 11.

IBM AIX Unix

Désactivez PMTUD :

La découverte de MTU de la voie d'accès a été ajoutée à AIX 4.2.1, défaut = hors fonction. De AIX 4.3.3, défaut = en fonction.

# no -o tcp_pmtu_discover=0

Source : IBM leavingcisco.com

Définissez le maximum MSS :

Pour AIX 4.2.1 ou version postérieure, tcp_mssdflt est seulement utilisé si la découverte de MTU du chemin n'est pas activée ou si la découverte de MTU du chemin échoue à découvrir un MTU de la voie d'accès. Par défaut : 512 octets ; Plage : 1 à 1448.

# no -o tcp_mssdflt=1440

Seulement une valeur peut être définie même s'il y a plusieurs adaptateurs avec différentes tailles du MTU. Cette modification s'opère au niveau du système.

Source : IBM leavingcisco.com

Linux

Désactivez PMTUD :

La découverte de MTU du chemin peut être activée ou désactivée quand vous modifiez le contenu du fichier ip_no_pmtu_disc pour « 0 » ou « 1 » respectivement. Afin de désactiver PMTUD, utilisez la commande :

# echo  1  >/proc/sys/net/ipv4/ip_no_pmtu_disc

Définissez l'interface MTU :

La valeur de MTU de l'interface peut être modifiée quand vous modifiez le fichier ifcfg-<name> et changez le paramètre « MTU », où <nom> se rapporte au nom du périphérique que le fichier de configuration contrôle. Par exemple, afin de modifier la configuration pour l'interface Ethernet, modifiez le fichier avec le nom 'ifcfg-eth0. Ce fichier contrôle la première carte d'interface réseau (NIC) dans le système.

Source : Manuel de Linux RedHat leavingcisco.com

Windows 95/98/ME

Remarque: La modification des paramètres TCP/IP de Windows 95 implique de modifier l'enregistrement. Ceci devrait seulement être tenté par des administrateurs système expérimentés parce que les erreurs peuvent rendre le système non démarrable. Une fois ces modifications dans le registre effectuées, redémarrez le système afin d'appliquer les modifications.

Désactivez PMTUD :

Ajoutez cette valeur de registre à la clé :

Hkey_Local_Machine\System\CurrentControlSet\Services\VxD\MSTCP
 
PMTUDiscovery = 0 or 1 
 
Data Type: DWORD

Cette valeur indique si le TCP/IP de Microsoft essaiera d'exécuter la découverte de MTU du chemin comme spécifié dans RFC 1191.leavingcisco.com Un « 1 » active la découverte tandis qu'un « 0 » la désactive. 1 est établi par défaut.

Remarque: Sous Windows 98, le type de données est une valeur de chaîne.

Paramétrez l'interface des MTU à 1500 :

Les entrées dans cette section doivent être ajoutées à cette clé du registre, où « n » représente l'adaptateur particulier TCP/IP au réseau.

Hkey_Local_Machine\System\CurrentControlSet\Services\Class\netTrans\000n
 
MaxMTU = 16-bit integer
 
Data Type: String

Cette clé du registre spécifie la taille maximale de l'IP du datagramme qui peut passer à un gestionnaire de supports. Le protocole d'accès au sous-réseau (SNAP) et des en-têtes de routage source (si utilisées sur les supports) ne sont pas inclus dans cette valeur. Par exemple, sur un réseau Ethernet, la valeur par défaut de MaxMTU est de 1500. La valeur réelle utilisée est le minimum de la valeur spécifiée avec ce paramètre et la taille rapportée par le gestionnaire de supports. La valeur par défaut est la taille rapportée par le gestionnaire de supports.

Source : Article Q158474 de base de connaissances de Microsoft leavingcisco.com

Windows NT 3.1/3.51

Remarque: La modification des paramètres TCP/IP de Windows NT implique de modifier l'enregistrement. Ceci devrait seulement être tenté par des administrateurs système expérimentés parce que les erreurs peuvent rendre le système non démarrable. Une fois ces modifications dans le registre effectuées, redémarrer pour appliquer les modifications.

Désactivez PMTUD :

La découverte PMTU est activée par défaut, mais peut être commandée en plus de cette valeur à l'enregistrement :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip\parameters
\EnablePMTUDiscovery
 
PMTU Discovery:  0 or 1 (Default = 1)
 
Data Type:   DWORD

Un « 1 » active la découverte tandis qu'un « 0 » la désactive. Quand la découverte PMTU est désactivée, un MTU de 576 octets est utilisé pour toutes les adresses IP de destination non locales. TCP MSS= 536.

Source : Article Q136970 de base de connaissances de Microsoft leavingcisco.com

Paramétrez l'interface des MTU à 1500 :

Ces paramètres pour le TCP/IP sont spécifiques aux cartes des adaptateurs de réseau individuel. Ceux-ci apparaissent sous ce chemin du registre, où « adapterID » se rapporte au sous-indicatif des services pour la carte de l'adaptateur spécifique :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\adapterID\Parameters\Tcpip
 
MTU: REG_DWORD (Number in octets)
 
Default: 0 (That is, use the value supplied by the adapter.)

Cette valeur spécifie la taille du MTU de l'interface. Chaque interface utilisée par le TCP/IP peut avoir une valeur de MTU spécifique différente. Le MTU est habituellement déterminé par le biais de négociations avec le gestionnaire inférieur. Cependant, l'utilisation de la valeur la plus faible de gestionnaires peut être remplacée.

RouterMTU REG_DWORD Number in octets
 
Default: 0 (That is, use the value supplied by the lower interface.)

Cette valeur spécifie la taille du MTU qui doit être utilisée quand le destinataire de l'adresse IP est sur un sous-réseau différent. Chaque interface utilisée par le TCP/IP peut avoir une valeur différente de routeur MTU spécifique. Dans beaucoup de mises en oeuvre, la valeur de RouterMTU est fixée à 576 octets. C'est la taille minimale qui doit être prise en charge par tout noeud IP. Puisque des routeurs plus récents peuvent habituellement traiter des MTU supérieurs à 576 octets, la valeur par défaut pour ce paramètre est la même que celle utilisée par MTU.

Source : Article Q102973 de base de connaissances de Microsoft leavingcisco.com

Windows NT 4.0

Remarque: La modification des paramètres TCP/IP de Windows NT implique de modifier l'enregistrement. Ceci devrait seulement être tenté par des administrateurs système expérimentés parce que les erreurs peuvent rendre le système non démarrable. Une fois ces modifications dans le registre effectuées, redémarrer pour appliquer les modifications.

Désactivez PMTUD :

La découverte PMTU est activée par défaut, mais peut être commandée en plus de cette valeur à l'enregistrement :

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
\EnablePMTUDiscovery 
 
PMTU Discovery: 0 or 1 (Default = 1) 
 
Data Type:  DWORD

Un « 1 » active la découverte tandis qu'un « 0 » la désactive. Quand la découverte PMTU est désactivée, un MTU de 576 octets est utilisé pour toutes les adresses IP de destination non locales. TCP MSS= 536.

Quand vous fixez ce paramètre sur 1 (vrai), cela amène le TCP à essayer de découvrir l'Unité de transmission maximum (MTU ou la taille de paquet la plus grande) au-dessus du chemin d'un hôte distant. Avec la découverte du MTU du chemin et la limitation des segments de TCP à cette taille, le TCP peut éliminer la fragmentation sur des routeurs au long du chemin qui connectent des réseaux à différents MTU. La fragmentation nuit au débit de TCP et congestionne le réseau .

Paramétrez l'interface des MTU à 1500 :

Ces paramètres pour le TCP/IP sont spécifiques aux cartes des adaptateurs de réseau individuel. Ces paramètres apparaissent sous ce chemin du registre, où « adapterID » se rapporte au sous-indicatif des services pour la carte de l'adaptateur spécifique :

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\AdapterID\Tcpip\Parameters
 
MTU: Set it to equal the required MTU size in decimal (default 1500)
 
Data Type: DWORD

Ce paramètre ignore la valeur de MTU par défaut pour une interface réseau. Le MTU est la taille de paquet maximale en octets que le transport transmet au-dessus du réseau sous-jacent. La taille inclut l'en-tête de transport. Un datagramme IP peut enjamber plusieurs paquets. Des valeurs plus grandes que celles par défaut pour le réseau sous-jacent résultent en le transport utilisant le MTU par défaut du réseau. Des valeurs inférieures à 68 résultent en le transport utilisant un MTU de 68.

Source : Article Q120642 de base de connaissances de Microsoft leavingcisco.com

Windows 2000/XP

Remarque: La modification des paramètres TCP/IP de Windows NT implique de modifier l'enregistrement. Ceci devrait seulement être tenté par des administrateurs système expérimentés parce que les erreurs peuvent rendre le système non démarrable. Une fois ces modifications dans le registre effectuées, redémarrer pour appliquer les modifications.

Désactivez PMTUD :

La découverte PMTU est activée par défaut, mais peut être commandée en plus de cette valeur à l'enregistrement :

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
\EnablePMTUDiscovery
  
PMTU Discovery:  0 or 1 (Default = 1)
 
Data Type:  DWORD

Un « 1 » active la découverte tandis qu'un « 0 » la désactive. Quand la découverte PMTU est désactivée, un MTU de 576 octets est utilisé pour toutes les adresses IP de destination non locales. TCP MSS= 536.

Quand vous fixez ce paramètre sur 1 (vrai), cela amène le TCP à essayer de découvrir l'Unité de transmission maximum (MTU ou la taille de paquet la plus grande) au-dessus du chemin d'un hôte distant. Avec la découverte du MTU du chemin et la limitation des segments de TCP à cette taille, le TCP peut éliminer la fragmentation sur des routeurs au long du chemin qui connectent des réseaux à différents MTU. La fragmentation nuit au débit de TCP et congestionne le réseau .

Paramétrez l'interface des MTU à 1500 :

Ces paramètres pour le TCP/IP sont spécifiques aux cartes des adaptateurs de réseau individuel. Ceux-ci apparaissent sous ce chemin du registre, où « adapter ID » se rapporte au sous-indicatif des services pour la carte de l'adaptateur spécifique :

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\ 
Interfaces\[Adapter ID] 
 
MTU: Set it to equal the required MTU size in decimal (default 1500)
 
Data Type:  DWORD

Ce paramètre ignore la valeur de MTU par défaut pour une interface réseau. Le MTU est la taille de paquet maximale en octets que le transport transmet au-dessus du réseau sous-jacent. La taille inclut l'en-tête de transport. Notez qu'un datagramme IP peut englober plusieurs paquets. Des valeurs plus grandes que celles par défaut pour le réseau sous-jacent résultent en le transport utilisant le MTU par défaut du réseau. Des valeurs inférieures à 68 résultent en le transport utilisant un MTU de 68.

Source : Article Q314053 de base de connaissances de Microsoft leavingcisco.com

Conversations connexes de la communauté de soutien de Cisco

Le site Cisco Support Community est un forum où vous pouvez poser des questions, répondre à des questions, faire part de suggestions et collaborer avec vos pairs.


Informations connexes


Document ID: 13709