Agence web » Actualités du digital » Comment utiliser la commande traceroute sous Linux

Comment utiliser la commande traceroute sous Linux

Vous pouvez utiliser le Linux traceroute pour repérer la partie lente du parcours d’un paquet réseau et dépanner les connexions réseau lentes. Nous allons vous montrer comment!

Comment fonctionne traceroute

Quand vous appréciez comment traceroute fonctionne, il facilite la compréhension des résultats. Plus l’itinéraire d’un paquet réseau doit être compliqué pour atteindre sa destination, plus il est difficile de localiser les éventuels ralentissements.

Le réseau local (LAN) d’une petite organisation peut être relativement simple. Il aura probablement au moins un serveur et un ou deux routeurs. La complexité augmente sur un réseau étendu (WAN) qui communique entre différents emplacements ou via Internet. Votre paquet réseau rencontre alors (et est transmis et acheminé par) beaucoup de matériel, comme des routeurs et des passerelles.

Les en-têtes des métadonnées sur les paquets de données décrivent sa longueur, sa provenance, sa destination, le protocole qu’il utilise, etc. La spécification du protocole définit l’en-tête. Si vous pouvez identifier le protocole, vous pouvez déterminer le début et la fin de chaque champ dans l’en-tête et lire les métadonnées.

traceroute utilise la suite de protocoles TCP / IP et envoie des paquets de protocole de datagramme utilisateur. L’en-tête contient le champ Time to Live (TTL), qui contient une valeur entière de huit bits. Malgré ce que son nom suggère, il représente un compte, pas une durée.

Un paquet voyage de son origine à sa destination via un routeur. Chaque fois que le paquet arrive sur un routeur, il décrémente le compteur TTL. Si la valeur TTL atteint un, le routeur qui reçoit le paquet décrémente la valeur et remarque qu’elle est désormais nulle. Le paquet est ensuite jeté et non transmis au prochain saut de son voyage car il a expiré.

Le routeur renvoie un message ICMP (Internet Message Control Protocol) Time Exceeded à l’origine du paquet pour lui faire savoir que le paquet a expiré. Le message Time Exceeded contient l’en-tête d’origine et les 64 premiers bits des données du paquet d’origine. Ceci est défini à la page six de la demande de commentaires 792.

Donc si traceroute envoie un paquet, mais définit ensuite la valeur TTL à un, le paquet n’atteindra que le premier routeur avant d’être rejeté. Il recevra un message ICMP dépassé le temps du routeur, et il peut enregistrer le temps qu’il a fallu pour l’aller-retour.

Il répète ensuite l’exercice avec TTL réglé sur 2, qui échouera après deux sauts. traceroute augmente le TTL à trois et réessaye. Ce processus se répète jusqu’à ce que la destination soit atteinte ou que le nombre maximum de sauts (30, par défaut) soit testé.

Certains routeurs ne jouent pas bien

Certains routeurs ont des bugs. Ils essaient de transmettre des paquets avec un TTL de zéro au lieu de les rejeter et de déclencher un message ICMP dépassé le temps.

Selon Cisco, certains fournisseurs de services Internet (FAI) limitent le nombre de messages ICMP que leurs routeurs relaient.

Certains appareils sont configurés pour ne jamais envoyer de paquets ICMP. C’est souvent pour éviter que l’appareil ne soit involontairement contraint de participer à un déni de service distribué, comme une attaque de schtroumpf.

traceroute a un délai par défaut pour les réponses de cinq secondes. S’il ne reçoit pas de réponse dans ces cinq secondes, la tentative est abandonnée. Cela signifie que les réponses des routeurs très lents sont ignorées.

Installation de traceroute

traceroute était déjà installé sur Fedora 31 mais doit être installé sur Manjaro 18.1 et Ubuntu 18.04. À installer traceroute sur Manjaro, utilisez la commande suivante:

sudo pacman -Sy traceroute

À installer traceroute sur Ubuntu, utilisez la commande suivante:

sudo apt-get install traceroute

Utilisation de traceroute

Comme nous l’avons vu ci-dessus, traceroute's Le but est d’obtenir une réponse du routeur à chaque saut de votre ordinateur vers la destination. Certains pourraient être les lèvres serrées et ne rien révéler, tandis que d’autres renverseront probablement les haricots sans scrupules.

Par exemple, nous allons exécuter un traceroute sur le site du château de Blarney en Irlande, qui abrite la célèbre pierre de Blarney. La légende raconte que si vous embrasser la pierre de Blarney, vous serez béni avec le « cadeau du gab. » Espérons que les routeurs que nous rencontrons en cours de route sont convenablement bavards.

Nous tapons la commande suivante:

traceroute www.blarneycastle.ie

La première ligne nous donne les informations suivantes:

  • La destination et son adresse IP.
  • Le nombre de sauts traceroute va essayer avant d’abandonner.
  • La taille des paquets UDP que nous envoyons.

Toutes les autres lignes contiennent des informations sur l’un des sauts. Avant de creuser dans les détails, cependant, nous pouvons voir qu’il y a 11 sauts entre notre ordinateur et le site Web du château de Blarney. Hop 11 nous indique également que nous avons atteint notre destination.

Le format de chaque ligne de saut est le suivant:

  • Le nom de l’appareil ou, si l’appareil ne s’identifie pas, l’adresse IP.
  • L’adresse IP.
  • Le temps qu’il a fallu aller-retour pour chacun des trois tests. Si un astérisque est ici, cela signifie qu’il n’y a pas eu de réponse pour ce test. Si l’appareil ne répond pas du tout, vous verrez trois astérisques et aucun nom d’appareil ni adresse IP.

