4 votes

Est-ce que la sortie de traceroute est correcte concernant le chemin réel vers une cible

El page de manuel pour traceroute dit "traceroute suit les paquets de route pris d'un réseau IP sur leur chemin vers un hôte donné". Mais en faisant des recherches sur le sujet, je n'ai pas été en mesure de trouver des données statistiques ou des travaux scientifiques sur la précision de Traceroute et sur la question de savoir si la route affichée est la route réellement empruntée (peut-être que les différents paquets utilisent des routes complètement différentes) et quelle est la marge d'erreur, et s'il serait possible, en raison de différents protocoles de routage, qu'un ping Traceroute affiche un chemin complètement différent de celui qu'une demande TCP ultérieure ou même les paquets ping réels prendraient.

Le seul travail que j'ai trouvé, impliquant qu'un traçage Ping pourrait ne pas être parfait, est le suivant documentation sur scamper qui dit "ping est utile pour mesurer le délai et la perte de bout en bout ping est utile pour mesurer le retard et la perte de bout en bout, rechercher des adresses IP réactives et classer le comportement des hôtes en examinant comment ils répondent aux sondes" et (pour autant que j'aie compris) utilise MDA traceroute pour la détection du chemin. Cela implique donc que l'utilisation de PING pourrait ne pas avoir le résultat souhaité.

Ma question est donc la suivante : Quelle est la fiabilité de la détection des chemins à l'aide de Traceroute (et pourquoi) ? J'apprécierais grandement des liens détaillés sur ce sujet, mais une explication générale du pourquoi ou du non suffirait également.

4voto

Giuseppe R Points 1325

La chose la plus importante à retenir est que les routes ne sont pas statiques . De par leur conception, les routes sur l'internet public changent en permanence. Parfois, les routes changent en raison de l'équilibrage de la charge ; parfois, elles changent parce qu'un nœud tombe en panne ; parfois, elles changent parce que les routeurs décident littéralement au hasard de modifier les règles de routage (juste pour faire bouger les choses).

Du point de vue d'un utilisateur final qui ne dispose pas d'un accès de niveau administrateur système à tous les routeurs et concentrateurs Internet intermédiaires entre l'origine et la destination d'un paquet, il faut traiter cette question un peu comme le principe d'incertitude d'Heisenberg.

Les choses à considérer :

  1. En fonction de la "destination" IP déclarée dans votre paquet, les routeurs intermédiaires peuvent décider de vous acheminer différemment . Par conséquent, si un traceroute est une tentative de cartographie séquentielle des routeurs entre la source et la destination, un traceroute peut être détourné de son but en faisant emprunter aux routes des chemins différents selon le nœud que vous essayez d'atteindre.

  2. Tous les routeurs n'écoutent pas les pings ICMP ou UDP. Ils peuvent choisir d'ignorer silencieusement ce trafic et de le laisser tomber sur la carte réseau (souvent pour lutter contre les attaques DDoS). Cela peut contrarier votre tentative de tracer une route.

  3. Même si vous réussissez à mapper une route, et que tous les nœuds intermédiaires répondent à vos pings et ne tentent pas de jouer avec votre tentative de mappage, la route peut changer lors des prochains paquets que vous enverrez en utilisant un protocole "réel" (ou même si vous tentez une traceroute une deuxième fois).

  4. La QoS peut amener des réseaux qui fonctionnent normalement à acheminer le trafic différemment. Par exemple, la voix sur IP ou la vidéo en continu peuvent emprunter un chemin, tandis que la navigation Web ordinaire peut en emprunter un autre.

  5. El type de trafic peut entraîner une différence de routage. Par exemple, même sans tenir compte de la qualité de service, vous pouvez obtenir un chemin différent pour FTP et pour SSH. Les noeuds intermédiaires peuvent exercer tout pouvoir discrétionnaire, quel qu'il soit (qu'il s'agisse d'une sélection totalement aléatoire des routes, d'une tentative malveillante de ralentir votre trafic ou d'une tentative honnête de rendre votre connexion plus rapide en acheminant le trafic vers le nœud le moins chargé) lorsqu'il s'agit de déterminer où acheminer votre trafic à partir de chaque saut.

  6. En théorie, les routeurs intermédiaires peuvent également, s'ils le souhaitent, transformer votre tentative de traceroute en un cycle infini : le noeud A pointe vers le noeud B, le noeud B pointe vers le noeud C, et le noeud C pointe à nouveau vers le noeud A. Rien n'empêche les routeurs de faire cela (je ne sais pas pourquoi ils le feraient, mais c'est une possibilité) pour les paquets détectés comme "traceroutes" (pings ICMP ou UDP). Il peut le faire pour tenter de déjouer vos efforts, ou pour toute autre raison.

L'algorithme de découverte de chemins multiples est utile, mais il ne peut pas surmonter ces limitations théoriques.

En gros, pour déterminer un chemin, il faut envoyer un ou plusieurs paquets. Ces paquets peuvent être acheminés de la manière dont les nœuds intermédiaires le souhaitent. Mais dès que vous envoyez un autre paquet, il n'y a absolument rien qui empêche les routeurs de modifier le chemin. Il s'agit en quelque sorte d'une analogie réseau du principe d'incertitude d'Heisenberg.

Les chemins sont éphémère y transitoire . Vous ne devriez pas vous fier aux informations reçues d'un traceroute pour quoi que ce soit d'important, sauf pour diagnostiquer un problème de connectivité sur un réseau dont vous avez déjà une connaissance approfondie de la topologie (sur un réseau local d'entreprise compliqué, par exemple) et dont vous pouvez contrôler le comportement des noeuds participants. Si l'un des nœuds participants n'est pas le vôtre (si vous ne pouvez pas vous y connecter avec des privilèges d'administrateur système), les résultats du traceroute sont effectivement arbitraires.

D'autre part, si tous les nœuds participants sont le vôtre, vous pouvez, en tant qu'administrateur, contrôler le comportement exact de chaque nœud. Par exemple, vous pouvez activer ICMP, et configurer statique (routes qui ne changent pas). Vous pouvez alors être sûr que votre traceroute est exact. Mais si vous placez un équilibreur de charge au milieu, vous devrez être conscient du comportement de l'équilibreur de charge et de la façon dont il peut changer de route pratiquement au besoin (bien qu'il ne soit généralement pas aléatoire et qu'il n'essaie généralement pas de vous tromper volontairement).

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X