Comment faire la commande pour retracer un paquet ?

Sommaire

  • I. Présentation
  • II. Traceroute: qu'est ce que c'est ?
  • III. Comment ça fonctionne
  • IV. Problème de résultat : les étoiles
  • V. Différence entre Windows et Linux

I. Présentation

Dans ce tutoriel, nous allons voir qu'est ce que le traceroute, un utilitaire souvent utilisé sous toute distribution qui permet de suivre et de retracer le chemin d'un paquet d'un point A à un point B sur un réseau LAN comme sur internet. Nous verrons comment un traceroute fonctionne, les différences entre les principaux OS et les limites de cet outil.

Comme dit précédemment, traceroute est un outil qui va permettre, à partir d'un poste A, de suivre le chemin qu'emprunte une communication vers un point B. On dit souvent que "ça passe par Internet" mais nous pouvons avoir des informations plus précises. Traceroute est aussi utilisé dans les réseaux d'entreprises pour connaitre le chemin qu'utilise les flux au sein des réseaux. On peux imaginer une utilisation lors de la configuration d'un protocole de routage par exemple.

Techniquement, traceroute a un fonctionnement assez logique. Il utilise le TTL (Time To Live) des paquets UDP ou ICMP qu'il manie afin de découvrir progressivement le chemin que parcourent les paquets. Plus précisément, la source va d'abord envoyer un paquet avec un TTL de 1 qui sera décrément au premier routeur (dit aussi "saut" ou "hop") qui jettera alors le paquet puis enverra à la source du paquet un message d'erreur ICMP disant "Time to live exceeded in transit" . Notre source fera ensuite la même chose avec un TTL de 2. Arrivé à notre cible finale, celle-ci nous répondra un paquet. Voici un schéma qui vous permettra de mieux comprendre ce processus :

Comment faire la commande pour retracer un paquet ?

Nous voyons bien sur le schéma ci-dessus le processus d'exécution d'un traceroute. A la fin de notre traceroute, nous aurons donc deux lignes qui ressemblerons à cela :

1   2 ms  2 ms  4 ms  router1.false.net [159.57.85.1]
2   24 ms 24 ms 24 ms router2.false.net [56.32.45.12]
Itinéraire déterminé

Pour que ce soit parlant, voici un exemple de résultat de traceroute sous Windows (commande "tracert"):

Comment faire la commande pour retracer un paquet ?

On voit ici un traceroute de chez moi vers www.it-connect.fr qui est sur un serveur 1&1 en Allemagne. On voit donc que le premier routeur que mon paquet va passer est ma livebox (routeur entre mon LAN et internet) puis différent routeur où nous n'avons que l'IP, pour arriver au final sur le réseau de 1&1 ("oneandone.net") et enfin sur le serveur "kundenserver.de". Si nous effectuons une analyse de trame sur cette requête, nous verrons quelque chose comme suivant (sous Windows) :

Comment faire la commande pour retracer un paquet ?

On voit donc bien l'incrémentation du TTL une fois un routeur passé (dans les cadres rouges).

  • Comment obtient-on des informations sur chacun des routeurs ?

Étant donné que chaque routeur qui décrémente le TTL alors qu'il arrive à 0 est obligé de jeter le paquet, il envoie tout de même un avertissement à sa source pour la prévenir. C'est pendant cet envoi du paquet ICMP "Time to live exceeded in transit" que nous pouvons récupérer des informations sur le routeur en question. On récupérera forcément son IP à partir de laquelle nous pourrons faire une recherche DNS (type nslookup). Nous verrons cela en détail dans la suite du tutoriel. Les données de temps sont elles évaluées en examinant le temps que le paquet d'erreur "TTL exceeded " met à nous revenir. Pour revenir à notre trame précédente :

Comment faire la commande pour retracer un paquet ?

On voit bien la trame 84 qui effectue un ping avec un TTL de 1 puis la trame 85 qui décrémente le TTL et qui renvoie un "TTL exceeded" en retour avec l'IP source (du routeur donc) "192.168.1.254". On remarque ensuite une requête DNS sur 254.1.168.192.in-addr-arpa qui ressemble donc à un nslookup inversé (partant de l'IP pour arriver au nom). On a ensuite la réponse du serveur DNS (qui ici a la même IP que mon routeur puisqu'il s'agit de ma livebox)

IV. Problème de résultat : les étoiles

Il arrive parfois que le résultat nous affiche des étoiles au lieu d'avoir des informations sur le temps de retour du paquet ou du routeur faisant transiter le paquet. Cela arrive par exemple lorsque nous tentons un traceroute vers un site du ministère de la justice  comme www.legifrance.gouv.fr :

Comment faire la commande pour retracer un paquet ?

Les étoiles présentes dans certains résultats correspondent à des manques d'information concernant les routeurs qui jettent le paquet. Nous savons qu'un routeur a jeté le paquet car nous n'avons pas de réponse claire de notre cible mais aucun retour ne nous est fait, le "Délai d'attente de la demande dépassé" apparait donc après un nombre défini de tentatives infructueuses.

Cela est souvent dû au fait que les routeurs sont plus sécurisés et n'acceptent pas ce genre de paquet (ICMP par exemple), ils sont configurés pour ne pas y répondre en parti pour ne pas fournir d'information sur eux-mêmes. Pour le site legifrance.gouv.fr, on peut imaginer que la fin du chemin qui est stocké sur des serveurs gouvernementaux est protégé et que les routeurs le constituants sont configurés pour ne par répondre aux paquets ICMP.

Comment faire la commande pour retracer un paquet ?

V. Différence entre Windows et Linux

Sous Windows, la commande à exécuter est la suivante :

tracert

Tandis que sous Linux c'est la commande suivante :

traceroute

Il faut également savoir que le "tracert" de Windows utilise des paquets ICMP pour effectuer le traceroute alors que le traceroute de Linux utilise des paquets UDP comme on le voit sur l'analyse de trame suivante :

Comment faire la commande pour retracer un paquet ?

Comment tracer un paquet ?

traceroute youtube.com ..
tapez sudo apt install traceroute , puis validez en appuyant sur Entrée ;.
tapez votre mot de passe, puis validez en appuyant sur Entrée ;.
tapez y , puis validez en appuyant sur Entrée ;.
attendez tranquillement l'installation de Traceroute..

C'est quoi la commande Tracert ?

Résumé Cet article présente TRACERT (Trace Route), un utilitaire de ligne de commande qui permet de suivre le chemin emprunté par un paquet IP (Internet Protocol) pour arriver à sa destination.

Comment est choisi le chemin des paquets ?

Pour choisir un chemin, les routeurs peuvent utiliser deux types de protocoles : un protocole à vecteur de distance ou un protocole à état de lien. Lorsqu'un ordinateur souhaite envoyer des données à un autre ordinateur, le protocole IP va encapsuler les données dans ce qu'on appelle un paquet IP (ou un datagramme IP).

Quelle est la commande du système d'exploitation qui permet de connaître le chemin suivi par les paquets d'information entre les ordinateurs ?

Le programme utilitaire de Windows Tracert ainsi que son pendant sous Linux Traceroute permettent de suivre les chemins de paquets de données. En fonction des résultats, l'utilisateur découvre par quelles stations individuelles les paquets sont envoyés lors de leurs parcours vers leurs destinations.