Qu'est-ce que My Traceroute (MTR) ?

My Traceroute, ou MTR, combine traceroute et ping pour mesurer la santé d'un chemin de réseau.

Objectifs d’apprentissage

Cet article s'articule autour des points suivants :

  • Définissez « traceroute » et « MTR ».
  • Comprendre le fonctionnement de « traceroute » et de « MTR »
  • Lire un résultat MTR pour diagnostiquer les problèmes dans un chemin réseau.

Contenu associé


Vous souhaitez continuer à enrichir vos connaissances ?

Abonnez-vous à theNET, le récapitulatif mensuel de Cloudflare des idées les plus populaires concernant Internet !

Consultez la politique de confidentialité de Cloudflare pour en savoir plus sur la manière dont nous collectons et traitons vos données personnelles.

Copier le lien de l'article

Qu'est-ce qu'un traceroute ?

Traceroute est un outil utilisé pour diagnostiquer les problèmes dans un chemin de réseau. Traceroute est utilisé pour comprendre le chemin emprunté par les paquets IP d'un ordinateur (adresse IP source) à un autre (adresse IP de destination). La commande traceroute (sous Linux ou macOS) ou tracert (sous Windows) permet de comprendre :

  • Le chemin emprunté par vos paquets (y compris les adresses IP de chaque routeur)
  • Le RTT* entre la source et chaque saut, ou routeur par lequel les paquets passent, sur le chemin réseau.

*Le temps d'aller-retour (RTT) est le temps qu'il faut aux données pour aller et revenir d'un certain point sur un réseau.

Voici un exemple de traceroute vers 1.1.1.1. Les lignes avec des astérisques (* * *) représentent les sauts à partir desquels les paquets n'ont pas été renvoyés ; cela peut arriver lorsque les routeurs sont configurés pour ignorer les paquets traceroute. Les temps en millisecondes dans chaque ligne sont les temps d'aller-retour de la source à ce saut pour chaque paquet (traceroute envoie trois paquets à la fois pour vérifier les résultats).

Exemple de traceroute
traceroute vers 1.1.1.1 (1.1.1.1), 64 sauts maximum, paquets de 52 octets
1 myrouter (192.168.47.1) 2.755 ms 1,452 ms 1,325 ms
2 * * *
3 69.168.32.65 (69.168.32.65) 18,159 ms 18,658 ms 15,091 ms
4 * * *
5 206.126.237.30 (206.126.237.30) 30.453 ms 50.242 ms 24.342 ms
6 one.one.one.one (1.1.1.1.1) 29.000 ms 26.784 ms 26.017 ms

Qu'est-ce qu'un chemin de réseau ?

Un chemin réseau désigne la séquence de réseaux par laquelle passe un paquet pour atteindre sa destination.

L'internet est un ensemble massif de réseaux qui se connectent les uns aux autres via routing. La plupart des points terminaux de l'internet - par exemple, un navigateur web qui tente d'accéder à un site Web et le serveur qui héberge ce site - ne font pas partie du même réseau. Cela signifie que si ledit navigateur web envoie une demande aux serveurs du site Web, cette demande devra probablement passer par plusieurs réseaux intermédiaires en cours de route.

Comment fonctionne traceroute ?

Un outil traceroute envoie des paquets vers une IP de destination et avec un time To Live (TTL) fixé à 1, de sorte que le premier routeur que les paquets atteignent renvoie une erreur (« temps dépassé »). Lorsque l'erreur est renvoyée, l'outil traceroute enregistre l'identité et le temps d'aller-retour du premier routeur, incrémente le TTL et envoie de nouveaux paquets, répétant ce processus jusqu'à ce que 1) le dernier paquet atteigne l'IP de destination ou 2) deux ensembles de paquets soient abandonnés.

Ce faisant, l'outil vous permet de comprendre le chemin emprunté par vos paquets et le temps d'aller-retour à chaque saut, ce qui vous permet de résoudre les problèmes de perte de paquets et de latence.

Traceroute s'appuie sur le protocole ICMP (Internet Control Message Protocol). ICMP est un protocole de la couche réseau utilisé pour tester les erreurs. Il n'a pas de protocole de transport associé et fonctionne directement sur le protocole Internet (IP). Lorsque le TTL d'un paquet envoyé par l'outil traceroute est dépassé, le routeur renvoie un paquet ICMP de type 11 (Time Exceeded Error).

