Accueil

MTU trop grand : le bug réseau qui laisse passer les pings et bloque tout le reste

DevOps 5 min de lecture

Le site s'ouvre à moitié, SSH se fige après la bannière, un fichier bloque à 4 %. Le ping passe, le DNS répond. C'est un problème de MTU — comment le confirmer en trois minutes et le corriger durablement.

L'essentiel

  • Symptôme caractéristique : les petits échanges passent, les gros se figent. Ping et DNS fonctionnent, les transferts bloquent.
  • Un tunnel ajoute des en-têtes : le paquet dépasse la limite du lien et doit être fragmenté ou rejeté.
  • La découverte automatique de la taille maximale repose sur des messages ICMP que de nombreux pare-feux bloquent — le paquet disparaît alors sans erreur.
  • Le test décisif : un ping de taille croissante avec interdiction de fragmenter, qui donne la taille exacte du plus grand paquet acceptable.
  • Corrigez au bon endroit : ajuster le MTU du tunnel vaut mieux que rapiécer la taille des segments TCP.

Le tableau est toujours à peu près le même. Le VPN est monté, le ping répond, le DNS résout. Mais la page web charge à moitié, la session SSH se fige juste après la bannière, et le transfert de fichier reste bloqué à 4 % indéfiniment.

On soupçonne le pare-feu, le routage, le fournisseur d'accès. C'est presque toujours le MTU.

La signature à reconnaître

Un problème de MTU se distingue d'une panne réseau ordinaire par son asymétrie : les petits échanges passent, les gros échouent.

  • Le ping fonctionne — il envoie de tout petits paquets.
  • Le DNS fonctionne — les requêtes tiennent dans un paquet.
  • La connexion SSH s'établit, puis se fige dès qu'il faut afficher quelque chose de volumineux.
  • Une page web charge le texte, jamais les images.
  • Un transfert démarre et s'arrête à un pourcentage qui ne bouge plus.

Ce mélange de succès et de blocages selon la taille est très spécifique. Quand vous le voyez, testez le MTU en premier — cela vous épargnera des heures passées à relire des règles de pare-feu innocentes.

Pourquoi les tunnels déclenchent ce problème

Le MTU est la taille maximale d'un paquet sur un lien. Sur de l'Ethernet classique, c'est 1500 octets.

Un tunnel encapsule : il enveloppe chaque paquet dans ses propres en-têtes avant de l'expédier. Un paquet de 1500 octets, parfaitement légal sur votre réseau local, en fait davantage une fois habillé. Il dépasse alors la limite du lien qu'il doit emprunter.

Deux issues possibles : le fragmenter, ou le rejeter. Et si le paquet porte le drapeau interdisant la fragmentation — ce que fait TCP en permanence — il ne reste que le rejet.

Le rejet silencieux

Il existe pourtant un mécanisme prévu pour cela : quand un équipement rejette un paquet trop grand qui interdit la fragmentation, il renvoie un message ICMP indiquant la taille acceptable. L'émetteur ajuste, et tout rentre dans l'ordre.

Sauf que beaucoup de pare-feux bloquent l'ICMP, par une prudence mal placée qui consiste à tout interdire sans distinguer les messages utiles.

Le message n'arrive jamais. L'émetteur ne sait pas que ses paquets meurent en route. Il les réémet à l'identique, indéfiniment. La connexion ne renvoie aucune erreur : elle se fige, simplement.

À retenir : bloquer l'ICMP en bloc casse un mécanisme dont TCP dépend. Les messages d'erreur de taille et de destination inaccessible ne sont pas des ping — ce sont des éléments de fonctionnement du protocole.

Le test qui tranche en trois minutes

La méthode est directe : envoyer des pings de taille croissante en interdisant la fragmentation, et repérer où ça s'arrête.

Vous augmentez la charge utile jusqu'à ce que les réponses cessent. La dernière valeur qui passe, plus 28 octets d'en-têtes (20 pour IP, 8 pour ICMP), donne le MTU réellement utilisable sur le chemin.

Procédez par dichotomie : essayez 1472, puis selon le résultat 1400 ou 1440, et resserrez. Trois ou quatre essais suffisent.

Un détail qui a son importance : testez vers la destination réelle, pas vers la passerelle. Le MTU est une propriété du chemin complet, et le maillon le plus contraignant peut se trouver n'importe où.

Corriger au bon endroit

Une fois la valeur connue, deux corrections sont possibles — et elles ne sont pas équivalentes.

