InfrawireLogo InfrawireDocumentation
Appeler

Effectuer un diagnostic MTR/Traceroute

Ce guide vous apprendra à utiliser MTR (My Traceroute) et Traceroute pour diagnostiquer les problèmes de connectivité réseau, identifier les points de latence et analyser la qualité de votre connexion réseau.

📋 Prérequis

  • Un serveur VPS avec accès root ou sudo
  • Une connexion SSH active
  • Ubuntu/Debian (les commandes sont adaptées pour ces distributions)

🔧 Installation

Installation de Traceroute (outil de base)

Bash
# Sur Ubuntu/Debian sudo apt update sudo apt install traceroute -y

Installation de MTR (outil avancé)

MTR combine les fonctionnalités de ping et traceroute en un seul outil puissant.

Bash
1# Sur Ubuntu/Debian 2sudo apt update 3sudo apt install mtr-tiny -y 4 5# Pour la version complète avec interface graphique (optionnel) 6sudo apt install mtr -y

Vérification de l'installation

Bash
1# Vérifier que traceroute est installé 2traceroute --version 3 4# Vérifier que MTR est installé 5mtr --version

🛠️ Utilisation de Traceroute

Commande de base

Bash
1# Traceroute vers une destination 2traceroute google.com 3 4# Traceroute vers une IP 5traceroute 8.8.8.8 6 7# Limiter le nombre de sauts (par défaut 30) 8traceroute -m 20 google.com 9 10# Spécifier le timeout en secondes 11traceroute -w 5 google.com

Options utiles

Bash
1# Utiliser UDP (par défaut) 2traceroute -U google.com 3 4# Utiliser TCP (plus fiable) 5traceroute -T google.com 6 7# Utiliser ICMP (comme ping) 8traceroute -I google.com 9 10# Ne pas résoudre les noms DNS (plus rapide) 11traceroute -n google.com

Exemple de sortie

traceroute to google.com (142.250.185.14), 30 hops max, 60 byte packets
 1  10.0.0.1 (10.0.0.1)  0.123 ms  0.089 ms  0.067 ms
 2  192.168.1.1 (192.168.1.1)  5.234 ms  5.189 ms  5.145 ms
 3  * * *
 4  8.8.8.8 (8.8.8.8)  12.456 ms  12.389 ms  12.334 ms
 ...

🚀 Utilisation de MTR (recommandé)

MTR est plus puissant car il envoie des paquets en continu et calcule des statistiques en temps réel.

Commande de base

Bash
1# MTR en mode interactif (recommandé) 2mtr google.com 3 4# MTR avec rapport (non-interactif) 5mtr --report google.com 6 7# MTR avec 10 paquets de test 8mtr --report --report-cycles 10 google.com 9 10# MTR vers une IP 11mtr --report 8.8.8.8

Options avancées

Bash
1# Spécifier le nombre de paquets à envoyer 2mtr --report --report-cycles 50 google.com 3 4# Utiliser TCP au lieu d'ICMP 5mtr --tcp --port 80 google.com 6 7# Utiliser UDP 8mtr --udp --port 53 8.8.8.8 9 10# Ne pas résoudre les noms DNS 11mtr --no-dns google.com 12 13# Intervalle entre les paquets (en secondes) 14mtr --interval 2 google.com 15 16# Taille des paquets (en octets) 17mtr --psize 64 google.com

Mode interactif MTR

Quand vous lancez mtr sans l'option --report, vous entrez en mode interactif :

  • d : Affiche/masque les statistiques détaillées
  • n : Active/désactive le mode DNS (résolution des noms)
  • r : Réinitialise les statistiques
  • s : Change la taille des paquets
  • j : Change l'intervalle entre les paquets
  • q : Quitte MTR

📊 Interprétation des résultats

Latence normale

  • < 50 ms : Excellent, réseau local ou très proche
  • 50-100 ms : Bon, connexion régionale
  • 100-200 ms : Acceptable, connexion intercontinentale
  • > 200 ms : Élevé, peut causer des problèmes

Paquets perdus

  • 0% : Parfait
  • < 1% : Normal pour une connexion Internet
  • 1-5% : Acceptable mais peut causer des problèmes
  • > 5% : Problématique, investigation nécessaire

Signification des astérisques (*)

Dans traceroute, un * signifie :

  • Un seul * à la place d'un temps : Le routeur n'a pas répondu à ce paquet spécifique
  • Trois * consécutifs : Le routeur n'a pas répondu du tout (timeout ou filtre de pare-feu)

🎯 Cas d'utilisation

Diagnostic de latence élevée

Bash
1# Tester vers Google DNS 2mtr --report --report-cycles 30 8.8.8.8 3 4# Tester vers Cloudflare DNS 5mtr --report --report-cycles 30 1.1.1.1 6 7# Identifier le saut problématique 8mtr --report --report-cycles 50 votre-domaine.com

Diagnostic de perte de paquets

