Introduction à Traceroute
La commande Linux traceroute est un utilitaire de dépannage réseau qui nous aide à déterminer le nombre de sauts et le chemin de déplacement des paquets requis pour atteindre une destination. Il est utilisé pour afficher comment les données sont transmises d'une machine locale à une machine distante. Le chargement d'une page Web est l'un des exemples courants de traceroute. Le chargement d'une page Web transfère des données via un réseau et des routeurs. Le traceroute peut afficher les routes, les adresses IP et les noms d'hôte des routeurs sur un réseau. Cela peut être utile pour diagnostiquer les problèmes de réseau.
En informatique, tracert et traceroute sont les commandes de diagnostic du réseau informatique permettant d'afficher les itinéraires possibles et de mesurer les délais de transit des paquets sur le réseau IP. L'historique de la route est enregistré sous la forme du temps d'aller-retour des paquets à partir de tous les hôtes successifs de la route ; la somme du temps moyen dans chaque saut est la mesure du temps total passé à créer la connexion.
La commande traceroute continue à moins que chaque paquet envoyé ne soit perdu plus de deux fois ; la connexion est perdue et le chemin ne peut pas être évalué. En revanche, la commande ping ne mesure que les derniers temps aller-retour via le point de destination. Parfois, l'outil porte un nom similaire, tracert6 et traceroute6, pour IPv6.
Syntaxe:
traceroute [OPTION...] HOST
Possibilités :
Les options de ligne de commande suivantes sont prises en charge par la commande traceroute :
-f, --first-hop=NUM : Il est utilisé pour définir la distance initiale du saut.
-g, --gateways=PORTES : Il est utilisé pour afficher une liste de passerelles pour le routage source libre.
-Je, --icmp : Il est spécifié d'utiliser ICMP ECHO comme sonde.
-m, --max-hop=NUM : Il est utilisé pour définir le nombre maximal de sauts, la valeur par défaut est 64.
-M, --type=MÉTHODE : Il spécifie la MÉTHODE (icmp ou udp) pour les opérations traceroute, la méthode par défaut est udp.
-p, --port=PORT : Il est défini pour utiliser le port PORT de destination, le PORT par défaut est 33434.
-q, --tries=NUM : Il est utilisé pour transmettre NUM paquets de sonde par saut, la valeur par défaut est 3.
--resolve-hostnames : Il est utilisé pour résoudre les noms d'hôtes.
-t, --tos=NUM : Il est utilisé pour définir le type de service (TOS) sur NUM.
-w, --wait=NUM : Il est utilisé pour attendre une réponse en secondes, la valeur par défaut est 3.
-?, --aide: Il est utilisé pour afficher le manuel d'aide qui contient une brève description des options de ligne de commande prises en charge et de leur utilisation.
--usage: Il affiche un court message d'utilisation.
-V, --version : Il est utilisé pour afficher les informations de version du traceroute.
Jetons un coup d'œil à l'index rapide du sujet :
- Installez la commande traceroute
- Comment ça marche?
- Tracez l'itinéraire en utilisant IPv6
- Tracez l'itinéraire en utilisant IPv4
- Désactiver le mappage de l'adresse IP et du nom d'hôte
- Définir le nombre de requêtes par saut
- Définir le temps d'attente de réponse
- Spécifiez l'interface à utiliser
- Définir la valeur TTL initiale
- Définir le nombre maximum de sauts
- Obtenir de l'aide
Implémentations de traceroute
La commande traceroute est disponible sur plusieurs systèmes d'exploitation modernes. Sur les systèmes de type Unix tels que Linux, macOS et FreeBSD, il est disponible en tant qu'outil pour la ligne de commande. De plus, traceroute est accessible graphiquement dans la suite Network Utilities sous macOS ; ces utilitaires sont obsolètes depuis la publication de macOS Big Sur.
ReactOS et Microsoft Windows proposent un programme appelé tracert qui implémente une fonction de traçage d'itinéraire similaire. En outre, les systèmes d'exploitation Windows NT proposent PathPing, qui peut combiner les fonctionnalités de la commande ping avec tracert. L'édition ReactOS a été intégrée par Get Murphy et est sous licence GPL.
Par défaut, traceroute envoie une commande de paquets UDP (User Datagram Protocol) sur les systèmes d'exploitation de type Unix, avec des numéros de destination de port allant de 33434 à 33534. Les implémentations traceroute livrées avec macOS, DragonFly BSD, OpenBSD, NetBSD, FreeBSD et Linux ont la possibilité d'utiliser des paquets ICMP Echo Request tels que TCP et UDP à l'aide de paquets ICMP ou TCP SYN. Par défaut, tracert transfère les paquets ICMP Echo Request sous Windows au lieu des transferts de traceroute de paquets UDP.
Utilisation de traceroute
La plupart des implémentations disposent d'au moins quelques options pour définir le nombre de requêtes à transférer par saut, le temps d'attente pour une réponse, la limite de saut et le port utilisé. Si nous n'invoquons pas traceroute avec les options spécifiées, la liste des options disponibles s'affiche, tandis que la commande man traceroute représente plus de détails, tels que les indicateurs d'erreur.
Origines du traceroute
La page de manuel de traceroute indique que le programme traceroute actuel a été spécifié par Van Jacobson en 1987 à partir d'une recommandation de Steve Deering, avec des correctifs et des recommandations particulièrement convaincants de C. Philip Wood, Ken Adelman et Tim Seaver. Mike Muuss, l'auteur du programme ping, déclare que le traceroute a été spécifié avec le support du noyau ICMP qu'il avait codé plus tôt pour activer les sockets ICMP bruts alors qu'il spécifiait initialement le programme ping.
Limites de traceroute
Les limites de traceroute sont tristement célèbres et doivent être prises en compte lors de l'utilisation de l'outil. Par exemple, un traceroute reconnaît les chemins au niveau de l'interface mais pas au niveau de la route. D'autres limitations surviennent lorsque les routeurs ne répondent pas à l'examen ou lorsque les routeurs incluent une restriction pour les réponses ICMP.
Traceroute peut représenter un chemin qui n'existe pas en cas d'équilibrage de la charge du trafic. Pour minimiser ce problème, une modification de traceroute est disponible, connue sous le nom de Paris-traceroute, qui gère l'identifiant du flux d'examen pour ignorer l'équilibrage de charge.
Installez la commande traceroute
Le traceroute n'est pas un utilitaire par défaut du Linux système. Pour utiliser le traceroute, nous devons l'installer manuellement. Pour l'installer, exécutez l'une des commandes suivantes :
sudo apt install inetutils-traceroute sudo apt install traceroute
Les commandes ci-dessus installeront l'utilitaire traceroute sur notre système. Une fois l'installation réussie, le résultat ressemblera à ceci :
Comment ça marche?
Pour tracer l'itinéraire d'un hôte réseau connecté, transmettez le nom du serveur ou l'adresse IP à laquelle vous souhaitez vous connecter. Par exemple, pour tracer l'itinéraire du serveur « javatpoint.com », exécutez la commande ci-dessous :
traceroute javatpoint.com
La commande ci-dessus affichera les sauts, les paquets et bien d'autres informations sur la route donnée. Considérez le résultat ci-dessous :
À partir du résultat ci-dessus, nous pouvons voir plusieurs choses. comprenons chaque partie du résultat :
- La première ligne affiche le nom d'hôte et l'adresse IP à atteindre, les sauts qui vont être tentés par la commande traceroute et la taille des paquets à envoyer.
- À partir de la deuxième ligne, chaque ligne affiche un saut vers la destination. Et le nom d'hôte suivi de l'adresse IP de l'hôte, heure aller-retour. Le temps aller-retour est la somme du temps nécessaire à l'envoi d'un signal et du temps nécessaire pour répondre à l'hôte.
- Par défaut, il envoie trois paquets pour chaque hôte, donc trois temps de réponse sont répertoriés.
- Le symbole '*' représente la perte de paquets. La perte de paquets se produit en raison d'une panne de réseau, d'un trafic élevé vers une congestion du réseau ou peut-être que le pare-feu perd du trafic. En cas de perte importante de paquets, le traceroute affichera l'erreur « la destination n'est pas atteinte ».
Tracez l'itinéraire à l'aide d'IPv6
L'option « 6 » est utilisée pour tracer la route vers un réseau hôte à l'aide du protocole Ipv6. Considérez la commande ci-dessous :
traceroute6 google.com
La commande ci-dessus tracera l'itinéraire vers « google.com » en utilisant le protocole Ipv6. Considérez le résultat ci-dessous :
Tracez l'itinéraire en utilisant IPv4
L'option '4' est utilisée pour tracer la route vers un réseau hôte utilisant le protocole Ipv6. Considérez la commande ci-dessous :
traceroute 4 google.com
La commande ci-dessus tracera l'itinéraire vers « google.com » en utilisant le protocole Ipv6. Considérez le résultat ci-dessous :
comment changer la chaîne en int
Désactiver le mappage de l'adresse IP et du nom d'hôte
L'option 'n' est utilisée pour désactiver le mappage de l'adresse IP et du nom d'hôte. Considérez la commande ci-dessous :
traceroute n google.com
La commande ci-dessus produira le résultat suivant :
Définir le nombre de requêtes par saut
L'option '-q' est utilisée pour définir le nombre de requêtes par saut. Considérez la commande ci-dessous :
traceroute -q 2 google.com
La commande ci-dessus produira le résultat suivant :
Définir le temps d'attente de réponse
L'option '-w' est utilisée pour définir le temps d'attente de réponse dans traceroute. Il précisera le temps d'attente en secondes pour répondre à une sonde. Considérez la commande ci-dessous :
traceroute -w 1 google.com
À partir de la commande ci-dessus, le temps d'attente de réponse est de 1 seconde. Il produira le résultat suivant :
Spécifiez l'interface à utiliser
L'option 'i' est utilisée pour définir l'interface réseau que traceroute doit utiliser. S'il n'est pas défini, il définira l'interface en fonction de la table de routage. Considérez la commande ci-dessous :
traceroute i wlp3s0b1 google.com
La commande ci-dessus produira le résultat suivant :
Définir la valeur TTL initiale
Nous pouvons définir la valeur TTL (durée de vie) initiale autre que la valeur par défaut. Cela sautera quelques sauts. Habituellement, il est défini sur un, deux, trois, etc. pour l'ensemble de tests concerné. Ainsi, si nous le définissons sur sept, le premier test tentera le saut sept et sautera les sauts de un à six. Considérez la commande ci-dessous :
traceroute -f 7 google.com
La commande ci-dessus ira directement au saut sept. Considérez le résultat ci-dessous :
Définir le nombre maximum de sauts
L'option '-m' est utilisée pour définir le nombre maximum de sauts nécessaires au paquet pour atteindre la destination. La valeur par défaut du nombre maximum de sauts est 30. Considérez la commande ci-dessous :
traceroute -m 7 google.com
La commande ci-dessus définira 7 sauts maximum pour que le paquet atteigne la destination. Considérez le résultat ci-dessous :
Obtenir de l'aide
Pour afficher le manuel d'aide contenant un résumé de l'utilisation et des options prises en charge, exécutez la commande ci-dessous :
traceroute --help
La commande ci-dessus affichera l'aide. Il produira le résultat suivant :
Nous pouvons également accéder aux pages de manuel en exécutant la commande man comme suit :
man traceroute
La commande ci-dessus affichera la page de manuel de la commande traceroute. Cela ressemblera à ceci :
Faites défiler la page pour en savoir plus et appuyez sur la touche « q » pour quitter la page de manuel.