tracepath-Befehl: Hops und Pfad-MTU statt mit traceroute prüfen

TestumgebungRHEL-FamilieAlmaLinux 9.8iputils 20210202root-KontoDebian 12 · traceroute 2.1.2 normales Konto
NetzwerkbefehletracepathSpeicherort/usr/bin/tracepath

Auf einem Linux-Server lassen sich der Weg (Hops), den Pakete zu einem Ziel nehmen, und die Pfad-MTU mit dem Befehl tracepath ohne Root-Rechte prüfen. Auf einem AlmaLinux-9-Server ohne installiertes traceroute haben wir die Hop-Anzahl auf 10 begrenzt und den Weg zu example.com geprüft: Bis zum vierten Hop waren Antwortzeiten und eine Pfad-MTU von 1500 zu sehen, die sechs Hops danach antworteten nicht.

Die Ausgabe unten stammt von einem AlmaLinux-9.8-Server (root-Konto); die traceroute-Version und der Paketstatus wurden auf einem Debian-12-Server (normales Konto) geprüft. Die IPv6-Adressen des ersten Hops und der Router dazwischen wurden durch Beispieladressen für Dokumentation ersetzt, Antwortzeiten und pmtu-Werte blieben unverändert.

1️⃣ So verwenden Sie den Befehl tracepath

  • ↪️ Hops und Pfad-MTU bis zum Ziel prüfen

tracepath nimmt einen Zielnamen oder eine IP-Adresse entgegen, sendet UDP-Pakete und gibt die antwortenden Hops Zeile für Zeile in TTL-Reihenfolge aus. Die maximale Hop-Anzahl ist standardmäßig 30 und lässt sich mit -m ändern.

Für example.com haben wir -m 10 angehängt und nur bis zum zehnten Hop geprüft.

tracepath -n -m 10 example.com
 1?: [LOCALHOST]                        0.006ms pmtu 9001
 1:  fe80::1%eth0                                          0.077ms pmtu 1500
 1:  2001:db8:a::5b                                        2.627ms asymm  8 
 2:  2001:db8:a::52                                        1.473ms asymm 12 
 3:  2001:db8:b::1e                                       19.653ms asymm  9 
 4:  2001:db8:c::                                          3.642ms asymm 11 
 5:  no reply
 6:  no reply
 7:  no reply
 8:  no reply
 9:  no reply
10:  no reply
     Too many hops: pmtu 1500
     Resume: pmtu 1500 

Dieser Server schickte die Pakete an die IPv6-Adresse von example.com, und bis zum vierten Hop erschienen Antwortzeiten. Ab dem fünften Hop folgte nur noch no reply, deshalb erschien keine reached-Zeile, die das Erreichen des Ziels innerhalb von zehn Hops zeigt, und der Lauf dauerte etwa 18 Sekunden.

Ohne -m endete der Lauf zum selben Ziel nicht innerhalb von 30 Sekunden. Bei Pfaden mit vielen stummen Hops verringert man mit -m die Zahl der zu prüfenden Hops.

Die installierte tracepath-Version prüft man mit -V; auf diesem Server war es iputils 20210202.

tracepath -V
tracepath from iputils 20210202

2️⃣ tracepath-Ausgabe lesen

  • ↪️ Hop-Nummer, pmtu, asymm, reached

Jede Ausgabezeile zeigt nacheinander die Hop-Nummer, die antwortende Adresse und die Umlaufzeit. Wo sich die Pfad-MTU ändert, steht pmtu, und wenn Hin- und Rückweg unterschiedlich viele Hops haben, steht asymm. Das prüfen Sie in jeder Zeile:

AusgabeBedeutung
1?:Feld der Hop-Nummer — ein ? steht bei Nummern, die geschätzt wurden, weil die Antwort keine TTL lieferte
[LOCALHOST]Die Zeile des Servers selbst, bevor das Paket ins Netz geht
0.077msUmlaufzeit bis zu diesem Hop
pmtu 1500An dieser Stelle geänderte Pfad-MTU (Bytes) — steht nur bei einer Änderung
asymm 8Unterschied der Hop-Anzahl zwischen Hin- und Rückweg — laut offiziellem Handbuch kein verlässlicher Wert
no replyHop, der auf das mit dieser TTL gesendete Paket nicht antwortete
reachedZeile, in der das Ziel erreicht wurde
Too many hopsStoppt nach der mit -m festgelegten Hop-Anzahl
Resume: pmtu … hops … back …MTU des ganzen Pfads, Hops bis zum Ziel und geschätzte Hops für den Rückweg

