Commande tracepath : vérifier les sauts et la MTU du chemin au lieu de traceroute
Sur un serveur Linux, la commande tracepath permet de vérifier sans droits root le chemin (sauts) que suivent les paquets jusqu'à une destination ainsi que la MTU du chemin. Sur un serveur AlmaLinux 9 sans traceroute installé, nous avons limité le nombre de sauts à 10 et vérifié le chemin jusqu'à example.com : jusqu'au quatrième saut, on lisait les temps de réponse et une MTU de chemin de 1500, puis les six sauts suivants n'ont pas répondu.
La sortie ci-dessous provient d'un serveur AlmaLinux 9.8 (compte root), et la version de traceroute ainsi que l'état du paquet ont été vérifiés sur un serveur Debian 12 (compte ordinaire). Les adresses IPv6 du premier saut et des routeurs intermédiaires ont été remplacées par des adresses d'exemple réservées à la documentation, et les temps de réponse et valeurs pmtu ont été laissés tels quels.
1️⃣ Utiliser la commande tracepath
tracepath reçoit un nom ou une adresse IP de destination, envoie des paquets UDP et affiche les sauts qui répondent, une ligne par saut dans l'ordre du TTL. Le nombre maximal de sauts est de 30 par défaut et se modifie avec -m.
Pour example.com, nous avons ajouté -m 10 pour ne vérifier que jusqu'au dixième saut.
tracepath -n -m 10 example.com 1?: [LOCALHOST] 0.006ms pmtu 9001
1: fe80::1%eth0 0.077ms pmtu 1500
1: 2001:db8:a::5b 2.627ms asymm 8
2: 2001:db8:a::52 1.473ms asymm 12
3: 2001:db8:b::1e 19.653ms asymm 9
4: 2001:db8:c:: 3.642ms asymm 11
5: no reply
6: no reply
7: no reply
8: no reply
9: no reply
10: no reply
Too many hops: pmtu 1500
Resume: pmtu 1500 Ce serveur a envoyé les paquets à l'adresse IPv6 de example.com, et des temps de réponse sont apparus jusqu'au quatrième saut. À partir du cinquième saut, no reply s'est enchaîné : la ligne reached indiquant que la destination était atteinte en dix sauts n'est pas apparue, et l'exécution a pris environ 18 secondes.
Lancée vers la même destination sans -m, la commande ne s'est pas terminée en 30 secondes. Pour un chemin avec beaucoup de sauts muets, on réduit le nombre de sauts à vérifier avec -m.
La version de tracepath installée se vérifie avec -V ; sur ce serveur, tracepath était iputils 20210202.
tracepath -Vtracepath from iputils 202102022️⃣ Lire la sortie de tracepath
Chaque ligne de sortie donne dans l'ordre le numéro de saut, l'adresse qui a répondu et le temps aller-retour. pmtu s'ajoute là où la MTU du chemin change, et asymm quand l'aller et le retour n'ont pas le même nombre de sauts. Voici ce qu'on vérifie sur chaque ligne.
| Sortie | Signification |
|---|---|
| 1?: | Champ du numéro de saut — un ? s'ajoute au numéro estimé faute d'avoir obtenu le TTL dans la réponse |
| [LOCALHOST] | Ligne du serveur lui-même, avant que le paquet ne parte sur le réseau |
| 0.077ms | Temps aller-retour jusqu'à ce saut |
| pmtu 1500 | MTU du chemin (octets) modifiée à cet endroit — n'apparaît qu'en cas de changement |
| asymm 8 | Écart de sauts entre l'aller et le retour — le manuel officiel indique que la valeur n'est pas fiable |
| no reply | Saut qui n'a pas répondu au paquet envoyé avec ce TTL |
| reached | Ligne où la destination est atteinte |
| Too many hops | S'arrête après avoir vérifié le nombre de sauts fixé par -m |
| Resume: pmtu … hops … back … | MTU de tout le chemin, sauts jusqu'à la destination et estimation des sauts du retour |
Dans la sortie de example.com, la pmtu de la première ligne [LOCALHOST] était de 9001 et elle est passée à 1500 au premier saut. La ligne TTL 1 qui apparaît deux fois avec seulement l'adresse qui change correspond aussi à l'exemple du manuel officiel. Le manuel explique que si le premier paquet est refusé au premier saut à cause de la MTU du chemin, la même ligne TTL apparaît une seconde fois.
Une fois la destination atteinte, reached s'ajoute en fin de ligne et la dernière ligne Resume donne le nombre de sauts jusqu'à la destination. En envoyant vers 127.0.0.1, reached est apparu dès le premier saut, et la ligne Resume était [pmtu 65535 hops 1 back 1].
tracepath -n 127.0.0.1 1: 127.0.0.1 0.047ms reached
Resume: pmtu 65535 hops 1 back 1 Un chemin qui se termine par Too many hops sans reached n'a pas reçu de réponse de la destination dans les sauts fixés par -m. Le chemin vers example.com n'a pas non plus eu de reached en dix sauts, si bien que seule la pmtu est restée sur la ligne Resume, sans nombre de sauts.
3️⃣ Options de tracepath
tracepath n'a que huit options : -4, -6, -n, -b, -l, -m, -p et -V, et lancé sans destination, il affiche cette liste comme aide. Sans option, il résout en noms les adresses qui répondent ; en envoyant vers localhost, localhost est apparu dans le champ du saut.
tracepath localhost 1?: [LOCALHOST] 0.003ms pmtu 65536
1: localhost 0.048ms reached
1: localhost 0.030ms reached
Resume: pmtu 65536 hops 1 back 1 [tracepath -n] n'affiche que les adresses IP, sans résoudre les noms. En ajoutant -n pour le même localhost, le champ du saut est passé à l'adresse IPv6 ::1, et le chemin vers example.com lancé avec -n n'a aussi affiché que des adresses dans ce champ.
tracepath -n localhost 1?: [LOCALHOST] 0.005ms pmtu 65536
1: ::1 0.039ms reached
1: ::1 0.010ms reached
Resume: pmtu 65536 hops 1 back 1 -b affiche à la fois le nom et l'adresse. En ajoutant -b pour 127.0.0.1, l'adresse est apparue entre parenthèses après le nom : [localhost (127.0.0.1)].
tracepath -b 127.0.0.1 1: localhost (127.0.0.1) 0.050ms reached
Resume: pmtu 65535 hops 1 back 1 -m fixe le nombre maximal de sauts à vérifier et acceptait les valeurs de 0 à 255. Avec -m 0, seules les lignes Too many hops et Resume sont apparues, sans ligne de saut, et 256 a été refusé avec [out of range].
tracepath -m 0 127.0.0.1 Too many hops: pmtu 65535
Resume: pmtu 65535 -l est la longueur du premier paquet envoyé ; par défaut 65535 octets en IPv4 et 128000 octets en IPv6. En ajoutant -l 1500 pour 127.0.0.1, la pmtu de la ligne Resume est passée de 65535 à 1500.
tracepath -l 1500 -n 127.0.0.1 1: 127.0.0.1 0.028ms reached
Resume: pmtu 1500 hops 1 back 1 -p fixe le premier port UDP de destination. Avec -p 33434 pour 127.0.0.1, le résultat était le même que sans l'option.
| Option | Copier | Description |
|---|---|---|
| -n | Affiche seulement les adresses IP, sans résoudre les noms | |
| -b | Affiche le nom et l'adresse ensemble | |
| -msauts | Fixe le nombre maximal de sauts à vérifier, 30 par défaut | |
| -llongueur | Fixe la longueur du premier paquet, par défaut IPv4 65535, IPv6 128000 | |
| -V | Affiche la version et quitte |
| Option | Copier | Description |
|---|---|---|
| -4 | N'envoie qu'à des adresses IPv4 | |
| -6 | N'envoie qu'à des adresses IPv6 | |
| -pPort | Fixe le premier port UDP de destination |
4️⃣ Différences entre tracepath et traceroute
Sur les serveurs où traceroute ne peut pas être installé, on vérifie le chemin avec tracepath au lieu de traceroute. Le serveur AlmaLinux 9.8 vérifié n'avait pas le paquet traceroute, tandis que tracepath fait partie du paquet iputils et s'est lancé sans installation supplémentaire.
rpm -q traceroutepackage traceroute is not installedLe serveur Debian 12 était dans le cas inverse : traceroute 2.1.2 était installé, mais pas le paquet iputils-tracepath qui contient tracepath.
traceroute --versionModern traceroute for Linux, version 2.1.2
Copyright (c) 2016 Dmitry Butskoy, License: GPL v2 or any laterapt-cache policy iputils-tracepathiputils-tracepath:
Installed: (none)
Candidate: 3:20221126-1+deb12u1Comme ces deux serveurs le montrent, les commandes présentes varient selon la distribution : vérifiez d'abord laquelle existe sur le serveur auquel vous êtes connecté. tracepath n'a pas besoin des droits root et fonctionne avec tout compte capable d'envoyer des paquets UDP. L'exécutable tracepath du serveur AlmaLinux 9.8 avait lui aussi les droits rwxr-xr-x, sans capacité (capability) ajoutée.
| Catégorie | tracepath | traceroute |
|---|---|---|
| Serveur AlmaLinux 9.8 | Inclus dans le paquet iputils, se lance tout de suite | Non installé |
| Serveur Debian 12 | Paquet iputils-tracepath non installé | traceroute 2.1.2 installé |
| Paquets envoyés | UDP | UDP par défaut, -I pour ICMP, -T pour TCP |
| Sortie par saut | Une ligne | Trois envois par défaut, trois temps (modifiable avec -q) |
| Nombre d'options | Huit : -4 -6 -n -b -l -m -p -V | Plus de 20 rien que sur le premier écran de --help |
Si vous devez suivre le chemin en ICMP ou en TCP, ou envoyer plusieurs fois par saut pour comparer les temps, il faut installer et utiliser la commande traceroute. Sur un serveur où l'installation est difficile, ou quand la MTU du chemin compte aussi, tracepath est le bon choix.
🔲 Simulateur de la commande tracepath
Dans le simulateur ci-dessous, vous pouvez revoir le chemin vers example.com en changeant seulement le nombre de sauts, ou saisir vous-même -n, -b, -m et -l pour localhost et 127.0.0.1 afin de comparer.
🔢 FAQ & contenus recommandés
Pare-feu
Installer FirewallD sous Linux et configurer le démon
Installation et réglage du démon de FirewallD, qui gère les règles du pare-feu avec des zones et des services.
Réseau · Configuration
Commande netstat et commande ifconfig sous Linux
Les commandes netstat et ifconfig, qui affichent les ports ouverts, l'état des connexions et les informations des interfaces réseau.
Réseau · DNS
Commande nslookup
La commande nslookup, qui demande à un serveur DNS vers quelle adresse IP se résout un nom de domaine.
ℹ️ Mention d'affiliation
Le contenu de ce site contient des liens d'affiliation. Lorsqu'un visiteur achète un produit ou un service via l'un de ces liens, le site perçoit une commission du vendeur. Le montant payé par l'acheteur(il baisse lors des promotions ↓), lui, n'augmente pas. Les prix, remises et stocks indiqués correspondent à la date de rédaction et peuvent différer ; vérifiez-les donc auprès du vendeur avant d'acheter. Les produits sont choisis et évalués selon nos propres critères, et les commissions n'influencent ni l'ordre de présentation ni le contenu des évaluations.