Halihallo
Wie funktioniert dann traceroute intern?
Das klassische Traceroute benutzt als Protokoll ICMP. Teil eines solchen Datenpaketes ist das Feld TTL (time to live), daß mit einem positiven Wert (z.B. 30) initialisiert wird. Wenn das Paket nun von Router zu Router weitergereicht wird veringert jeder Router das Feld TTL (zumeist) um eins. Wenn TTL schließlich auf 0 oder 1 steht, sendet der Betreffende Router das Signal "time exceeded" an die ursprüngliche IP zurück. Teil diese "time exceeded" ist auch die IP des betreffenden Routers.
traceroute testet nun einfach mit allen möglichen TTL Werten die komplette Route hin zu einem target durch.
In letzter Zeit ist es leider üblich geworden, daß viele Router/Server ein Packet mit einem "abgelaufenen" TTL komentarlos wegwerfen, deswegen gibt es neuere Traceroute Impementierungen, die UDP Packete an irgendwelche nicht genutzten (hohen) Portnummern versendet und die Fehlermeldung auswerten (das grundlegenede Prinzip ist aber das gleiche, man umgeht aber auf diese Weise einige Firewall Regeln).
Aha. Dachte mir schon, dass man hierzu solche Tricks verwenden muss. Aber halt... Jedes Packet sucht sich seinen eigenen Weg, also dürfte doch traceroute gar nicht funktionieren, da es ja jedesmal ein anderes Packet mit anderer TTL absendet; jedoch dieses Packet muss nicht den selben Weg gehen, wie das Vorgängerpacket. Oder hab ich da was falsch verstanden?
Besten Dank für die interessante Info
Philipp