Comment utiliser la commande traceroute sous Linux

Vous pouvez utiliser la commande 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

Lorsque vous appréciez le fonctionnement du traceroute, cela facilite la compréhension des résultats. Le plus compliqué de l’itinéraire un paquet réseau doit prendre pour atteindre sa destination, plus il est difficile de localiser les éventuels ralentissements.

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

Les en-têtes des métadonnées sur les paquets de données décrivent leur longueur, leur origine, leur destination, le protocole qu’ils utilisent, 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 le TCP / IP suite de protocoles et envoie Protocole de datagramme utilisateur paquets. L’en-tête contient le Temps de vivre (TTL), qui contient une valeur entière de huit bits. Malgré ce que son nom suggère, il représente un dé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 jour, le routeur qui reçoit le paquet décrémente la valeur et remarque qu’elle est maintenant nulle. Le paquet est ensuite rejeté et n’est pas transmis au saut suivant de son voyage car il a «expiré».

Le routeur envoie un Protocole de contrôle des messages Internet (ICMP) Temps écoulé message à 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 Demande de commentaires 792.

Ainsi, si traceroute envoie un paquet, mais définit ensuite la valeur TTL sur un, le paquet n’ira que jusqu’au premier routeur avant d’être rejeté. Il recevra un message de dépassement de temps ICMP du routeur et il pourra enregistrer le temps nécessaire pour l’aller-retour.

  Comment jouer à Brawlhalla sous Linux

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 essaie à nouveau. 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 fonctionnent pas bien

Certains routeurs ont des bogues. Ils essaient de faire suivre des paquets avec un TTL de zéro au lieu de les rejeter et de lever un message ICMP de dépassement de temps.

Selon Cisco, certains fournisseurs d’accès Internet (FAI) limitent le nombre de messages ICMP que leurs routeurs relaient.

Certains périphériques sont configurés pour ne jamais envoyer de paquets ICMP. Cela permet souvent de garantir que l’appareil ne peut pas être involontairement contraint à participer à une déni de service distribué, comme un attaque schtroumpf.

traceroute a un délai d’expiration 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. Pour installer traceroute sur Manjaro, utilisez la commande suivante:

sudo pacman -Sy traceroute

le

Pour installer traceroute sur Ubuntu, utilisez la commande suivante:

sudo apt-get install traceroute

le

Utilisation de traceroute

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

À titre d’exemple, nous allons exécuter un traceroute vers le Château de Blarney site Web en Irlande, berceau du célèbre Pierre de Blarney. La légende raconte que si vous embrassez la pierre de Blarney, vous serez béni avec le «cadeau du bavardage». Espérons que les routeurs que nous rencontrons en cours de route seront suffisamment bavards.

Nous tapons la commande suivante:

traceroute www.blarneycastle.ie

le

La première ligne nous donne les informations suivantes:

La destination et son adresse IP.
Le nombre de sauts que le traceroute essaiera 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 dit également que nous avons atteint notre destination.

Le format de chaque ligne de saut est le suivant:

  Pourquoi votre iPhone a-t-il émis un bip ou une vibration? Voici comment le découvrir

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 se trouve 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.

Passons en revue 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, donc le traceroute a expiré.
Hop 3: Un appareil a répondu, mais nous n’avons pas obtenu son nom, seulement l’adresse IP. Notez qu’il y a un astérisque dans cette ligne, ce qui signifie que nous n’avons pas obtenu de réponse aux trois demandes. Cela pourrait indiquer une perte de paquets.
Houblon 4 et 5: plus de sauts anonymes.
Hop 6: Il y a beaucoup de texte ici car un périphérique distant différent a géré chacune de nos trois requêtes UDP. Les noms (assez longs) et les adresses IP de chaque périphérique 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 est dans l’un des plus grands FAI du Royaume-Uni. Ce serait donc un miracle mineur si le même matériel distant traitait 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 ont été renvoyés 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 Géolocalisation de l’adresse IP, le site Web est à Londres.

Donc, c’était un sac mélangé. Certains appareils ont joué au ballon, certains ont répondu mais ne nous ont pas dit leurs noms, et d’autres sont restés complètement anonymes.

Cependant, nous sommes arrivés à destination, nous savons qu’il est à 11 sauts et que le temps 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 de périphériques entraîne parfois un affichage encombré. Pour faciliter la visualisation des données, vous pouvez utiliser l’option -n (pas de mappage).

  Comment formater correctement le code dans OneNote

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

traceroute -n blarneycastle.ie

le

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 enquêtiez sur votre réseau d’entreprise, il vaudrait la peine de creuser un peu plus profondément ce nœud.

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

Peut-être que si nous étendons le délai d’expiration par défaut (cinq secondes), nous aurons plus de réponses. Pour ce faire, nous utiliserons l’option -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

le

Cela n’a pas fait beaucoup de différence, donc les réponses arrivent probablement à expiration. Il est probable que les sauts anonymes soient délibérément secrets.

Définition du nombre de tests

Par défaut, traceroute envoie trois paquets UDP à chaque saut. Nous pouvons utiliser l’option -q (nombre de requêtes) pour ajuster cela vers le haut ou vers le bas.

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

traceroute -q 1 blarneycastle.ie

le

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 que un, et sauter quelques sauts. Habituellement, les valeurs TTL sont définies sur un pour le premier ensemble de tests, deux pour le prochain ensemble de tests, et ainsi de suite. Si nous le définissons sur cinq, le premier test tentera d’atteindre le saut cinq et sautera les sauts un à quatre.

Parce que nous savons que le site Web du château de Blarney est à 11 sauts de cet ordinateur, nous tapons ce qui suit pour aller directement au saut 11:

traceroute -f 11 blarneycastle.ie

le

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 une commande tracert qui fonctionne de manière similaire.

Cependant, vous ne voulez pas bombarder des périphériques inconnus avec des torrents de paquets UDP, et méfiez-vous de l’inclusion de traceroute dans des scripts ou des travaux sans surveillance.

Le traceroute de charge peut être placé sur un réseau peut avoir un impact négatif sur ses performances. À moins que vous ne soyez dans une situation de réparation immédiate, vous voudrez peut-être l’utiliser en dehors des heures normales de bureau.