OVH Cloud OVH Cloud

Problème de MTU

6 réponses
Avatar
Zephyro
Bonjour,

J'ai 2 PC reliés à un routeur Netgear RP614V2, lui même connecté à un modem
ADSL via un port Ethernet.
Jusque là tout fonctionne sans problème, mais je viens de me pencher sur le
cas de la MTU et j'avoue perdre un peu pied...

La MTU du routeur est fixée par défaut à 1492. J'ai tenté de l'augmenter à
1500 sans noter de problème particulier.
En admettant que je la laisse à 1500, à combien devrais-je fixer celles des
cartes réseaux? 1500 ou bien 1500-28 soit 1472 (1500 octets moins 28 octets
d'entêtes du protocole Ethernet d'après ce que j'avais pu comprendre)


Autre chose, lorsque je tente un ping:
- avec moins de 1465 octets de données: ça passe
- compris entre 1465 et 1472 octets de données: "packet lost"
- avec plus de 1472 octets de données: le packet doit être fragmenté
Question: que se passe t-il entre 1465 et 1472 octets?

Merci à vous tous pour vos éclaircissements,

--
Zephyro

-= Being able to listen is first of all sharing the same vision =-

6 réponses

Avatar
Annie D.
Zephyro wrote:

J'ai 2 PC reliés à un routeur Netgear RP614V2, lui même connecté à un modem
ADSL via un port Ethernet.
Jusque là tout fonctionne sans problème, mais je viens de me pencher sur le
cas de la MTU et j'avoue perdre un peu pied...

La MTU du routeur est fixée par défaut à 1492.


C'est normal si le routeur utilise le protocole PPPoE. Ce protocole
"consomme" 8 octets par trame ethernet. Comme la taille maximum des
données d'une trame ethernet est 1500 octets, la taille de paquet
maximum transportable par PPPoE est 1500-892.

J'ai tenté de l'augmenter à 1500 sans noter de problème particulier.


C'est quand même une mauvaise idée, et ça ne sert à rien d'autre qu'à
créer des problèmes.

En admettant que je la laisse à 1500, à combien devrais-je fixer celles des
cartes réseaux? 1500 ou bien 1500-28 soit 1472 (1500 octets moins 28 octets
d'entêtes du protocole Ethernet d'après ce que j'avais pu comprendre)


Les octets d'en-tête d'une trame ethernet ne font pas partie des 1500
octets de données, vous n'avez pas à les soustraire.

Autre chose, lorsque je tente un ping:
- avec moins de 1465 octets de données: ça passe
- compris entre 1465 et 1472 octets de données: "packet lost"
- avec plus de 1472 octets de données: le packet doit être fragmenté
Question: que se passe t-il entre 1465 et 1472 octets?


Tout d'abord, je suppose que la MTU de la station qui vous sert à
émettre les pings est à sa valeur standard de 1500. Une requête "ping"
est un paquet IP contenant de ICMP. A la taille des données que vous
spécifiez, il faut donc ajouter l'en-tête du protocole IP (20 octets) et
l'en-tête du protocole ICMP (8 octets).

- Avec 1464 octets de données au plus, la taille maximum du paquet IP
obtenu est 1464+20+892. Il peut donc être émis sans fragmentation
(<00) et traverser de la même façon l'interface PPPoE du routeur
(<92).

- Avec plus de 1472 octets de données, la taille du paquet IP dépasse
1472+20+800 octets et celui-ci ne peut déjà pas être émis par la
station sans être fragmenté, d'où le message affiché.

- Avec entre 1465 et 1472 octets de données, la taille du paquet IP
varie entre 1493 et 1500. Il peut être émis sans fragmentation par la
station mais ne peut passer par l'interface PPPoE du routeur, limitée à
1492 par le protocole.
Par contre vous devriez obtenir un message d'erreur du genre
"fragmentation nécessaire" correspondant à l'émission par le routeur
d'un message ICMP de type destination-unreachable/fragmentation-needed.
Il se peut que le fait d'avoir modifié artificiellement la MTU du
routeur à 1500 empêche l'émission de ce message.

Avatar
Zephyro
J'ai tenté de l'augmenter à 1500 sans noter de problème particulier.


C'est quand même une mauvaise idée, et ça ne sert à rien d'autre qu'à
créer des problèmes.


OK, finalement j'ai bien noté quelques problèmes (sites inacessibles, etc..)

En admettant que je la laisse à 1500, à combien devrais-je fixer
celles des cartes réseaux? 1500 ou bien 1500-28 soit 1472 (1500
octets moins 28 octets d'entêtes du protocole Ethernet d'après ce
que j'avais pu comprendre)


Les octets d'en-tête d'une trame ethernet ne font pas partie des 1500
octets de données, vous n'avez pas à les soustraire.


Revenu à une MTU de 1492 sur le routeur, je laisse tout de même une MTU de
1500 sur les cartes réseaux?
Le routeur ne va pas passer sont temps à fragmenter les paquets venant du
LAN?

Autre chose, lorsque je tente un ping:
- avec moins de 1465 octets de données: ça passe
- compris entre 1465 et 1472 octets de données: "packet lost"
- avec plus de 1472 octets de données: le packet doit être fragmenté
Question: que se passe t-il entre 1465 et 1472 octets?


Tout d'abord, je suppose que la MTU de la station qui vous sert à
émettre les pings est à sa valeur standard de 1500. Une requête "ping"


Je ne sais pas quelle est la valeur par défaut de Windows XP, mais je l'ai
effectivement forcée à 1500 via la base de registre.

est un paquet IP contenant de ICMP. A la taille des données que vous
spécifiez, il faut donc ajouter l'en-tête du protocole IP (20 octets)
et l'en-tête du protocole ICMP (8 octets).

- Avec 1464 octets de données au plus, la taille maximum du paquet IP
obtenu est 1464+20+892. Il peut donc être émis sans fragmentation
(<00) et traverser de la même façon l'interface PPPoE du routeur
(<92).

- Avec plus de 1472 octets de données, la taille du paquet IP dépasse
1472+20+800 octets et celui-ci ne peut déjà pas être émis par la
station sans être fragmenté, d'où le message affiché.

- Avec entre 1465 et 1472 octets de données, la taille du paquet IP
varie entre 1493 et 1500. Il peut être émis sans fragmentation par la
station mais ne peut passer par l'interface PPPoE du routeur, limitée
à 1492 par le protocole.


J'avoue que j'y vois tout de suite beaucoup plus clair! Merci!

Par contre vous devriez obtenir un message d'erreur du genre
"fragmentation nécessaire" correspondant à l'émission par le routeur
d'un message ICMP de type
destination-unreachable/fragmentation-needed. Il se peut que le fait
d'avoir modifié artificiellement la MTU du routeur à 1500 empêche
l'émission de ce message.


Que ce soit avec la MTU fixée à 1500 ou bien 1492, je n'ai droit qu'à un
'Délai d'attente de la demande dépassé.'
Peut-être mon routeur ne gère t-il pas très bien l'ICMP...

Merci beaucoup de votre réponse,

--
Zephyro

-= Being able to listen is first of all sharing the same vision =-


Avatar
Annie D.
Zephyro wrote:

J'ai tenté de l'augmenter à 1500 sans noter de problème particulier.



OK, finalement j'ai bien noté quelques problèmes (sites inacessibles, etc..)


Ce n'est pas pour rien qu'on recommande à ceux qui observent ce genre de
problème de baisser leur MTU.

Revenu à une MTU de 1492 sur le routeur, je laisse tout de même une MTU de
1500 sur les cartes réseaux?
Le routeur ne va pas passer sont temps à fragmenter les paquets venant du
LAN?


Je n'en sais trop rien. En fait, pour les connexions TCP, celles qui
sont le plus suscetibles d'envoyer de gros paquets de taille maximum, il
existe des mécanismes destinés à déterminer la taille de paquet optimale
sans fragmentation entre les deux extrémités (path MTU discovery) ou de
limiter cette taille au niveau du routeur (clamp MSS). Le fonctionnement
de ces mécanismes dépasse ma connaissance.

Je ne sais pas quelle est la valeur par défaut de Windows XP, mais je l'ai
effectivement forcée à 1500 via la base de registre.


Sous Windows 2000 c'est 1500, mais je n'ai pas de XP sous la main pour
vérifier.

Que ce soit avec la MTU fixée à 1500 ou bien 1492, je n'ai droit qu'à un
'Délai d'attente de la demande dépassé.'
Peut-être mon routeur ne gère t-il pas très bien l'ICMP...


Je ne saurais le dire, à moins que ce soit tout simplement le programme
de ping qui l'ignore. Mais ce serait étonnant, celui de 2000 en tient
compte.



Avatar
Mathieu Goutelle
Bonsoir,

Je n'en sais trop rien. En fait, pour les connexions TCP, celles qui
sont le plus suscetibles d'envoyer de gros paquets de taille maximum, il
existe des mécanismes destinés à déterminer la taille de paquet optimale
sans fragmentation entre les deux extrémités (path MTU discovery) ou de
limiter cette taille au niveau du routeur (clamp MSS). Le fonctionnement
de ces mécanismes dépasse ma connaissance.


Ca utilise l'option 'Don't Fragment' d'IP : on envoie des paquets de
taille décroissante jusqu'à ne plus obtenir le message d'erreur ICMP
'Destination Unreachable' avec un code d'erreur correspondant à grosso-
modo « j'ai besoin de fragmenter mais vous me l'avez interdit ! ».

Pour plus de détails : <http://www.faqs.org/rfcs/rfc1191.html>.

En outre, ça n'est pas implémenté et/ou activé dans tous les OS, ni
dans tous les équipements de niveau 3 qui doivent répondre le bon
message ICMP. Un peu comme les acquittements sélectifs (SACK) de TCP
qu'il faut forcer sous WinXP. Mais je m'égare... En tout cas, on trouve
encore pas mal sur Internet de paquets de 576 octets pour éviter la
fragmentation (taille minimale dans IP si mon souvenir est bon).

Cordialement,
--
Q: Connaissez-vous la différence entre l'ignorance et l'apathie ?
R: J'en sais rien et je m'en fous.
Mathieu Goutelle - <URL:http://webperso.easyconnect.fr/goutelle>

Avatar
T0t0
"Mathieu Goutelle" wrote in message
news:
En tout cas, on trouve
encore pas mal sur Internet de paquets de 576 octets pour éviter la
fragmentation (taille minimale dans IP si mon souvenir est bon).


Arf, je pensais que la seule limitation pour un datagramme venait de
la taille reservée dans l'en-tête pour la taille du datagramme, soit
65535 octets. Je n'ai jamais entendu parler de limite basse. Des infos
là dessus ?


--
Posted via Mailgate.ORG Server - http://www.Mailgate.ORG

Avatar
Mathieu Goutelle
Le 09-02-2004, T0t0 a écrit :
En tout cas, on trouve encore pas mal sur Internet de paquets de
576 octets pour éviter la fragmentation (taille minimale dans IP si
mon souvenir est bon).


Arf, je pensais que la seule limitation pour un datagramme venait de
la taille reservée dans l'en-tête pour la taille du datagramme, soit
65535 octets. Je n'ai jamais entendu parler de limite basse. Des infos
là dessus ?


Après vérification, je me suis trompé (j'avais prévenu ;) : c'est
l'ancienne taille recommandée dans la RFC 791. C'est pour ça que l'on
trouve encore pas mal de paquets de cette taille. Désolé...

Cordialement,
--
Mathieu Goutelle - <http://webperso.easyconnect.fr/goutelle/>