Fatmawati Achmad Zaenuri / Shutterstock
Vous pouvez utiliser le Linux traceroute
commande pour repérer l’étape lente du trajet d’un paquet réseau et dépanner les connexions réseau lentes. Nous allons vous montrer comment!
Comment fonctionne traceroute
Quand tu apprécies comment traceroute
fonctionne, 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 et non 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.
Donc si traceroute
envoie un paquet, mais définit ensuite la valeur TTL à 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.
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. C’est souvent pour s’assurer que l’appareil ne peut pas être forcé involontairement à 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. À 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 à 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
à la Château de Blarney site Web en Irlande, berceau du célèbre Pierre de Blarney. La légende dit que si vous embrassez la pierre de Blarney, vous serez béni avec le «cadeau de la bavure». Espérons que les routeurs que nous rencontrons en cours de route seront suffisamment 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
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:
- 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:
- Saut 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, 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.
- Saut 6: Il y a beaucoup de texte ici car un périphérique distant différent a traité 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: Encore deux 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 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 le -n
(pas de mappage) option.
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 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 obtiendrons plus de réponses. Pour ce faire, nous utiliserons le -w
(temps d’attente) pour le changer à 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 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 le -q
(nombre de requêtes) pour ajuster cela à la hausse ou à la baisse.
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 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
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 assistance.
La charge traceroute
peut être placé sur un réseau pourrait 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.