Voyons ce que nous avons ci-dessous:

  • Hop 1: Le premier port d’escale (sans jeu de mots) est le routeur DrayTek Vigor sur le réseau local. C’est ainsi que nos paquets UDP quittent le réseau local et accèdent à Internet.
  • Hop 2: Cet appareil n’a pas répondu. Peut-être qu’il a été configuré pour ne jamais envoyer de paquets ICMP. Ou, peut-être qu’il a répondu mais était trop lent, alors traceroute Fin du temps.
  • Hop 3: Un appareil a répondu, mais nous n’avons pas obtenu son nom, uniquement l’adresse IP. Notez qu’il y a un astérisque sur cette ligne, ce qui signifie que nous n’avons pas reçu de réponse aux trois demandes. Cela pourrait indiquer une perte de paquets.
  • Houblon 4 et 5: Plus de houblons anonymes.
  • Hop 6: Il y a beaucoup de texte ici car un périphérique distant différent a traité chacune de nos trois demandes UDP. Les noms (plutôt longs) et les adresses IP de chaque appareil ont été imprimés. Cela peut se produire lorsque vous rencontrez un réseau «richement peuplé» sur lequel il y a beaucoup de matériel pour gérer des volumes de trafic élevés. Ce saut fait partie de l’un des plus grands FAI du Royaume-Uni. Ce serait donc un miracle mineur si le même matériel distant gérait nos trois demandes de connexion.
  • Hop 7: C’est le saut que nos paquets UDP ont fait lorsqu’ils ont quitté le réseau des FAI.
  • Hop 8: Encore une fois, nous obtenons une adresse IP mais pas le nom de l’appareil. Les trois tests sont revenus avec succès.
  • Houblon 9 et 10: Deux autres sauts anonymes.
  • Hop 11: Nous sommes arrivés sur le site Web du château de Blarney. Le château est à Cork, en Irlande, mais, selon la géolocalisation de l’adresse IP, le site Web est à Londres.

C’était donc un sac mixte. Certains appareils ont joué au ballon, certains ont répondu mais ne nous ont pas dit leur nom, et d’autres sont restés complètement anonymes.

Cependant, nous sommes arrivés à destination, nous savons qu’il est à 11 sauts et le temps d’aller-retour pour le voyage était de 13,773 et 14,715 millisecondes.

Masquage des noms de périphériques

Comme nous l’avons vu, l’inclusion de noms d’appareil entraîne parfois un affichage encombré. Pour faciliter la visualisation des données, vous pouvez utiliser le -n (pas de mappage).

Pour ce faire avec notre exemple, nous tapons ce qui suit:

traceroute -n blarneycastle.ie

Cela facilite la sélection de grands nombres pour les horaires aller-retour qui pourraient indiquer un goulot d’étranglement.

Hop 3 commence à paraître un peu suspect. La dernière fois, il n’a répondu que deux fois, et cette fois, il n’a répondu qu’une seule fois. Dans ce scénario, c’est hors de notre contrôle, bien sûr.

Cependant, si vous étudiez votre réseau d’entreprise, il vaudrait la peine de creuser un peu plus profondément dans ce nœud.

Définition de la valeur de délai d’expiration traceroute

Peut-être que si nous prolongeons le délai d’expiration par défaut (cinq secondes), nous obtiendrons plus de réponses. Pour ce faire, nous utiliserons le -w (temps d’attente) pour le changer en sept secondes. (Notez qu’il s’agit d’un nombre à virgule flottante.)

Nous tapons la commande suivante:

traceroute -w 7.0 blarneycastle.ie

Cela n’a pas fait beaucoup de différence, donc les réponses expirent probablement. Il est probable que le houblon anonyme soit délibérément secret.

Définition du nombre de tests

Par défaut, traceroute envoie trois paquets UDP à chaque saut. Nous pouvons utiliser le -q (nombre de requêtes) pour augmenter ou diminuer cette valeur.

Pour accélérer le traceroute test, nous tapons ce qui suit pour réduire le nombre de paquets de sonde UDP que nous envoyons à un:

traceroute -q 1 blarneycastle.ie

Cela envoie une seule sonde à chaque saut.

Définition de la valeur TTL initiale

Nous pouvons définir la valeur initiale de TTL sur autre chose qu’un et sauter certains sauts. Habituellement, les valeurs TTL sont définies sur un pour le premier ensemble de tests, deux pour le prochain ensemble de tests, etc. Si nous la fixons à cinq, le premier test tentera de monter à cinq et de sauter les sauts de un à quatre.

Parce que nous savons que le site Web de Blarney Castle est à 11 sauts de cet ordinateur, nous tapons ce qui suit pour aller directement à Hop 11:

traceroute -f 11 blarneycastle.ie

Cela nous donne un joli rapport condensé sur l’état de la connexion à la destination.

Soyez prévenant

traceroute est un excellent outil pour étudier le routage du réseau, vérifier les vitesses de connexion ou identifier les goulots d’étranglement. Windows a également un tracert commande qui fonctionne de manière similaire.

Cependant, vous ne voulez pas bombarder des appareils inconnus avec des torrents de paquets UDP, et méfiez-vous d’inclure traceroute dans des scripts ou des travaux sans surveillance.

La charge traceroute peut placer sur un réseau peut nuire à ses performances. À moins que vous ne soyez dans une situation de réparation, vous souhaiterez peut-être l’utiliser en dehors des heures normales de bureau.

★★★★★