27 points par GN⁺ 2025-11-09 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • Une page interactive visualise en temps réel le trajet emprunté par les paquets de l’utilisateur jusqu’au serveur d’un site web via Internet
  • Son propre programme de traceroute, ktr, exploite la valeur TTL des paquets ICMP pour collecter les informations de chaque saut réseau
  • Le site web fonctionne même sans JavaScript, le serveur injectant les résultats du traceroute dans le HTML sous forme de flux
  • Pour l’analyse du cheminement, il utilise les données WHOIS et PeeringDB afin d’afficher le système autonome (AS) auquel appartient chaque IP ainsi que les informations sur l’entreprise concernée
  • En combinant traceroute et structure de l’Internet fondée sur BGP, il montre qu’Internet est un ensemble de réseaux reliés par des relations de peering entre entreprises

Le voyage parcouru par votre paquet

  • Le traceroute en haut de la page montre le chemin suivi par les paquets entre l’ordinateur de l’utilisateur et le serveur
    • Il traverse successivement des réseaux comme ceux de routeurs, de FAI, d’Amazon, de NTT Global IP Network et de Hetzner
    • Certaines sections sont indiquées comme « (no response) », car certains serveurs ne répondent pas
  • À l’intérieur du réseau Hetzner, le paquet passe par plusieurs routeurs avant d’atteindre le serveur final
  • L’adresse IP 213.239.252.10 est affichée comme core0.fra.hetzner.com grâce à une recherche DNS inverse

Behind the Scenes

  • Quand le site web reçoit une requête de l’utilisateur, il exécute un traceroute côté serveur puis transmet les résultats en temps réel
  • Le traceroute utilise le protocole ICMP et collecte la réponse de chaque saut en augmentant la valeur TTL (Time To Live) d’une unité à chaque fois
  • Quand le TTL atteint 0, le routeur concerné renvoie un message d’erreur, ce qui permet de retracer le chemin emprunté par le paquet
  • ktr diffuse les résultats du traceroute en flux tout en interrogeant en parallèle les informations d’IP, d’ASN et de réseau propriétaire de chaque saut

Frontend Fun

  • Le site fonctionne même sans JavaScript, et le navigateur le perçoit simplement comme une page qui se charge lentement
  • Le serveur maintient la connexion HTTP ouverte et insère progressivement les résultats du traceroute dans le HTML
  • À chaque mise à jour, il insère un bloc CSS pour masquer les résultats précédents, ce qui produit un effet d’actualisation en temps réel

Front to Back, Back to Front

  • En réalité, le site exécute le traceroute depuis le serveur vers l’IP de l’utilisateur et affiche ensuite les résultats dans l’ordre inverse
  • Il s’agit donc d’un « reverse traceroute » : même si les chemins aller et retour ne sont pas parfaitement identiques, ils sont généralement assez similaires

Les réseaux et les systèmes autonomes (AS)

  • Internet est un réseau de réseaux d’entreprises appelés systèmes autonomes (Autonomous System, AS)
  • Chaque AS possède son propre ASN (Autonomous System Number) et échange du trafic avec d’autres via le peering
  • Internet n’est pas un ensemble appartenant à des particuliers, mais une collection de réseaux détenus par des entreprises, dont les interconnexions sont déterminées par des contrats financiers et des procédures administratives
  • Un ASN peut être demandé auprès de l’un des 5 registres Internet régionaux (RIR)

WHOIS et PeeringDB

  • Pour identifier l’AS auquel appartient chaque IP du traceroute, le site utilise le protocole WHOIS et la base de données PeeringDB
  • WHOIS repose sur une structure simple : après l’ouverture d’une connexion TCP, on envoie une requête et le serveur renvoie les informations
  • Comme les noms de champs et les formats varient selon les serveurs, l’analyseur a été implémenté sous la forme d’un simulateur simple, proche d’une lecture humaine
  • PeeringDB fournit des informations sur les entreprises pour environ un tiers de l’ensemble des AS

BGP (Border Gateway Protocol)

  • BGP est le protocole central qui détermine la forme d’Internet, en échangeant les informations de routage entre AS
  • Les routeurs de bordure (border routers) maintiennent une table de routage BGP contenant la liste des ASN pour chaque chemin
  • Lorsque deux AS établissent un peering, leurs routeurs ouvrent une session BGP et échangent des annonces de routes (route advertisements)
  • Parmi plusieurs chemins possibles, les routeurs choisissent le plus court ou celui ayant la préférence la plus élevée pour acheminer les paquets

L’histoire de BGP

  • Les expérimentations réseau commencées en 1969 avec ARPANET ont conduit en 1989 à la RFC 1105 de Cisco et IBM, marquant l’apparition de BGP v1
  • Ont ensuite été publiées BGP v2 (1990) puis v4 (1994), cette dernière étant toujours utilisée aujourd’hui
  • BGP s’est imposé comme le protocole standard qui détermine les chemins d’interconnexion entre tous les réseaux d’Internet

La relation entre traceroute et BGP

  • Exemple de chemin : AS16509 → AS2914 → AS24940
    • Amazon (AS16509) → NTT Global IP Network (AS2914) → Hetzner (AS24940)
  • Même au sein d’un même ASN, plusieurs sauts peuvent exister, gérés par des protocoles de routage internes ou des chemins statiques
  • Ce sont les relations de peering entre AS qui déterminent la véritable atteignabilité sur Internet

Récapitulatif

  • Le site exécute un traceroute vers l’IP de l’utilisateur et transmet le résultat sous forme de flux HTTP
  • Le traceroute exploite le TTL des paquets ICMP pour visualiser le chemin entre routeurs
  • Chaque routeur appartient à un système autonome (AS), interconnecté avec les autres via BGP
  • Les relations de peering déterminent la structure et l’accessibilité d’Internet

Épilogue

  • L’auteur, conscient de sa compréhension encore incomplète de l’architecture d’Internet, a créé un article interactif à vocation pédagogique centré sur les protocoles
  • Plutôt que d’attendre un grand projet parfaitement abouti, il a choisi de publier quelque chose de plus modeste mais terminé
  • Le projet a été mené à bien grâce aux encouragements de la communauté Hack Club, en s’appuyant sur un programme de traceroute open source
  • Avec le message « mieux vaut quelque chose de petit mais terminé », l’auteur espère que cela restera un contenu web durable

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.