Befehl "traceroute"

Zweck

Gibt die Route aus, über die IP-Pakete an einen Netzhost gesendet werden.

Syntax

traceroute [ -m max_TTL ] [ -n ] [ -p Port ] [ -q NAbfragen ] [ -r ] [ -d ] [ -g Gateway-Adresse ] [ -s Quellenadresse ] [  -t Servicetyp ] [ -f Flow ] [ -v ] [  -w Wartezeit] Host [ Paketgröße ]

Beschreibung

Achtung: Der Befehl traceroute ist für Netztests, Messungen und Management bestimmt. Er sollte hauptsächlich zur manuellen Fehlereingrenzung verwendet werden. Aufgrund der Last, die dieser Befehl im Netz verursacht, sollte der Befehl traceroute nicht während des normalen Betriebs und in automatisierten Scripts verwendet werden.

Der Befehl traceroute versucht, die Route eines IP-Pakets zu einem Internet-Host zu verfolgen, indem er UDP-Testpakete mit einer geringen maximalen Lebensdauer (Variable max_TTL) startet und dann auf eine ICMP-Antwort TIME_EXCEEDED von Gateways wartet. Die Testpakete werden mit einem max_TTL-Wert von einem Hop gestartet, der um jeweils einen Hop erhöht wird, wenn eine ICMP-Nachricht PORT_UNREACHABLE zurückgegeben wird. Die ICMP-Nachricht PORT_UNREACHABLE zeigt an, dass der Host gefunden wurde oder dass der Befehl die maximal zulässige Anzahl an Hops für den Trace erreicht hat.

Der Befehl traceroute sendet drei Testmonitore bei jeder max_TTL-Einstellung, um Folgendes aufzuzeichnen:

  • max_TTL-Wert
  • Adresse des Gateways
  • Umlaufzeit jedes erfolgreichen Testmonitors

Die Anzahl der gesendeten Testmonitor kann mit dem Flag -q erhöht werden. Wenn die Antworten auf die Testmonitore von verschiedenen Gateways stammen, gibt der Befehl die Adresse jedes antwortenden Systems aus. Wenn innerhalb eines Zeitlimitintervalls von 3 Sekunden keine Antwort auf einen Testmonitor eingeht, wird ein Stern (*) für diesen Testmonitor ausgegeben.

Der Befehl traceroute gibt nach der Umlaufzeit ein Ausrufezeichen (!) aus, wenn der max_TTL-Wert ein Hop oder weniger ist. Ein maximaler TTL-Wert (Lebensdauer) von einem Hop oder weniger weist im Allgemeinen auf eine Inkompatibilität in der Art und Weise hin, in der ICMP-Antworten von unterschiedlicher Netzsoftwarwe verarbeitet werden. Die Inkompatibilität kann normalerweise behoben werden, indem der zuletzt verwendete max_TTL-Wert verdoppelt und der Befehl wiederholt wird.

Im Folgenden sind weitere mögliche Anmerkungen hinter der Umlaufnotation beschrieben:

Element Beschreibung
!H Host nicht erreichbar
!N Netz nicht erreichbar
!P Protokoll nicht erreichbar
!S Quellenroute fehlgeschlagen
!F Fragmentierung erforderlich

Wenn die Mehrheit der Testmonitore zu einem Fehler führen, wird der Befehl trace beendet.

Der einzige obligatorische Parameter für den Befehl traceroute ist der Zielhostname oder die IP-Adresse. Der Befehl traceroute bestimmt die Länge des Testmonitorpakets basierend auf der maximalen Übertragungseinheit (MTU, Maximum Transmission Unit) der Ausgangsschnittstelle. Die UDP-Testmonitorpakete werden auf einen unwahrscheinlichen Wert gesetzt, um eine Verarbeitung durch den Zielhost zu verhindern.

Flags

