Traceroute ist ein Computerprogramm, das ermittelt, über welche Router und Internet-Knoten IP-Datenpakete bis zum abgefragten Rechner gelangen.
Funktionsweise
Traceroute sendet mehrfach IP-Datenpakete vom Typ ICMP Echo Request an den Ziel-Host, beginnend mit einer Time to Live (TTL) von 1. Der erste Router, der das Datenpaket weiterleiten soll, zählt den Wert der TTL um eins herunter auf 0, woraufhin er es nicht weiterleitet, sondern verwirft. Dabei sendet er die ICMP-Antwort Typ 11: Time exceeded mit Code 0: Time to live exceeded in transit an den Absender. Dieses Datenpaket enthält als Source Address die IP-Adresse des betreffenden Routers. Diese Information wird vom Traceroute-Programm zusammen mit der gesamten Übertragungsdauer aufgezeichnet. Anschließend wiederholt das Programm diesen Schritt mit einer um 1 erhöhten TTL, um auf dieselbe Weise den nächsten Router auf dem Weg durch das Netzwerk zu ermitteln. Dies wird solange wiederholt, bis der Ziel-Host oder das vom jeweiligen Traceroute-Programm verwendete Maximum an Hops erreicht wurde. Wird der Ziel-Host erreicht, sendet er bei ICMP-basiertem Traceroute die ICMP-Antwort Typ 0 ICMP Echo Reply bzw. bei UDP-basiertem Traceroute Destination Unreachable Code 3 Port Unreachable.
Die Sequenz der so gesammelten Adressen kennzeichnet den Weg zum Ziel durch das Netz. Der Rückweg ist bei asymmetrischem Routing anders. Zur Feststellung des Rückwegs muss die Messung von der anderen Seite wiederholt werden. In der Regel werden an jeden Host drei Pakete gesendet. Die drei angezeigten Werte in Millisekunden geben die Antwortzeit dieser drei Versuche wieder.
Das Ergebnis von Traceroute zeigt nicht immer den tatsächlichen Weg. Es wird beeinflusst durch Transportmechanismen wie MPLS, Firewalls, fehlerhaften Implementierungen des IP-Stacks, Network Address Translation, IP-Tunneln oder der Wahl eines anderen Pfades bei Netzwerküberlastung und anderen Faktoren.
Unter Unix existiert auf IPv6-fähigen Systemen oft ein multiprotokollfähiges traceroute oder auch traceroute6. Unter Windows ist Traceroute als tracert.exe aufrufbar. Daneben gibt es seit Windows 2000 noch pathping, das eigentlich zur Überprüfung eines kompletten Netzwerkpfades gedacht ist, sich aber auch als schnelleres Traceroute benutzen lässt. Der Vorteil von pathping ist, dass es die Pakete nicht nacheinander, sondern gleichzeitig verschickt und dadurch kürzere Wartezeiten entstehen. Der Nachteil ist, dass es mit manchen fehlerhaften Netzen nicht zurechtkommt. Alternativ gibt es unter Linux mtr, Windows WinMTR, eine ähnliche Funktionalität.
Windows-Traceroute sendet standardmäßig ICMP-Pakete, Unix-Traceroute arbeitet mit UDP-Segmenten. Mit TCP-Segmenten arbeiten nur spezielle Programme z. B. Tcptraceroute oder LFT (Layer Four Traceroute). Alle diese Traceroute-Implementierungen sind jedoch auf die zurückkommenden ICMP-Pakete angewiesen. Verschiedene Protokolle und Ports auszuprobieren ist dann sinnvoll, wenn ein Paketfilter Traceroute blockiert. Insbesondere die Verwendung von UDP ist oft problematisch. Manche Unix-Traceroutes lassen sich mit dem Parameter „-I“ auf ICMP bzw. mit „-T“ auf TCP umstellen.
Beispiele
Traceroute unter Unix und Linux (IPv4):
$ traceroute wikipedia.de
traceroute to wikipedia.de (130.94.122.197), 30 hops max, 40 byte packets 1 fli4l.Netz1 (192.168.0.1) 0.765 ms 0.651 ms 0.497 ms 2 217.5.98.7 (217.5.98.7) 14.499 ms 14.648 ms 21.394 ms 3 217.237.152.46 (217.237.152.46) 14.831 ms 13.655 ms 13.403 ms 4 62.154.14.134 (62.154.14.134) 118.090 ms 119.522 ms 119.665 ms 5 p16-1-0-3.r20.asbnva01.us.bb.verio.net (129.250.9.141) 117.004 ms 117.370 ms 117.073 ms 6 p64-0-0-0.r21.asbnva01.us.bb.verio.net (129.250.2.35) 119.105 ms 119.284 ms 119.206 ms 7 p16-0-1-2.r20.plalca01.us.bb.verio.net (129.250.2.192) 180.035 ms 195.498 ms 178.704 ms 8 p16-1-0-0.r06.plalca01.us.bb.verio.net (129.250.3.81) 177.280 ms 177.263 ms 176.692 ms 9 p4-0-3-0.r00.sndgca01.us.bb.verio.net (129.250.3.10) 194.322 ms 193.477 ms 193.743 ms 10 ge-1-1.a03.sndgca01.us.da.verio.net (129.250.27.84) 192.527 ms 193.003 ms 192.464 ms 11 Pliny.wikipedia.org (130.94.122.197) 192.604 ms 193.875 ms 194.254 ms
Traceroute unter Linux (IPv6)
$ traceroute6 de.wikipedia.org
traceroute to de.wikipedia.org (2620:0:862:ed1a::1), 30 hops max, 80 byte packets 1 fritz.box (2003:63:2422:8300:2665:11ff:fe8f:181f) 0.775 ms 1.246 ms 1.237 ms 2 2003:0:1803:820b::1 (2003:0:1803:820b::1) 21.247 ms 22.003 ms 22.515 ms 3 2003:0:1801:c368::2 (2003:0:1801:c368::2) 23.651 ms 23.641 ms 31.282 ms 4 2003:0:130b::1 (2003:0:130b::1) 29.941 ms 31.162 ms 30.457 ms 5 2003:0:130b:1a::2 (2003:0:130b:1a::2) 47.038 ms 47.041 ms 47.020 ms 6 100ge3-1.core1.ams1.he.net (2001:470:0:2d4::1) 39.003 ms 38.500 ms 38.108 ms 7 ae2.cr1-esams.wikimedia.org (2001:7f8:1::a504:3821:1) 40.027 ms 32.987 ms 33.217 ms 8 text-lb.esams.wikimedia.org (2620:0:862:ed1a::1) 32.432 ms 31.592 ms 32.141 ms
Tracert.exe unter Windows (Referenzanbindung Universität Augsburg – T-Online Frankfurt am Main):
C:\> tracert www.t-online.de
Routenverfolgung zu www.t-online.de [217.6.164.162] über maximal 30 Abschnitte: 1 <1 ms <1 ms <1 ms 137.250.124.250 2 <1 ms <1 ms <1 ms csc72.Net.Uni-Augsburg.DE [137.250.90.250] 3 <1 ms <1 ms <1 ms ar-augsburg1-ge3-1.x-win.dfn.de [188.1.37.137] 4 3 ms 3 ms 3 ms cr-stuttgart1-po4-2.x-win.dfn.de [188.1.18.126] 5 3 ms 3 ms 3 ms 62.156.138.237 6 6 ms 6 ms 6 ms f-eb1.F.DE.net.DTAG.DE [62.154.17.138] 7 6 ms 6 ms 6 ms rincewind.sfm.t-online.de [62.159.199.6] 8 6 ms 6 ms 6 ms 217.6.167.198 9 7 ms 6 ms 6 ms 217.6.164.162 Ablaufverfolgung beendet.
Pathping unter Windows XP:
C:\> pathping -p 1 -w 1000 -q 1 google.at
Routenverfolgung zu google.at [66.249.93.104]
über maximal 30 Abschnitte:
0 cerberus [10.10.10.110]
1 10.10.10.254
2 80.123.142.xxx
3 62.47.95.239
4 172.19.89.145
5 195.3.66.142
6 195.3.70.37
7 195.3.70.86
8 de-cix10.net.google.com [80.81.192.108]
9 209.85.249.180
10 209.85.248.182
11 209.85.248.79
12 72.14.233.77
13 66.249.94.46
14 ug-in-f104.google.com [66.249.93.104]
Berechnung der Statistiken dauert ca. 0 Sekunden...
Quelle zum Abs. Knoten/Verbindung
Abs. Zeit Verl./Ges.= % Verl./Ges.= % Adresse
0 cerberus [10.10.10.110]
0/ 1 = 0% |
1 2ms 0/ 1 = 0% 0/ 1 = 0% 10.10.10.254
0/ 1 = 0% |
2 5ms 0/ 1 = 0% 0/ 1 = 0% 80.123.142.xxx
0/ 1 = 0% |
3 23ms 0/ 1 = 0% 0/ 1 = 0% 62.47.95.239
0/ 1 = 0% |
4 14ms 0/ 1 = 0% 0/ 1 = 0% 172.19.89.145
0/ 1 = 0% |
5 14ms 0/ 1 = 0% 0/ 1 = 0% 195.3.66.142
0/ 1 = 0% |
6 17ms 0/ 1 = 0% 0/ 1 = 0% 195.3.70.37
0/ 1 = 0% |
7 17ms 0/ 1 = 0% 0/ 1 = 0% 195.3.70.86
0/ 1 = 0% |
8 26ms 0/ 1 = 0% 0/ 1 = 0% de-cix10.net.google.com [80.81.192.108]
0/ 1 = 0% |
9 38ms 0/ 1 = 0% 0/ 1 = 0% 209.85.249.180
0/ 1 = 0% |
10 34ms 0/ 1 = 0% 0/ 1 = 0% 209.85.248.182
0/ 1 = 0% |
11 40ms 0/ 1 = 0% 0/ 1 = 0% 209.85.248.79
0/ 1 = 0% |
12 35ms 0/ 1 = 0% 0/ 1 = 0% 72.14.233.77
0/ 1 = 0% |
13 51ms 0/ 1 = 0% 0/ 1 = 0% 66.249.94.46
0/ 1 = 0% |
14 39ms 0/ 1 = 0% 0/ 1 = 0% ug-in-f104.google.com [66.249.93.104]
Ablaufverfolgung beendet.
Siehe auch
Weblinks
traceroute(8)
: print the route packets take to network host – OpenBSD System Manager's Manualtraceroute(8)
: Trace the route to a host – Debian GNU/Linux Systemverwaltung Handbuchseite- G. Malkin: RFC – Traceroute Using an IP Option. Januar 1993 (englisch).
- J. Postel: RFC – Internet Control Message Protocol (ICMP). September 1981 (englisch).
- Onlineinterfaces für PING, ICMP-Traceroutes aus den Niederlanden oder Japan
- Zusammenstellung vieler Online-Traceroutes nach Ländern