Wie funktioniert traceroute, und welche Rolle spielt das TTL-Feld?
Kurzantwort
Traceroute entdeckt die Router zwischen Ihnen und einem Ziel, indem es das TTL-Feld ausnutzt. Es sendet Pakete mit TTL=1, dann 2, dann 3 und so weiter. Jeder Router verringert die TTL; erreicht die TTL null, verwirft dieser Router das Paket und gibt eine ICMP-Time-Exceeded-Nachricht zurück, die seine Adresse offenbart. Durch das schrittweise Erhöhen der TTL bildet traceroute jeden Hop der Reihe nach ab, bis das Ziel erreicht ist.
Traceroute beantwortet die Frage „welchen Pfad nimmt mein Verkehr zu diesem Host, und wo ist er langsam oder gestört?". Es ist ein cleverer Trick mit einem Feld, das existiert, um Routing-Schleifen zu verhindern: die TTL. Es zu verstehen beweist, dass Sie das Verhalten von Routern und ICMP verstehen.
Der TTL-Trick
Jedes IP-Paket trägt einen Time-To-Live-Wert. Seine eigentliche Aufgabe ist die Schleifenvermeidung: jeder Router, der ein Paket weiterleitet, verringert die TTL um 1, und erreicht die TTL 0, verwirft der Router das Paket und sendet eine ICMP-Time-Exceeded-Nachricht an die Quelle.
Traceroute nutzt das absichtlich aus:
- Eine Sonde mit TTL = 1 senden. Der erste Router verringert sie auf 0, verwirft sie und antwortet mit Time Exceeded — jetzt kennen Sie Hop 1.
- Eine Sonde mit TTL = 2 senden. Sie übersteht den ersten Router und stirbt am zweiten, der antwortet — jetzt kennen Sie Hop 2.
- Weiter erhöhen. Jede Runde offenbart den nächsten Router auf dem Pfad, der Reihe nach, samt Umlaufzeit.
Das Ziel erreichen
Zwischen-Hops antworten mit Time Exceeded. Das Endziel wird anders erkannt: je nach Variante antwortet es mit ICMP Echo Reply (ICMP-Sonden), ICMP Port Unreachable (klassische UDP-Sonden an einen hohen Port) oder einem TCP SYN-ACK/RST (TCP-Sonden). Diese andere Antwort ist, woran traceroute erkennt, dass es angekommen ist.
Die Ausgabe lesen
Sternchen (* * *) bedeuten keine Antwort für diesen Hop — oft ein Router, der so konfiguriert ist, kein ICMP zu senden, eine Firewall, die Sonden verwirft, oder Ratenbegrenzung. Sie bedeuten nicht zwingend einen gestörten Pfad. Schwankende Laufzeiten oder ein plötzlicher Sprung können auf Überlastung oder eine Fernverbindung hindeuten.
Interviewer erwarten den Mechanismus der steigenden TTL, die ICMP-Time-Exceeded-Antwort und idealerweise, warum manche Hops keine Antwort zeigen.
Wahrscheinliche Anschlussfragen
- Warum zeigen manche Hops in der traceroute-Ausgabe Sternchen (keine Antwort)?
- Wie wird das Ziel anders erkannt als die Zwischen-Hops?
- Was ist der Unterschied zwischen ICMP-, UDP- und TCP-basiertem traceroute?