My Traceroute, ou MTR, combine traceroute et ping pour mesurer la santé d'un chemin de réseau.
Cet article s'articule autour des points suivants :
Contenu associé
Couche réseau
Qu'est-ce que le MTU ?
Protocole Internet (IP)
Qu'est-ce que le MSS ?
Qu'est-ce que le routage ?
Abonnez-vous à theNET, le récapitulatif mensuel de Cloudflare des idées les plus populaires concernant Internet !
Copier le lien de l'article
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 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 |
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.
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.
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).
Vous trouverez ci-dessous trois exemples de la manière de lire et de tirer des conclusions des résultats de la RMP.
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.
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é.
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.
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 :