YOU1234DEST3ms8ms22ms45ms48mshop by hop

Traceroute

10 lecture min.Diagnostic

Traceroute est l'outil de diagnostic qui expose la géographie cachée d'Internet. Tapez une commande, récupérez une liste de chaque routeur que vos paquets traversent en route vers une destination. Il fonctionne grâce à une fonctionnalité obscure du protocole IP – le champ Time To Live – et détecte des problèmes de réseau depuis trente ans.

Le corps complet de l’article est fourni en anglais ci-dessous.

Traceroute révèle la séquence de sauts entre vous et une destination. Chaque ligne de sortie correspond à un routeur ; le temps aller-retour vous indique la latence de ce routeur. Lorsque quelque chose sur Internet est lent ou cassé, traceroute est généralement le premier outil prêt à l'emploi.

Comment ça marche : l'astuce TTL

Chaque paquet IP possède un champ Time To Live (TTL), destiné à l'origine à empêcher les paquets de circuler indéfiniment dans les boucles de routage. Chaque routeur décrémente le TTL de un. Lorsque le TTL atteint zéro, le routeur abandonne le paquet et renvoie un message ICMP « Time Exceeded » à la source.

Traceroute arme ceci :

  1. Envoyez un paquet à la destination avec TTL=1. Le premier routeur le décrémente à 0, le supprime, répond par "Time Exceeded" - se révélant comme hop 1.
  2. Send TTL=2. Le premier routeur décrémente à 1 et avance ; le deuxième routeur décrémente à 0, abandonne, répond - révélant le saut 2.
  3. Continuez l'incrémentation jusqu'à ce que vous atteigniez la destination, qui répond avec autre chose (un port inaccessible ou une réponse d'application réelle).

La réponse de la destination est la façon dont traceroute sait s'arrêter. Trois sondes par saut sont la valeur par défaut, c'est pourquoi vous voyez trois mesures RTT par ligne.

Le trois types de sonde

Différentes implémentations de traceroute envoient différents types de sondes :

  • UDP traceroute (Unix classique) : envoie des paquets UDP à des numéros de port élevés. La destination répond par « port inaccessible ». Par défaut sous Linux/macOS.
  • ICMP traceroute (Windows tracert) : envoie des paquets ICMP Echo Request. La destination répond avec Echo Reply. Meilleur comportement à travers certains pare-feu.
  • TCP traceroute : envoie TCP SYN à un port spécifique (généralement 80 ou 443). Utile lorsqu'une destination abandonne UDP et ICMP mais accepte TCP sur un port connu.

Le bon outil dépend de ce que les pare-feu du chemin abandonnent. tcptraceroute réussit souvent là où traceroute échoue.

Lecture de la sortie

Une ligne typique :

 5 ae1.cr1.fra4.de.example.net (172.16.50.1) 18,234 ms 18,012 ms 17,998 ms

Le numéro de saut, le nom et l'IP du routeur, puis trois mesures RTT. Les astérisques * * * signifient que le routeur n'a pas répondu : soit il a abandonné la sonde, a limité le débit des réponses ICMP, soit il a été configuré pour ne pas s'identifier. Les astérisques sont normaux et ne signifient pas nécessairement un problème ; de nombreux routeurs de base ne répondent délibérément pas à traceroute.

Ce que vous disent les sauts

Les noms DNS des routeurs sont chargés de sens. ae1.cr1.fra4.de vous indique : agrégation Ethernet bundle 1, routeur principal 1, site de Francfort 4, Allemagne. Les ingénieurs réseau peuvent lire ces noms comme les plaques d'immatriculation et vous indiquer quel opérateur possède le chemin, dans quelle ville se trouve le paquet et même quel fournisseur d'équipement (Cisco vs Juniper vs Arista) l'opérateur utilise.

Un détour géographique inattendu (des paquets vers une destination de Francfort passant par Singapour) signifie généralement une décision politique BGP plutôt qu'une coupure physique de la fibre. Un routage sous-optimal se produit constamment et ne constitue pas nécessairement un problème.

Le problème de chemin asymétrique

Traceroute affiche uniquement le chemin outbound. Le chemin de retour peut être – et est souvent – ​​complètement différent, car chaque AS choisit son propre routage sortant. Un RTT élevé sur un saut peut signifier une liaison lente à cet endroit, ou cela peut signifier que la liaison lente se trouve sur le chemin de retour de ce saut. Sans traceroute depuis la destination jusqu'à vous, vous ne pouvez pas le savoir.

C'est pourquoi "traceroute semble bien mais ma latence est terrible" est une situation courante. La sonde explore le chemin une direction à la fois.

Alternatives modernes : outils de style MTR et mtr

MTR (My Traceroute) est un traceroute continu : il envoie un ping à chaque saut dans une boucle et affiche les statistiques d'exécution : RTT moyen, pourcentage de perte, gigue. Beaucoup plus utile pour diagnostiquer des problèmes intermittents qu’un traceroute ponctuel. WinMTR sous Windows, mtr sous Unix, PathPing comme alternative intégrée à Windows.

Pour diagnostiquer un chemin que vous ne possédez pas, RIPE Atlas et les serveurs à miroir exploités par les principaux réseaux vous permettent d'exécuter traceroute à partir d'un point de vue distant - inestimable pour comprendre les itinéraires asymétriques.

Limites et bizarreriesLes routeurs compatibles

MPLS peuvent masquer les sauts en ne décrémentant pas le TTL sur un cloud MPLS. Les réseaux à charge équilibrée peuvent afficher différents chemins sur des sondes consécutives, ce qui rend la sortie chaotique. La limitation du débit ICMP sur les routeurs occupés peut produire de fausses lectures de « sauts lents » qui ne reflètent pas les performances réelles du plan de données. Le RTT des routeurs intermédiaires mesure le temps nécessaire pour atteindre le plan de contrôle de ce routeur, , qui est souvent plus lent que le plan de données via le même routeur. Utilisez traceroute comme indice, pas comme métrique.

Questions fréquemment posées

Pourquoi mon traceroute atteint-il « * * * » pour certains sauts ?
Le routeur existe mais n'a pas répondu à la sonde. Raisons courantes : limitation du débit ICMP, politique de pare-feu qui supprime les réponses dont la durée de vie est dépassée ou décision de l'opérateur de rendre le routeur invisible. Les paquets transitent toujours ; vous ne pouvez tout simplement pas voir ces sauts.
Traceroute fonctionne-t-il via un VPN ?
Oui, mais la trace commence à la sortie du VPN, pas à partir de votre emplacement réel. Les premiers sauts que vous verriez normalement (votre routeur domestique, votre FAI) sont remplacés par le saut unique dans le tunnel VPN. La trace devient une vue du réseau du fournisseur VPN et de son chemin ultérieur.
Pourquoi traceroute affiche-t-il des chemins différents à chaque fois que je l'exécute ?
De nombreux grands réseaux équilibrent la charge du trafic sur plusieurs chemins de coût égal, et la clé d'équilibrage de charge inclut des champs de paquets. Différentes sondes hachent différents chemins et vous voyez l'union. Des outils comme Paris-traceroute maintiennent la clé d'équilibrage de charge constante pour produire une sortie stable.
Que signifie un pic soudain de latence à un saut ?
Il peut s'agir d'une liaison encombrée, d'un plan de contrôle lent sur ce routeur spécifique (très probablement) ou d'un chemin de retour asymétrique. Regardez les sauts suivants : si leur RTT est similaire, le pic est une véritable congestion ; si leur RTT diminue, le pic est dû au fait que le plan de contrôle du routeur tarde à répondre.
Existe-t-il un outil combinant traceroute et ping continu ?
MTR (mtr sous Unix, WinMTR sous Windows). Il envoie un ping à chaque saut dans une boucle et affiche les statistiques en cours : RTT moyen, pourcentage de perte de paquets, écart type. Bien plus utile que vanilla traceroute pour les problèmes intermittents.
Traceroute expliqué : comment voir chaque saut effectué par un paquet