traceroute(1M) traceroute(1M)
NAME
traceroute - Paketweg zu einem Zielrechner ausgeben
SYNTAX
traceroute [-m maxttl] [-n] [-p port] [-q nqueries] [-r] [-s srcaddr]
[-g addr] [-t tos] [-v] [-w waittime] host [packetsize]
BESCHREIBUNG
Das Internet ist eine umfangreiche, komplexe Konstellation von Netzen,
die über Gateways miteinander verbunden sind. Das Nachvollziehen der
Route, die ein Paket zu den verschiedenen Rechnern nimmt (bzw. das
Feststellen des Gateways, an dem Pakete verworfen werden) kann mit
Schwierigkeiten verbunden sein. traceroute wertet das Feld ttl
("time-to-live") im IP-Protokollkopf aus und versucht, von jedem Gate-
way auf dem Weg zu einem bestimmten Rechner die ICMP-Meldung
TIMEEXCEEDED zu bekommen.
Hinweis:
Dieses Kommando sollte nur für Diagnosezwecke benutzt werden
Der einzige obligatorische Parameter ist der Name bzw. die IP-Adresse
des Ziel-Rechners. Die Länge des Test-Datagramms beträgt standardmäßig
38 Byte; allerdings kann auch mit einem höheren Wert gearbeitet wer-
den, indem nach dem Namen des Ziel-Rechners eine Paketgröße (in Byte)
angegeben wird.
OPTIONEN
-m maxttl
Maximale Lebensdauer (maximale Anzahl der Zwischenstationen
(hops)) für abgehende Testpakete auf maxttl Zwischenstationen
festlegen. Standardwert ist 30 Zwischenstationen (derselbe Stan-
dardwert wie bei TCP-Verbindungen).
-n Die Adressen von Zwischenstationen werden nur im numerischen For-
mat ausgegeben; die symbolische Adresse wird unterdrückt (so
bleibt dem Namen-Server eine Name/Adreß-Abbildung für jedes Gate-
way im Übertragungsweg erspart).
-p port
port ist die Nummer des UDP-Ports, den Testpakete als ersten Port
verwenden sollen (Standard: 33434). traceroute hofft, daß an den
UDP-Ports port bis port+maxttl-1 des Ziel-Rechners keine Netz-
Dienste warten (und das Nachvollziehen der Route durch die
zurückgegebene ICMP-Meldung PORTUNREACHABLE beendet wird). Wenn
innerhalb des Standard-Bereichs ein Netz-Dienst wartet, kann mit
dieser Option ein nicht benutzter Bereich von Portnummern angege-
ben werden.
Seite 1 Reliant UNIX 5.44 Gedruckt 11/98
traceroute(1M) traceroute(1M)
-r Die Daten werden unter Umgehung der normalen Routing-Tabellen
direkt an einen Rechner in einem angeschlossenen Netz geschickt.
Befindet sich der Rechner nicht in einem direkt angeschlossenen
Netz, wird ein Fehler zurückgegeben. Mit dieser Option kann an
einen lokalen Rechner mit ping(1M) über eine Schnittstelle, durch
die keine Route verläuft (z. B. da die Schnittstelle durch
routed(1M) aufgegeben worden ist), ein Datagramm geschickt wer-
den.
-s srcaddr
Eine IP-Adresse srcaddr (die als IP-Nummer und nicht über einen
Hostnamen angegeben werden muß) als Ausgangsadresse für abgehende
Testpakete benutzen. Auf Rechnern mit mehreren IP-Adressen kann
über diese Option angegeben werden, daß als Ausgangsadresse nicht
die IP-Adresse der Schnittstelle benutzt werden soll, über die
das Testpaket abgeschickt wird. Handelt es sich bei der IP-
Adresse nicht um eine der Schnittstellenadressen des jeweiligen
Rechners, wird ein Fehler zurückgegeben; es findet dann keine
Übertragung statt.
-g addr
IP-Option LSRR (Loose Source Record Route) zusätzlich zu den
TTL-Tests einschalten. Hiermit kann angefragt werden, wie der
Benutzer an der IP-Adresse addr ein bestimmtes Ziel erreicht.
-t tos
Type-Of-Service (Serviceklasse) in Testpaketen auf tos setzen
(Standard: 0). Bei dem Wert muß es sich um eine dezimale Ganzzahl
im Bereich 0 bis 255 handeln. Über diese Option kann festgestellt
werden, ob verschiedene Werte in tos zu unterschiedlichen Über-
tragungswegen führen.
TOS ist nicht in jeder Einstellung sinnvoll oder zulässig. Sinn-
volle Werte sind: -t 16 (geringe Verzögerung) und -t 8 (hoher
Durchsatz).
-v Ausführliche Ausgabe. Es werden die empfangenen ICMP-Pakete mit
Ausnahme von TIMEEXCEEDED und UNREACHABLE aufgelistet.
-q nqueries
Ändert die Anzahl der Testpakete (Standard: 3).
-w waittime
Wartezeit für eine Antwort auf ein Testpaket auf waittime Sekun-
den setzen (Standard: 3 Sek.).
Arbeitsweise von traceroute
Dieses Testprogramm versucht, die potentielle Route eines IP-Pakets zu
irgendeinem Internet-Rechner festzustellen, indem UDP-Testpakete mit
kleinem ttl (time to live, Lebensdauer) abgeschickt werden und dann
auf die ICMP-Antwort time exceeded von einem Gateway gewartet wird.
Seite 2 Reliant UNIX 5.44 Gedruckt 11/98
traceroute(1M) traceroute(1M)
Die Testpakete werden üblicherweise mit dem ttl-Wert 1 abgeschickt;
ttl wird dann so oft um 1 erhöht, bis die ICMP-Meldung port unreacha-
ble zurückkommt (diese Meldung zeigt die Ankunft des Pakets bei host
an) oder ein Maximalwert erreicht wird (der Standardwert beträgt hier
30 Zwischenstationen und kann mit dem Schalter -m geändert werden).
Bei jeder ttl-Einstellung werden drei Testpakete geschickt (dieser
Wert kann mit dem Schalter -q geändert werden); in jeder Zeile ist der
ttl-Wert, die Adresse des Gateway sowie die Zeitdauer enthalten, die
jedes Testpaket unterwegs war. Kommen die Antworten auf die verschie-
denen Testpakete von unterschiedlichen Gateways, wird die Adresse
jedes antwortenden Systems ausgegeben. Wird nicht innerhalb von 3
Sekunden eine Antwort empfangen (dieser Wert kann mit dem Schalter -w
geändert werden), wird für dieses Testpaket das Zeichen * ausgegeben.
Soll das UDP-Testpaket nicht vom Ziel-Rechner verarbeitet werden, so
wird die Ziel-Portnummer auf einen wahrscheinlich nicht vorhandenen
Wert gesetzt (sollte dieser Wert auf dem Ziel-Rechner dennoch vorhan-
den sein, kann er mit dem Schalter -p geändert werden).
BEISPIELE
Die Kommandozeile mit der zugehörigen Ausgabe kann folgendermaßen aus-
sehen:
[yak 71]% traceroute nis.nsf.net.
traceroute to nis.nsf.net (35.1.1.48), 30 hops max, 56 byte packet
1 helios.ee.lbl.gov (128.3.112.1) 19 ms 19 ms 0 ms
2 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 39 ms 19 ms
3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 39 ms 19 ms
4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 39 ms
5 ccn-nerif22.Berkeley.EDU (128.32.168.22) 39 ms 39 ms 39 ms
6 128.32.197.4 (128.32.197.4) 40 ms 59 ms 59 ms
7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 59 ms
8 129.140.70.13 (129.140.70.13) 99 ms 99 ms 80 ms
9 129.140.71.6 (129.140.71.6) 139 ms 239 ms 319 ms
10 129.140.81.7 (129.140.81.7) 220 ms 199 ms 199 ms
11 nic.merit.edu (35.1.1.48) 239 ms 239 ms 239 ms
Beachten Sie, daß die Zeilen 2 und 3 identisch sind. Dies ist auf
einen fehlerhaften Systemkern auf der zweiten Zwischenstation (lbl-
csam.arpa) zurückzuführen, die das Paket mit dem ttl-Wert 0 weiterlei-
tet (hierbei handelt es sich um einen Fehler in einer 4.3BSD-
Freigabe).
Seite 3 Reliant UNIX 5.44 Gedruckt 11/98
traceroute(1M) traceroute(1M)
Ein weiteres Beispiel:
[yak 72]% traceroute allspice.lcs.mit.edu.
traceroute to allspice.lcs.mit.edu (18.26.0.115), 30 hops max
1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms
2 lilac-dmc.Berkeley.EDU (128.32.216.1) 19 ms 19 ms 19 ms
3 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 19 ms
4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 19 ms 39 ms 39 ms
5 ccn-nerif22.Berkeley.EDU (128.32.168.22) 20 ms 39 ms 39 ms
6 128.32.197.4 (128.32.197.4) 59 ms 119 ms 39 ms
7 131.119.2.5 (131.119.2.5) 59 ms 59 ms 39 ms
8 129.140.70.13 (129.140.70.13) 80 ms 79 ms 99 ms
9 129.140.71.6 (129.140.71.6) 139 ms 139 ms 159 ms
10 129.140.81.7 (129.140.81.7) 199 ms 180 ms 300 ms
11 129.140.72.17 (129.140.72.17) 300 ms 239 ms 239 ms
12 * * *
13 128.121.54.72 (128.121.54.72) 259 ms 499 ms 279 ms
14 * * *
15 * * *
16 * * *
17 * * *
18 ALLSPICE.LCS.MIT.EDU (18.26.0.115) 339 ms 279 ms 279 ms
Beachten Sie, daß die Gateways, die um 12, 14, 15, 16 und 17 Zwischen-
stationen entfernt sind, die ICMP-Meldung time exceeded entweder übe-
rhaupt nicht abschicken oder sie mit einem zu kleinen ttl-Wert
abschicken, so daß sie den lokalen Rechner nicht erreichen kann. Auf
14-17 läuft der MIT C Gateway-Code, der keine time exceeded-Meldungen
abschickt. Die Gründe für das Problem mit Gateway 12 sind unbekannt.
Daß Gateway 12 im obigen Beispiel keine Meldung schickt, kann auf
einen Fehler im Netzcode von 4.[23]BSD (und seinen Derivaten) zurück-
zuführen sein: 4.x (x < 3) schickt eine UNREACHABLE-Meldung mit dem
ttl-Wert, der jeweils im ursprünglichen Datagramm verblieben ist. Da
der verbleibende ttl-Wert für Gateways 0 ist, kann die ICMP-Meldung
time exceeded mit Sicherheit nicht zu dem lokalen Rechner zurückkeh-
ren. Das Verhalten dieses Fehlers ist etwas interessanter, wenn er auf
dem Ziel-System auftritt:
Seite 4 Reliant UNIX 5.44 Gedruckt 11/98
traceroute(1M) traceroute(1M)
1 helios.ee.lbl.gov (128.3.112.1) 0 ms 0 ms 0 ms
2 lilac-dmc.Berkeley.EDU (128.32.216.1) 39 ms 19 ms 39 ms
3 lilac-dmc.Berkeley.EDU (128.32.216.1) 19 ms 39 ms 19 ms
4 ccngw-ner-cc.Berkeley.EDU (128.32.136.23) 39 ms 40 ms 19 ms
5 ccn-nerif35.Berkeley.EDU (128.32.168.35) 39 ms 39 ms 39 ms
6 csgw.Berkeley.EDU (128.32.133.254) 39 ms 59 ms 39 ms
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
12 * * *
13 rip.Berkeley.EDU (128.32.131.22) 59 ms! 39 ms! 39 ms!
Beachten Sie, daß es 12 gateways gibt (13 ist das endgültige Ziel),
von denen genau die Hälfte "fehlt". Dazu ist es folgendermaßen gekom-
men: rip benutzt den ttl-Wert aus dem angekommenen Datagramm als ttl-
Wert in seiner ICMP-Antwort. Deshalb löst die Antwort auf ihrem Rück-
weg eine Zeitlimitüberschreitung aus (die aber nicht gemeldet wird, da
für ICMP-Meldungen selbst keine ICMP-Meldungen abgeschickt werden).
Daher muß ein ttl-Wert eingesetzt werden, der mindestens das Doppelte
der Länge des Übertragungswegs beträgt. Somit ist rip in Wirklichkeit
lediglich um sieben Zwischenstationen entfernt. Wenn eine Antwort mit
dem ttl-Wert 1 zurückkehrt, ist dies ein Hinweis darauf, daß es dieses
Problem gibt. traceroute gibt nach der Zeitangabe bei einem ttl-Wert
kleiner gleich 1 ein Ausrufezeichen (!) aus. Da von den Herstellern
häufig eine Menge veralteter oder Nicht-Standard-Software ausgeliefert
wird, sollte man sich auf das häufige Auftreten dieses Problems ein-
stellen oder bei der Auswahl der Ziel-Rechner für die Testpakete sorg-
fältig sein.
Weitere Meldungen nach der Zeitangabe können sein:
- !H, KN, !P
(betreffender Rechner, Netz bzw. Protokoll nicht erreichbar)
- !S oder !F
(Störung in Ausgangs-Route oder Fragmentierung notwendig - diese
Hinweise sollten jedoch in keinem Fall erscheinen und weisen gege-
benenfalls auf eine Störung im betreffenden Gateway hin).
Seite 5 Reliant UNIX 5.44 Gedruckt 11/98
traceroute(1M) traceroute(1M)
Wenn so gut wie alle Testpakete zum Ergebnis "unreachable" führen,
startet traceroute keinen neuen Versuch und beendet sich.
traceroute -g 10.3.0.5 128.182.0.0
zeigt den Übertragungsweg zwischen Cambridge Mailbridge und PSC;
traceroute -g 192.5.146.4-g 10.3.0.5 35.0.0.0
dagegen zeigt, wie Merit von Cambridge Mailbridge erreicht wird; dabei
wird PSC zum Erreichen von Mailbridge benutzt.
Dieses Programm ist zum Einsatz beim Testen, Messen und Verwalten von
Netzen bestimmt. Es sollte hauptsächlich zur manuellen Fehlerlokali-
sierung benutzt werden.
Um eine Überlastung des Netzes zu verhindern, sollte traceroute mög-
lichst nicht während des Normalbetriebs oder innerhalb von Kommandos-
kripts benutzt werden.
SIEHE AUCH
netstat(1M), ping(1M).
Seite 6 Reliant UNIX 5.44 Gedruckt 11/98