In der Ausgabe für example.com war die pmtu in der ersten Zeile [LOCALHOST] 9001 und änderte sich am ersten Hop auf 1500. Dass die Zeile mit TTL 1 zweimal mit nur geänderter Adresse erscheint, entspricht ebenfalls dem Beispiel im offiziellen Handbuch. Laut Handbuch erscheint dieselbe TTL-Zeile noch einmal, wenn das erste Paket wegen der Pfad-MTU am ersten Hop abgewiesen wird.

Ist das Ziel erreicht, steht am Zeilenende reached, und die letzte Resume-Zeile nennt die Hop-Anzahl bis zum Ziel. Beim Senden an 127.0.0.1 kam reached nach einem Hop, und die Resume-Zeile lautete [pmtu 65535 hops 1 back 1].

tracepath -n 127.0.0.1
 1:  127.0.0.1                                             0.047ms reached
     Resume: pmtu 65535 hops 1 back 1 

Endet ein Pfad ohne reached mit Too many hops, kam innerhalb der mit -m festgelegten Hops keine Antwort vom Ziel. Auch der Pfad zu example.com hatte bis zehn Hops kein reached, daher blieb in der Resume-Zeile nur pmtu ohne Hop-Anzahl.

3️⃣ tracepath-Optionen

  • ↪️ -n, -b, -m und Paketlänge -l

tracepath hat nur acht Optionen: -4, -6, -n, -b, -l, -m, -p und -V. Ohne Ziel aufgerufen, zeigt es diese Liste als Verwendung an. Ohne Optionen löst es antwortende Adressen in Namen auf; beim Senden an localhost stand localhost im Hop-Feld.

tracepath localhost
 1?: [LOCALHOST]                        0.003ms pmtu 65536
 1:  localhost                                             0.048ms reached
 1:  localhost                                             0.030ms reached
     Resume: pmtu 65536 hops 1 back 1 

[tracepath -n] gibt nur IP-Adressen aus, ohne Namen aufzulösen. Mit -n für dasselbe localhost wechselte das Hop-Feld zur IPv6-Adresse ::1, und auch beim Pfad zu example.com mit -n standen im Hop-Feld nur Adressen.

tracepath -n localhost
 1?: [LOCALHOST]                        0.005ms pmtu 65536
 1:  ::1                                                   0.039ms reached
 1:  ::1                                                   0.010ms reached
     Resume: pmtu 65536 hops 1 back 1 

-b gibt Namen und Adresse zusammen aus. Mit -b für 127.0.0.1 stand die Adresse in Klammern hinter dem Namen: [localhost (127.0.0.1)].

tracepath -b 127.0.0.1
 1:  localhost (127.0.0.1)                                 0.050ms reached
     Resume: pmtu 65535 hops 1 back 1 

-m legt die maximale Zahl der zu prüfenden Hops fest und nahm Werte von 0 bis 255 an. Mit -m 0 erschienen ohne Hop-Zeilen sofort nur Too many hops und die Resume-Zeile, 256 wurde mit [out of range] abgelehnt.

tracepath -m 0 127.0.0.1
     Too many hops: pmtu 65535
     Resume: pmtu 65535 

-l ist die Länge des ersten gesendeten Pakets; Standard sind 65535 Bytes bei IPv4 und 128000 Bytes bei IPv6. Mit -l 1500 für 127.0.0.1 änderte sich die pmtu in der Resume-Zeile von 65535 auf 1500.

tracepath -l 1500 -n 127.0.0.1
 1:  127.0.0.1                                             0.028ms reached
     Resume: pmtu 1500 hops 1 back 1 

-p legt den ersten UDP-Zielport fest. Mit -p 33434 für 127.0.0.1 war das Ergebnis dasselbe wie ohne.

OptionKopierenBeschreibung
-nNur IP-Adressen ausgeben, ohne Namen aufzulösen
-bNamen und Adresse zusammen ausgeben
-mHopsMaximale Zahl zu prüfender Hops, Standard 30
-lLängeLänge des ersten Pakets, Standard IPv4 65535, IPv6 128000
-VVersion ausgeben und beenden
OptionKopierenBeschreibung
-4Sendet nur an IPv4-Adressen
-6Sendet nur an IPv6-Adressen
-pPortErsten UDP-Zielport festlegen

4️⃣ Unterschied zwischen tracepath und traceroute

  • ↪️ Installation, Rechte, gesendete Pakete