Les paquets sortants (envoyés depuis le routeur de départ) peuvent utiliser ICMP (par défaut sur les systèmes d'exploitation MacOS et Linux) ou UDP (par défaut sur Windows). Le choix d'un protocole différent pour les paquets traceroute sortants est un moyen d'obtenir des résultats plus complets si les routeurs situés sur le chemin du réseau sont configurés pour filtrer les paquets d'un certain protocole.

Qu'est-ce que My Traceroute (MTR) ?

My Traceroute (MTR) est un outil qui combine traceroute et ping, qui est une autre méthode courante pour tester la connectivité et la vitesse du réseau. En plus des sauts le long du chemin du réseau, MTR affiche des informations constamment mises à jour sur la latence et la perte de paquets le long du chemin vers la destination. Cela facilite le dépannage des problèmes de réseau en vous permettant de voir ce qui se passe sur le chemin en temps réel.

MTR fonctionne en découvrant le chemin réseau de manière similaire à traceroute, puis en envoyant régulièrement des paquets pour continuer à collecter des informations afin de fournir une vue actualisée de la santé et de la vitesse du réseau.

Comme traceroute, MTR peut utiliser ICMP ou UDP pour les paquets sortants, mais s'appuie sur ICMP pour les paquets de retour (Type 11 : Time Exceeded).

Comment lire le MTR

Vous trouverez ci-dessous trois exemples de la manière de lire et de tirer des conclusions des résultats de la RMP.

MTR #1 : Tout est propre

MTR propre
Début : 2020-04-08T13:28:52+0100
HÔTE : myrouter Perte %. Snt Dernier site Moy. Meilleur Pire StDev
1.|-- 10.10.1.1 0,0 % 10 0.3P 0,4 0.3P 0,4 0,0
2.|-- 141.0.147.177.bcube.co.uk 0,0 % 10 2,7 2,7 2,5 3.1 0,2
3.|-- 172.16.28.38 0,0 % 10 2,8 6,4 2,8 22,2 6.1
4.|-- 172.17.13.76 0,0 % 10 1.1 2,8 1.1 14,6 4,2
5.|-- 172.17.13.49 0,0 % 10 1,4 4,0 1.3 25,0 7,4
6.|-- 172.17.13.24 0,0 % 10 2,5 2,7 2.0 5,1 1.1
7.|-- un.un.un.un.un.un 0,0 % 10 1.3 1,2 1,2 1.3 0,0

Cet exemple suit le chemin du réseau entre le routeur de départ et le serveur DNS 1.1.1.1 de Cloudflare. La sortie MTR n'indique aucun problème - il faut 7 sauts pour atteindre 1.1.1.1, et aucun d'entre eux n'indique une quelconque perte de paquets.

MTR #2 : Perte de paquets - ou pas ?

Perte de paquets sur le chemin
Début : 2020-04-08T12:48:28+0000
HÔTE : myrouter Perte %. Snt Dernier site Moy. Meilleur Pire StDev
1.|-- 2400:cb00:207:1000::1 0,0 % 10 1.1 6,0 0,6 15,7 5,9
2.|-- 2404:d400:4000:27::1 0,0 % 10 0,4 0,6 0,2 2,9 0,8
3.|-- 2404:d400:0:8: : 0,0 % 10 125,7 125,7 125,7 126,2 0,2
4.|-- 2001:978:2:42::e:1 50,0 % 10 129,2 129,6 129,2 130,5 0,6
5.|-- be2846.ccr42.fra03.atlas.cogentco.com 80,0 % 10 151,9 139,5 127,1 151,9 17,6
6.|-- be2814.ccr42.ams03.atlas.cogentco.com 80,0 % 10 136,2 137,0 136,2 137,8 1.1
7.|-- be2183.ccr22.lpl01.atlas.cogentco.com 50,0 % 10 146,3 146,2 145,9 146,3 0,10 $
8.|-- be3043.ccr22.ymq01.atlas.cogentco.com 30,0 % 10 215,3 215,2 215,0 215,4 0,2
9.|-- be3260.ccr32.yyz02.atlas.cogentco.com 90,0 % 10 227,8 227,8 227,8 227,8 0,0
10.|-- be2994.ccr22.cle04.atlas.cogentco.com 30,0 % 10 234,9 234,9 234,5 235,1 0,2
11.|-- be2718.ccr42.ord01.atlas.cogentco.com 70,0 % 10 233,7 233,8 233,7 233,9 0,10 $
12.|-- be2832.ccr22.mci01.atlas.cogentco.com 50,0 % 10 244,8 245,1 244,8 245,5 0.3P
13.|-- be3036.ccr22.den01.atlas.cogentco.com 30,0 % 10 259,6 259,6 259,3 259,8 0,2
14.|-- be3038.ccr32.slc01.atlas.cogentco.com 90,0 % 10 267,2 267,2 267,2 267,2 0,0
15.|-- be3110.ccr22.sfo01.atlas.cogentco.com 10,0 % 10 291,0 291,1 291,0 291,4 0,10 $
16.|-- be3670.ccr41.sjc03.atlas.cogentco.com 30,0 % 10 2926 292,7 2926 292,8 0,10 $
17.|-- 2001:550:2:1f::29:2 0,0 % 10 312,3 291,5 287,0 312,3 8,6
8,6 0,0 % 10 298,7 299,5 298,7 306,1 2.3
19.|-- ? ?? 100,0 10 0,0 0,0 0,0 0,0 0,0
20.|-- ? ?? 100,0 9 0,0 0,0 0,0 0,0 0,0
21.|-- 2400:cb00:36:1008::a29e:40e2 0,0 % 9 302,9 302,9 302,8 303,2 0,10 $

Cet exemple montre le chemin réseau entre le routeur de départ et 2400:cb00:36:1008::a29e:40e2, qui est une adresse IPv6 . La sortie montre une perte significative de paquets sur tous les sauts Cogent. Cependant, il n'y a aucune perte de paquets sur le dernier saut (21). Cela indique que le chemin d'accès au réseau n'est en fait pas problématique. Ce qui se passe est quelque chose que l'on appelle souvent la fonction CoPP (« Control Plane Policing ».

Comme nous l'avons vu précédemment, MTR fonctionne en envoyant (par défaut) des paquets ICMP Echo, avec un TTL (Time-To-Live) incrémentiel par paquet. Lorsque le TTL expire, un routeur renvoie un ICMP de type 11 (Time Exceeded), indiquant combien de sauts il y a entre un point A et un point B.

De nombreux opérateurs réseau (y compris Cloudflare) fixent des limites arbitraires à la quantité de paquets ICMP autorisés à atteindre le plan de contrôle d'un routeur. (Le plan de contrôle est le cerveau du routeur.) Un paquet qui dépasse le TTL d'un routeur doit être traité par le plan de contrôle. Pour éviter que le plan de contrôle ne soit submergé par un trop grand nombre de ces paquets, une limite de débit (ou policer) est mise en place, ce qui explique pourquoi nous voyons toutes ces pertes sur les sauts intermédiaires, mais pas sur le dernier saut : les limites de débit du plan de contrôle pour les routeurs sur les sauts intermédiaires ont été dépassées, de sorte que les paquets de type 11 n'ont pas été renvoyés pour les paquets traceroute au-delà de ces limites, mais les paquets ont pu arriver à destination en toute sécurité.

MTR #3 : Perte réelle de paquets

Perte de paquets sur la voie de retour
Début : 2020-04-08T13:32:30+0000
HÔTE : myrouter Perte %. Snt Dernier site Moy. Meilleur Pire StDev
1.|-- 162.158.216.129 0,0 % 10 0,7 6,9 0,7 62,6 19,6
2.|-- 118.69.221.209 0,0 % 10 0,2 0.3P 0,2 1.3 0.3P
3.|-- 118.69.252.172 0,0 % 10 0,7 1,0 0,6 2,9 0,7
4.|-- 118.69.132.169 0,0 % 10 11,4 11.3 11.2 11,5 0,10 $
5.|-- 118.69.247.64 0,0 % 10 34,2 34,4 33,9 37,2 1,0
6.|- 13335.sgw.equinix.com 50,0 % 10 27,5 27,9 27,1 29,1 0,8
7.|-- 162.158.161.251 30,0 % 10 26,8 26,8 26,8 26,8 0,0

Cet exemple montre le chemin réseau entre le routeur de départ et 162.158.161.251. La sortie montre une perte de paquets sur les 2 derniers sauts.

Autres options MTR

MTR a beaucoup d'options. Vous pouvez en trouver plus sur la page d'aide de MTR : mtr --help

Certaines des options fréquemment utilisées sont les suivantes :

  • TCP MTR : Au lieu d'utiliser des paquets ICMP, utilisez TCP. Vous pouvez également choisir un port de destination.
  • UDP MTR : Utilisez UDP à la place de ICMP. Cela peut être utilisé pour contourner les routeurs qui bloquent les paquets ICMP, ou pour tester un port spécifique.
  • Afficher les IP : Affiche les adresses IP à côté des enregistrements pour chaque saut. Il est ainsi plus facile de signaler les problèmes en amont.
  • Recherche d'AS : Montre le numéro d'AS dans le MTR.

À propos de la couche réseau