Bash
1# Test avec TCP pour contourner les filtres ICMP 2mtr --tcp --port 443 --report --report-cycles 50 google.com 3 4# Test vers un serveur spécifique 5mtr --report --report-cycles 100 votre-serveur.com

Test depuis votre VPS vers votre localisation

Bash
1# Tester vers votre adresse IP publique 2# Récupérez votre IP publique d'abord 3curl ifconfig.me 4 5# Puis testez depuis votre VPS 6mtr --report --report-cycles 30 VOTRE_IP_PUBLIQUE

🔍 Diagnostic de problèmes courants

Problème : Latence élevée sur un saut spécifique

Si vous voyez une latence élevée sur un saut intermédiaire :

Bash
# Tester avec différents protocoles mtr --tcp --port 443 --report google.com mtr --udp --port 53 --report 8.8.8.8 mtr --report google.com

Important: Une latence élevée sur un saut intermédiaire peut être normale si ce routeur ne répond pas rapidement aux requêtes de diagnostic, mais la latence finale reste bonne.

Problème : Perte de paquets importante

Si vous voyez une perte de paquets élevée :

Bash
1# Tester avec plus de paquets pour confirmer 2mtr --report --report-cycles 100 destination.com 3 4# Tester avec TCP si ICMP est filtré 5mtr --tcp --port 80 --report --report-cycles 50 destination.com

Attention: Si la perte de paquets apparaît sur tous les sauts, le problème est probablement sur votre VPS ou votre connexion locale. Si elle apparaît uniquement sur un saut spécifique, le problème est sur le réseau entre votre VPS et la destination.

Problème : Timeouts répétés

Bash
1# Augmenter le timeout 2mtr --timeout 10 --report destination.com 3 4# Tester avec différents protocoles 5mtr --tcp --port 443 --timeout 10 --report destination.com

📝 Commandes utiles

Script de diagnostic complet

Créez un script pour tester plusieurs destinations :

Bash
1#!/bin/bash 2echo "=== Test MTR vers Google DNS ===" 3mtr --report --report-cycles 30 8.8.8.8 4 5echo -e "\n=== Test MTR vers Cloudflare DNS ===" 6mtr --report --report-cycles 30 1.1.1.1 7 8echo -e "\n=== Test MTR vers votre domaine ===" 9mtr --report --report-cycles 30 votre-domaine.com

Sauvegarder les résultats

Bash
1# Sauvegarder le rapport dans un fichier 2mtr --report --report-cycles 30 google.com > mtr-report-$(date +%Y%m%d).txt 3 4# Avec format CSV 5mtr --report --report-cycles 30 --csv google.com > mtr-report.csv

✅ Bonnes pratiques

  • Utilisez MTR plutôt que traceroute : MTR fournit des statistiques plus complètes
  • Testez plusieurs destinations : Comparez les résultats vers différents serveurs
  • Faites plusieurs tests : Les réseaux peuvent varier, faites plusieurs tests à différents moments
  • Utilisez TCP si ICMP est filtré : Certains routeurs filtrent ICMP mais pas TCP
  • Interprétez correctement les résultats : Une latence élevée sur un saut intermédiaire n'est pas toujours un problème si la latence finale est bonne

🆘 Dépannage

MTR ne s'affiche pas correctement

Bash
1# Si MTR ne fonctionne pas en mode interactif, utilisez le mode rapport 2mtr --report destination.com 3 4# Vérifier la version de MTR 5mtr --version

Erreur "mtr: command not found"

Bash
1# Réinstaller MTR 2sudo apt update 3sudo apt install mtr-tiny -y 4 5# Ou installer la version complète 6sudo apt install mtr -y

Les résultats montrent tous des astérisques

Si tous les sauts montrent des *, cela peut signifier :

Bash
1# Votre pare-feu bloque ICMP 2# Testez avec TCP à la place 3mtr --tcp --port 443 --report destination.com 4 5# Vérifiez les règles de pare-feu 6sudo ufw status 7sudo iptables -L

📚 Ressources supplémentaires

❓ Questions fréquentes

Q : Quelle est la différence entre Traceroute et MTR ?
R : Traceroute envoie quelques paquets et affiche les résultats. MTR envoie des paquets continuellement et calcule des statistiques en temps réel, ce qui est plus utile pour le diagnostic.

Q : Pourquoi certains sauts montrent des astérisques ?
R : Cela signifie que le routeur n'a pas répondu. Cela peut être dû à un filtre de pare-feu, une configuration de routeur, ou simplement que le routeur ne répond pas aux requêtes de diagnostic.

Q : Dois-je m'inquiéter d'une latence élevée sur un saut intermédiaire ?
R : Pas nécessairement. Si la latence finale vers la destination est bonne, une latence élevée sur un saut intermédiaire peut être normale. C'est la latence finale qui compte vraiment.

Q : Comment interpréter la perte de paquets dans MTR ?
R : Une perte de paquets < 1% est normale. Entre 1-5%, c'est acceptable mais peut causer des problèmes. Au-delà de 5%, c'est problématique et nécessite une investigation.