Auf Servern, auf denen sich traceroute nicht installieren lässt, prüft man den Weg mit tracepath statt traceroute. Auf dem geprüften AlmaLinux-9.8-Server fehlte das Paket traceroute, tracepath steckt dagegen im Paket iputils und lief ohne zusätzliche Installation.

rpm -q traceroute
package traceroute is not installed

Beim Debian-12-Server war es umgekehrt: traceroute 2.1.2 war installiert, das Paket iputils-tracepath mit tracepath dagegen nicht.

traceroute --version
Modern traceroute for Linux, version 2.1.2
Copyright (c) 2016  Dmitry Butskoy,   License: GPL v2 or any later
apt-cache policy iputils-tracepath
iputils-tracepath:
  Installed: (none)
  Candidate: 3:20221126-1+deb12u1

Wie diese beiden Server zeigen, hängt es von der Distribution ab, welche Befehle vorhanden sind. Prüfen Sie daher zuerst, welcher auf dem verbundenen Server existiert. tracepath braucht keine Root-Rechte und läuft mit jedem Konto, das UDP-Pakete senden kann. Die tracepath-Datei auf dem AlmaLinux-9.8-Server hatte ebenfalls die Rechte rwxr-xr-x, ohne zusätzliche Capabilities.

Kategorietracepathtraceroute
AlmaLinux-9.8-ServerIm Paket iputils enthalten, läuft sofortNicht installiert
Debian-12-ServerPaket iputils-tracepath nicht installierttraceroute 2.1.2 installiert
Gesendete PaketeUDPStandard UDP, -I für ICMP, -T für TCP
Ausgabe pro HopEine ZeileStandardmäßig drei Sendungen, drei Zeiten (mit -q änderbar)
Anzahl OptionenAcht: -4 -6 -n -b -l -m -p -VÜber 20 allein auf der ersten --help-Seite

Wenn Sie den Weg per ICMP oder TCP prüfen oder pro Hop mehrmals senden und Zeiten vergleichen müssen, installieren und nutzen Sie den Befehl traceroute. Auf Servern, auf denen die Installation schwierig ist oder auch die Pfad-MTU wichtig ist, passt tracepath.

🔲 tracepath-Befehlssimulator

Im Simulator unten können Sie den Pfad zu example.com mit geänderter Hop-Anzahl erneut ansehen oder -n, -b, -m und -l für localhost und 127.0.0.1 selbst eingeben und die Unterschiede vergleichen.

tracepath-Befehlssimulatoriputils 20210202
[root@server work]#
Läuft nur in deinem Browser und sendet keine echten Pakete. Mit ↑↓ rufst du frühere Befehle wieder auf.

🔢 FAQ & empfohlene Inhalte

Nein, der Exit-Code zeigt das nicht. Auch als der Lauf zu example.com mit -m 10 ohne reached mit Too many hops endete, war der Exit-Code 0. Ein Fehler bei der Namensauflösung und ein ungültiges Argument ergaben 1, ein Aufruf ohne Ziel ergab 255. Der Exit-Code unterscheidet nur Ausführungsfehler; ob das Ziel erreicht wurde, prüfen Sie an der reached-Zeile der Ausgabe.

localhost ging an die IPv6-Adresse ::1, daher stand in der ersten Zeile [LOCALHOST] die MTU der Loopback-Schnittstelle von 65536. Bei 127.0.0.1, also IPv4, erschien unverändert die Standard-Paketlänge von IPv4, 65535. Auch die mit ip link geprüfte MTU der Schnittstelle lo war 65536.

Mit -4 wird nur an IPv4-Adressen gesendet. Mit -4 für localhost kam ohne [LOCALHOST]-Zeile über IPv4 nach einem Hop reached; umgekehrt endete -6 für 127.0.0.1 mit [Address family for hostname not supported].

ℹ️ Affiliate-Hinweis
Die Inhalte dieser Website enthalten Affiliate-Links. Kauft ein Besucher über einen dieser Links ein Produkt oder eine Dienstleistung, erhält die Website vom Verkäufer eine Provision. Der Betrag, den der Käufer zahlt(bei Aktionsrabatten sinkt er ↓), steigt dadurch nicht. Angegebene Preise, Rabatte und Lagerbestände entsprechen dem Stand bei Erstellung und können abweichen; prüfe sie daher vor dem Kauf beim Verkäufer. Produkte werden nach eigenen Kriterien ausgewählt und bewertet, und Provisionen beeinflussen weder die Reihenfolge noch den Inhalt der Bewertungen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Beweisen Sie, dass Sie ein Mensch sind: 10   +   3   =