Element Beschreibung
-d Aktiviert das Debugging auf Socketebene.
-f Flow Legt das Flow Label-Feld im IPv6-Paketheader fest. Der Standardwert ist 0.
-g Gateway-Adresse Leitet die abgehenden Pakete mit der Option für IP-Source-Routing über ein bestimmtes Gateway weiter. Bevor Sie dieses Flag verwenden, muss Ihr Router IP-Source-Routing aktivieren. Dieses Flag ist nur für Adressen der IP Version 6 verfügbar.
-m max_TTL Legt die maximale Lebensdauer (TTL, Time-to-Live), d. h. die maximale Anzahl an Hops für abgehende Testmonitorpakete fest. Der Standardwert sind 30 Hops (derselbe Standardwert wie bei TCP-Verbindungen).
-n Gibt Hopadressen numerisch anstatt symbolisch und numerisch aus. Dieses Flag speichert eine Namensserveradresse/Name-Suche für jedes Gateway im Pfad fest.
-p Port Legt die Basis-UDP-Portnummer fest, die in den Testmonitoren verwendet wird. Der Standardport ist 33434. Der Befehl traceroute ist von einem offenen UDP-Portbereich von Basis bis Basis + nHops -1 auf dem Zielhost abhängig. Wenn kein UDP-Port verfügbar ist, kann mit dieser Option ein nicht verwendeter Portbereich ausgewählt werden.
-q N_Abfragen Gibt die Anzahl der Testmonitore an, die der Befehl traceroute bei jeder max_TTL-Einstellung sendet. Standardmäßig werden 3 Testmonitore verwendet.
-r Umgeht die normalen Routing-Tabellen und sendet das Testmonitorpaket direkt an einen Host in einem verbundenen Netz. Wenn sich der angegebene Host nicht in einem direkt verbundenen Netz befindet, wird ein Fehler zurückgegeben. Diese Option kann verwendet werden, um einen ping-Befehl über eine Schnittstelle, die nicht in der Routing-Tabelle des Dämons routed registriert ist, an einen lokalen Host zu senden.
-s Quellenadresse Verwendet die nächste IP-Adresse im numerischen Format als Quelladresse in abgehenden Testmonitorpaketen. Auf Hosts mit mehreren IP-Adressen kann das Flag -s verwendet werden, um eine andere Quellenadresse als die IP-Adresse der Schnittstelle, über die das Testmonitorpaket gesendet wird, zu erzwingen. Wenn die nächste IP-Adresse keine der Schnittstellenadressen der Maschine ist, wird ein Fehler zurückgegeben und nichts gesendet.
-t Servicetyp Setzt die Variable Servicetyp in den Testmonitorpaketen auf eine dezimale Ganzzahl zwischen 0 und 255. Der Standardwert ist 0. Dieses Flag kann verwendet werden, um zu untersuchen, ob verschiedene Servicetypen zu unterschiedlichen Pfaden führen. Weitere Informationen finden Sie im Abschnitt TCP/IP Protocols in der Veröffentlichung Performance Tools Guide and Reference. Hilfreiche Werte sind -t 16 (geringe Verzögerung) und -t 8(hoher Durchsatz).
-v Empfängt andere Pakete als TIME_EXCEEDED- und PORT_UNREACHABLE-Pakete (ausführliche Ausgabe).
-w Wartezeit Legt die Zeit (in Sekunden) fest, die auf eine Antwort auf einen Testmonitor gewartet wird. Der Standardwert ist 3 Sekunden.

Parameter

Element Beschreibung
Host Gibt den Zielhost mit dem Hostnamen oder der IP-Nummer an. Dieser Parameter ist erforderlich.
Paketgröße Gibt die Länge des Testmonitordatagramms an. Die Standardpaketgröße wird vom Befehl traceroute basierend auf der MTU der Ausgangsschnittstelle bestimmt.

Sicherheit

Hinweis für Benutzer von RBAC und Trusted AIX: Dieser Befehl kann privilegierte Operation ausführen. Privilegierte Operation dürfen nur von privilegierten Benutzern ausgeführt werden. Weitere Informationen zu Autorisierungen und Berechtigungen finden Sie in der Beschreibung der Privileged Command Database in der Veröffentlichung Security. Eine Liste der Berechtigungen und Autorisierungen, die diesem Befehl zugeordnet sind, finden in der Beschreibung des Befehls lssecattr bzw. der des Unterbefehls getcmdattr.

Beispiele

  1. Im Folgenden sehen Sie ein Beispiel für die Verwendung und die Ausgabe:
    [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
    Die Zeilen 2 und 3 sind wegen eines Programmfehlers im Kernel auf dem zweiten Hopsystem (lbl-csam.arpa), der bewirkt, dass Pakete mit einer Lebensdauer von 0 weitergeleitet werden, identisch. In den Zeilen 6 bis 10 sind keine Hostnamen angegeben, weil National Science Foundation Network (NSFNet, 129.140) keine Adresse/Name-Umsetzung für die Knoten bereitstellt.
  2. Im Folgenden sehen Sie ein weiteres Ausgabebeispiel:
    
    [yak 72]% traceroute rip.Berkeley.EDU (128.32.131.22)
    traceroute to rip.Berkeley.EDU (128.32.131.22), 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) 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!
    In diesem Beispiel fehlt genau die Hälfte der 12 Gateway-Hops (13 ist das endgültige Ziel). Diese Hops sind tatsächlich jedoch keine Gateways. Der Zielhost, eine Sun-3-Workstation mit Sun OS3.5, verwendet den TTL-Wert aus dem eingehenden Datagramm als TTL-Wert in seiner ICMP-Antwort. Deshalb überschreitet die Antwort das zulässige Zeitlimit im Rückgabepfad. Da keine ICMPs für ICMPs gesendet werden, wird auch keine Benachrichtigung empfangen. Das Ausrufezeichen (!) hinter jeder Umlaufzeit weist auf ein Problem aufgrund von Softwareinkompatibilität hin. (Die Ursache wurde diagnostiziert, nachdem der Befehl traceroute einen Testmonitor gesendet hat, der doppelt so lang wie der Pfad ist. Der Zielhost ist in Wirklichkeit nur sieben Hops entfernt.)