Ajuster le MTU de l'interface du tunnel est la correction propre. Vous déclarez à l'interface qu'elle ne doit pas émettre de paquets dépassant la taille mesurée, en tenant compte des en-têtes d'encapsulation. Tout le trafic en bénéficie, TCP comme UDP.

Ajuster la taille des segments TCP est un correctif de rattrapage : l'équipement réécrit à la volée la taille annoncée lors de l'établissement des connexions, forçant les deux extrémités à rester sous la limite. C'est utile quand vous ne maîtrisez pas les machines clientes.

Mais cette seconde méthode a une limite nette : elle ne concerne que TCP. Tout ce qui passe en UDP — DNS volumineux, visioconférence, certains VPN — reste cassé. Elle traite le symptôme le plus visible, pas la cause.

La bonne pratique : corriger le MTU de l'interface, et n'utiliser l'ajustement TCP qu'en complément lorsqu'un chemin échappe à votre contrôle.

Les trames étendues, l'autre source d'ennuis

Le problème inverse existe. On active les trames étendues sur un réseau de stockage pour améliorer le débit, en portant le MTU à 9000 octets. Le gain est réel — à condition que tous les équipements du chemin soient configurés à l'identique.

Un seul commutateur resté à 1500, et vous obtenez exactement les mêmes symptômes : les petits échanges passent, les gros disparaissent. Avec une difficulté supplémentaire : comme le problème est né d'une optimisation censée améliorer les choses, on cherche rarement de ce côté.

Si vous activez les trames étendues, faites-le partout ou nulle part, et vérifiez ensuite avec le test de ping. C'est trois minutes qui évitent trois jours.

Questions fréquentes

Comment reconnaître un problème de MTU à coup sûr ?
Par son asymétrie caractéristique : tout ce qui est petit fonctionne, tout ce qui est gros échoue. Le ping répond, la résolution DNS marche, la connexion SSH s'établit — puis se fige au moment d'afficher quelque chose de volumineux. Une page web charge le texte mais pas les images. Un transfert démarre puis reste bloqué à un pourcentage constant. Si vous observez ce mélange de succès et de blocages selon la taille, cherchez du côté du MTU avant toute autre hypothèse.
Pourquoi le problème n'apparaît-il qu'avec un VPN ?
Parce qu'un tunnel encapsule : il ajoute ses propres en-têtes autour de chaque paquet. Un paquet de taille maximale, parfaitement valide sur le réseau local, dépasse la limite du lien une fois habillé de ces en-têtes supplémentaires. Il doit alors être fragmenté ou rejeté. C'est pourquoi ces symptômes apparaissent typiquement après la mise en place d'un VPN, alors que tout fonctionnait avant.
Pourquoi la découverte automatique ne règle-t-elle pas le problème ?
Le mécanisme existe : quand un paquet trop grand se présente et interdit la fragmentation, l'équipement intermédiaire renvoie un message ICMP indiquant la taille acceptable, et l'émetteur s'adapte. Le problème est que de nombreux pare-feux bloquent l'ICMP, souvent par excès de zèle. Le message n'arrive jamais, l'émetteur ne sait pas que ses paquets sont rejetés, et il continue d'envoyer la même taille. Le paquet disparaît en silence : ni erreur, ni message, juste une connexion qui se fige.
Comment mesurer le MTU réel du chemin ?
Avec un ping de taille croissante et l'interdiction de fragmenter. Vous augmentez la taille de la charge utile jusqu'à ce que les réponses cessent : la dernière valeur qui passe, augmentée de 28 octets d'en-têtes (20 pour IP, 8 pour ICMP), donne le MTU utilisable. Procédez par dichotomie plutôt que pas à pas, vous convergez en quelques essais. C'est le test le plus rentable du diagnostic réseau.
Faut-il ajuster le MTU ou la taille des segments TCP ?
Corrigez d'abord au bon endroit : ajustez le MTU de l'interface du tunnel pour qu'il tienne compte des en-têtes ajoutés. C'est la correction propre, et elle bénéficie à tout le trafic. L'ajustement de la taille des segments TCP — qui réécrit à la volée la taille annoncée lors de l'établissement des connexions — est un correctif de rattrapage utile quand vous ne maîtrisez pas les deux extrémités. Mais il ne concerne que TCP : ce qui passe en UDP reste cassé.

Cet article vous a plu ?

Cet article vous a-t-il été utile ?

Merci pour votre retour !

Commentaires

MR
Morgann Riu

Expert en cybersécurité et administration Linux. J'aide les entreprises à sécuriser et optimiser leurs infrastructures critiques.

MTU réseau VPN fragmentation diagnostic WireGuard PMTUD

Recommandé pour vous

Tuto associé

Retour au blog