- Eine interaktive Seite, die den Weg der Pakete eines Nutzers über das Internet bis zum Server einer Website in Echtzeit visualisiert
- Das selbst entwickelte traceroute-Programm
ktr nutzt den TTL-Wert von ICMP-Paketen, um Informationen zu jedem Netzwerk-Hop zu sammeln
- Die Website funktioniert auch ohne JavaScript, wobei der Server die traceroute-Ergebnisse als Stream in das HTML einfließen lässt
- Für die Pfadanalyse werden WHOIS- und PeeringDB-Daten verwendet, um das Autonome System (AS) und die Unternehmensinformationen zu jeder IP anzuzeigen
- Durch die Kombination von traceroute und der BGP-basierten Internetstruktur wird gezeigt, dass das Internet aus einer Sammlung von Netzwerken besteht, die über Peering-Beziehungen zwischen Unternehmen verbunden sind
Die Reise Ihres Pakets
- Das traceroute am Seitenanfang zeigt den Weg der Pakete vom Computer des Nutzers bis zum Server
- Es durchläuft nacheinander Netzwerke wie Router, ISP, Amazon, NTT Global IP Network und Hetzner
- Einige Abschnitte werden als „(no response)“ angezeigt, was auf Server zurückzuführen ist, die nicht antworten
- Innerhalb des Hetzner-Netzwerks erreicht es über mehrere Router schließlich den Zielserver
- Die IP-Adresse
213.239.252.10 wird über eine Reverse-DNS-Abfrage als core0.fra.hetzner.com angezeigt
Behind the Scenes
- Wenn die Website eine Anfrage des Nutzers erhält, führt der Server traceroute aus und sendet die Ergebnisse in Echtzeit
- traceroute verwendet das ICMP-Protokoll und sammelt Antworten von jedem Hop, indem der TTL-Wert (Time To Live) schrittweise um 1 erhöht wird
- Wenn der TTL-Wert 0 erreicht, gibt der betreffende Router eine Fehlermeldung zurück, wodurch sich der vom Paket durchlaufene Pfad nachverfolgen lässt
ktr streamt die traceroute-Ergebnisse und fragt gleichzeitig zu jedem Hop IP-, ASN- und Netzwerkbesitzinformationen ab
Frontend Fun
- Es funktioniert auch ohne JavaScript, und der Browser erkennt es einfach als langsam ladende Seite
- Der Server hält die HTTP-Verbindung offen und fügt die traceroute-Ergebnisse nacheinander in das HTML ein
- Bei jedem Update wird ein CSS-Block eingefügt, um vorherige Ergebnisse auszublenden, wodurch ein Echtzeit-Aktualisierungseffekt entsteht
Front to Back, Back to Front
- Tatsächlich führt der Server traceroute zur IP des Nutzers aus und zeigt die Ergebnisse in umgekehrter Reihenfolge an
- Das ist ein „reverse traceroute“; auch wenn der Pfad in beide Richtungen nicht vollständig identisch ist, zeigt es im Großen und Ganzen einen ähnlichen Weg
Netzwerke und Autonome Systeme (AS)
- Das Internet ist ein Verbund von Netzwerken auf Unternehmensebene, die als Autonome Systeme (Autonomous System, AS) bezeichnet werden
- Jedes AS besitzt eine eindeutige ASN (Autonomous System Number) und tauscht über Peering Traffic mit anderen aus
- Das Internet ist kein Besitz einzelner Personen, sondern eine Sammlung von Netzwerken im Besitz von Unternehmen, deren Verbindungen durch finanzielle Verträge und administrative Verfahren bestimmt werden
- Eine ASN kann über eine der fünf Regional Internet Registries (RIR) beantragt werden
WHOIS und PeeringDB
- Um das AS zu finden, zu dem jede IP in traceroute gehört, werden das WHOIS-Protokoll und die PeeringDB-Datenbank verwendet
- WHOIS hat eine einfache Struktur: Nach dem Aufbau einer TCP-Verbindung wird eine Anfrage gesendet, und der Server gibt die Informationen zurück
- Da sich Feldnamen und Formate je nach Server unterscheiden, ist der Parser als einfache Simulation umgesetzt, die eher der menschlichen Leseweise ähnelt
- PeeringDB liefert Unternehmensinformationen für etwa ein Drittel aller AS
BGP (Border Gateway Protocol)
- BGP ist das zentrale Protokoll, das die Form des Internets bestimmt, indem es Pfadinformationen zwischen AS austauscht
- Border Router pflegen eine BGP-Routing-Tabelle und speichern die ASN-Listen für jeden Pfad
- Wenn zwei AS Peering betreiben, bauen ihre Router eine BGP-Session auf und tauschen Route Advertisements aus
- Router wählen unter mehreren Wegen den kürzesten oder bevorzugten Pfad aus und leiten Pakete entsprechend weiter
Die Geschichte von BGP
- Netzwerkexperimente, die 1969 im ARPANET begannen, führten 1989 mit RFC 1105 von Cisco und IBM zur Einführung von BGP v1
- Danach wurden BGP v2 (1990) und v4 (1994) veröffentlicht; v4 wird bis heute verwendet
- BGP etablierte sich als Standardprotokoll zur Bestimmung der Verbindungswege zwischen allen Netzwerken im Internet
Die Beziehung zwischen Traceroute und BGP
- Beispielpfad: AS16509 → AS2914 → AS24940
- In der Reihenfolge Amazon (AS16509) → NTT Global IP Network (AS2914) → Hetzner (AS24940)
- Auch innerhalb derselben ASN gibt es mehrere Hops; diese werden über interne Routing-Protokolle oder statische Pfade verarbeitet
- Peering-Beziehungen zwischen AS bestimmen die tatsächliche Erreichbarkeit im Internet
Zusammenfassung
- Die Website führt traceroute zur IP des Nutzers aus und überträgt das Ergebnis als HTTP-Stream
- traceroute nutzt den TTL-Wert von ICMP-Paketen, um Pfade zwischen Routern zu visualisieren
- Jeder Router gehört zu einem Autonomen System (AS) und ist über BGP mit anderen verbunden
- Peering-Beziehungen bestimmen Erreichbarkeit und Struktur des Internets
Epilog
- Der Autor stellte fest, dass ihm ein tieferes Verständnis der Internetstruktur fehlte, und erstellte deshalb einen interaktiven, protokollzentrierten Lehrtext
- Statt auf ein großes, hochpoliertes Projekt zu warten, entschied er sich, auch in kleiner Form etwas zu veröffentlichen
- Das Projekt wurde durch die Ermutigung der Hack-Club-Community vollendet und nutzt ein Open-Source-traceroute-Programm
- Mit der Botschaft „Auch etwas Kleines ist besser, wenn es fertig ist“ hofft er, dass es als nachhaltiger Webinhalt bestehen bleibt
Noch keine Kommentare.