Comment diagnostiquer les problèmes de réseau sous Linux avec Traceroute

Comment diagnostiquer les problèmes de réseau sous Linux avec Traceroute
Traceroute Linux en vedette

Traceroute est un utilitaire réseau simple qui peut tracer l’itinéraire emprunté par un paquet Internet depuis la source jusqu’à son hôte de destination. Cet article vous montrera comment utiliser Traceroute pour vérifier la santé de votre réseau Linux et diagnostiquer les problèmes émergents.

Comment fonctionne Traceroute ?

Traceroute fonctionne en envoyant des paquets UDP avec des longueurs TTL courtes à chaque passerelle Internet le long du chemin vers un hôte distant. Ces courtes longueurs de TTL obligent ensuite ces passerelles à signaler une réponse ICMP « TIME_EXCEEDED » ainsi que l’adresse IP de leur interface.

Ces deux facteurs se sont combinés pour permettre à traceroute de créer une liste détaillée des machines par lesquelles votre paquet passera lors de sa connexion à un serveur externe. Par exemple, exécuter un traceroute vers « google.com » sur mon réseau répertoriera entre 9 et 10 passerelles avant d’atteindre les serveurs de Google.

Un terminal affichant un traceroute de base pour google.com.

Quels problèmes de réseau Traceroute peut-il résoudre ?

Traceroute n’est qu’un outil de sonde de réseau et il n’optimise ni ne résout aucun problème en suspens sur votre réseau. Traceroute ne peut décrire que le comportement des réseaux et des paquets qui y circulent.

Malgré cela, il s’agit toujours d’un outil important pour diagnostiquer les problèmes potentiels du réseau. Un bon exemple est celui où une passerelle locale ne parvient pas à transférer un paquet vers son prochain saut. Traceroute peut résoudre ce problème en mettant en évidence tout routeur de votre réseau principal qui n’envoie pas de réponse « TIME_EXCEEDED ».

Un terminal affichant un traceroute de base où les passerelles ne parviennent constamment pas à répondre au programme.

En dehors de cela, vous pouvez également utiliser traceroute pour vérifier les problèmes de latence entre les hôtes. Cela peut être utile si vous souhaitez savoir si votre réseau local a besoin d’un VPN pour garantir une faible latence constante lors de la connexion à une machine distante.

Utiliser Traceroute sous Linux

Ouvrez un nouveau terminal et tapez traceroute suivi de l’adresse de la machine à laquelle vous souhaitez que votre machine se connecte. Il peut s’agir soit d’un nom de domaine, soit d’une adresse IP. Par exemple :

Appuyez sur Enter pour commencer à mapper le chemin vers votre hôte distant.

Un terminal affichant un traceroute de base vers un petit VPS.

Envoi de paquets avec TTL personnalisé dans Traceroute

Bien que l’utilisation de traceroute soit suffisante pour une utilisation de base, vous pouvez également modifier le fonctionnement du programme à l’aide d’indicateurs. Cela peut être utile surtout si vous effectuez un tri de votre réseau.

L’une des modifications les plus courantes de traceroute consiste à modifier la quantité de paquets envoyés à une passerelle. Pour ce faire, utilisez l’indicateur -q suivi de la quantité de paquets que vous souhaitez envoyer par requête :

Vous pouvez également utiliser l’indicateur -N suivi de « 1 » pour désactiver explicitement les demandes de paquets simultanées. Ceci est utile si vous disposez de passerelles qui limitent le débit des paquets UDP avec une durée de vie courte.

Un terminal affichant un traceroute avec des paquets simultanés désactivés.

Enfin, vous pouvez également modifier la valeur TTL par défaut pour traceroute. Pour ce faire, ajoutez l’indicateur -f suivi de la durée de vie souhaitée pour votre premier paquet de sondage.

Un terminal affichant un traceroute où le programme ignore les deux premières passerelles.

Changer le protocole Traceroute sous Linux

Par défaut, traceroute sous Linux utilise UDP pour envoyer des paquets de sonde aux passerelles réseau. Cela peut poser un problème si vous testez une passerelle qui bloque activement les paquets traceroute.

Pour résoudre ce problème, vous pouvez utiliser l’indicateur -T pour exécuter traceroute à l’aide de simples paquets TCP SYN.

Un terminal affichant un traceroute où le programme utilise le paquet TCP SYN au lieu d'UDP.

D’un autre côté, vous pouvez également forcer traceroute à utiliser un paquet ICMP ECHO si la passerelle de destination restreint uniquement UDP :

Traceroute prend également en charge les interfaces réseau personnalisées. C’est ici que traceroute utilisera une carte réseau différente sur votre machine pour sonder le chemin d’un paquet.

Pour ce faire, exécutez le programme avec l’indicateur -i suivi du nom de périphérique de votre interface.

En dehors de cela, vous pouvez utiliser l’indicateur -p pour spécifier le numéro de port de départ que traceroute utilisera pour le sondage UDP :

Enfin, l’indicateur -p change également son comportement en fonction du protocole que vous utilisez. L’associer à -I définira la valeur -p comme numéro de séquence ICMP initial au lieu du port de destination.

Un terminal affichant un traceroute utilisant ICMP ECHO avec un numéro de séquence ICMP personnalisé.

Apprendre à utiliser traceroute n’est que la première étape pour comprendre comment les ordinateurs communiquent entre eux sur un réseau. Apprenez-en davantage sur les réseaux informatiques en analysant le contenu d’un paquet TCP à l’aide de tcpdump.

En attendant, vous pouvez également en savoir plus sur les couches OSI supérieures, telles que DNS, en en utilisant l’outil dig de Linux. une>

Toutes les modifications et captures d’écran par Ramces Red.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *