Einführung in Traceroute
Der Linux-Befehl „traceroute“ ist ein Dienstprogramm zur Fehlerbehebung im Netzwerk, mit dem wir die Anzahl der Hops und Pakete ermitteln können, die zum Erreichen eines Ziels erforderlich sind. Es wird verwendet, um anzuzeigen, wie die Daten von einem lokalen Computer an einen Remote-Computer übertragen werden. Das Laden einer Webseite ist eines der häufigsten Beispiele für Traceroute. Beim Laden einer Webseite werden Daten über ein Netzwerk und Router übertragen. Der Traceroute kann die Routen, IP-Adressen und Hostnamen von Routern über ein Netzwerk anzeigen. Dies kann bei der Diagnose von Netzwerkproblemen hilfreich sein.
In der Informatik sind Tracert und Traceroute die Befehle für die Computernetzwerkdiagnose, um mögliche Routen anzuzeigen und Paketübertragungsverzögerungen im IP-Netzwerk zu messen. Der Routenverlauf wird als Paketumlaufzeit von allen aufeinanderfolgenden Hosts in der Route aufgezeichnet; Die mittlere Zeitsumme in jedem Hop ist die Gesamtzeit, die zum Herstellen der Verbindung aufgewendet wurde.
Der Traceroute-Befehl wird fortgesetzt, es sei denn, jedes gesendete Paket geht mehr als zweimal verloren. Die Verbindung geht verloren und der Pfad kann nicht ausgewertet werden. Andererseits misst der Ping-Befehl nur die letzten Umlaufzeiten durch den Zielpunkt. Manchmal hat das Tool für IPv6 einen ähnlichen Namen, Tracert6 und Traceroute6.
Syntax:
traceroute [OPTION...] HOST
Optionen:
Die folgenden Befehlszeilenoptionen werden vom Befehl „traceroute“ unterstützt:
-f, --first-hop=NUM: Es wird verwendet, um die anfängliche Hop-Distanz festzulegen.
-g, --gateways=GATES: Es wird verwendet, um eine Liste von Gateways für Loose Source Routing anzuzeigen.
-I, --icmp: Es ist angegeben, ICMP ECHO als Sonde zu verwenden.
-m, --max-hop=NUM: Es wird verwendet, um die maximale Hop-Anzahl festzulegen. Der Standardwert ist 64.
-M, --type=METHODE: Es gibt die METHODE (icmp oder udp) für Traceroute-Vorgänge an. Die Standardmethode ist udp.
-p, --port=PORT: Es ist so definiert, dass der Ziel-PORT-Port verwendet wird. Der Standard-PORT ist 33434.
-q, --tries=NUM: Es wird verwendet, um ANZAHL Probepakete pro Hop weiterzuleiten, der Standardwert ist 3.
--resolve-hostnames: Es wird zur Auflösung der Hostnamen verwendet.
in Ordnung
-t, --tos=NUM: Es wird verwendet, um den Typ des Dienstes (TOS) auf NUM zu setzen.
-w, --wait=NUM: Es wird verwendet, um in Sekunden auf eine Antwort zu warten, der Standardwert ist 3.
-?, --helfen: Es wird verwendet, um das Hilfehandbuch anzuzeigen, das eine kurze Beschreibung der unterstützten Befehlszeilenoptionen und deren Verwendung enthält.
--Verwendung: Es wird eine kurze Nutzungsmeldung angezeigt.
-V, --version: Es wird verwendet, um die Versionsinformationen der Traceroute anzuzeigen.
Werfen wir einen Blick auf den Kurzindex des Themas:
- Installieren Sie den Traceroute-Befehl
- Wie funktioniert es?
- Verfolgen Sie die Route mit IPv6
- Verfolgen Sie die Route mit IPv4
- Deaktivieren Sie die Zuordnung von IP-Adresse und Hostname
- Legen Sie die Anzahl der Abfragen pro Hop fest
- Legen Sie die Antwortwartezeit fest
- Geben Sie die zu verwendende Schnittstelle an
- Legen Sie den anfänglichen TTL-Wert fest
- Legen Sie die maximale Hop-Anzahl fest
- Hilfe bekommen
Implementierungen von Traceroute
Der Traceroute-Befehl ist auf mehreren modernen Betriebssystemen verfügbar. Auf Unix-ähnlichen Systemen wie Linux, macOS und FreeBSD steht es als Tool für die Kommandozeile zur Verfügung. Außerdem ist Traceroute innerhalb der Network Utilities-Suite in macOS grafisch zugänglich. Diese Dienstprogramme gelten seit der Veröffentlichung von macOS Big Sur als veraltet.
ReactOS und Microsoft Windows bieten ein Programm namens „tracert“ an, das eine ähnliche Routenverfolgungsfunktion implementiert. Außerdem bieten Windows NT-basierte Betriebssysteme PathPing an, das die Funktionalität des Ping-Befehls mit Tracert kombinieren kann. Die ReactOS-Edition wurde von Get Murphy integriert und steht unter der GPL.
Standardmäßig sendet Traceroute eine Reihenfolge von UDP-Paketen (User Datagram Protocol) auf Unix-ähnlichen Betriebssystemen mit Portzielnummern im Bereich von 33434 bis 33534. Die mit macOS, DragonFly BSD, OpenBSD, NetBSD, FreeBSD und Linux ausgelieferten Traceroute-Implementierungen haben dies getan die Option, ICMP-Echo-Request-Pakete wie TCP und UDP mithilfe von ICMP- oder TCP-SYN-Paketen zu nutzen. Standardmäßig überträgt Tracert unter Windows ICMP-Echo-Request-Pakete anstelle der UDP-Paket-Traceroute-Übertragungen.
Verwendung von Traceroute
Die meisten Implementierungen bieten zumindest einige Optionen zum Definieren der Anzahl der pro Hop zu übertragenden Abfragen, der Wartezeit auf eine Antwort, des Hop-Limits und des verwendeten Ports. Wenn wir Traceroute nicht mit den angegebenen Optionen aufrufen, wird die Liste der verfügbaren Optionen angezeigt, während der Befehl man Traceroute weitere Details darstellt, z. B. die Fehlerflags.
Ursprünge von Traceroute
Auf der Handbuchseite von Traceroute heißt es, dass das eigentliche Traceroute-Programm 1987 von Van Jacobson auf der Grundlage einer Empfehlung von Steve Deering spezifiziert wurde, mit besonders überzeugenden Korrekturen und Empfehlungen von C. Philip Wood, Ken Adelman und Tim Seaver. Mike Muuss, der Autor des Ping-Programms, gibt an, dass die Traceroute mit der Unterstützung von Kernel-ICMP spezifiziert wurde, den er zuvor codiert hatte, um unformatierte ICMP-Sockets zu aktivieren, als er ursprünglich das Ping-Programm spezifizierte.
Einschränkungen von Traceroute
Die Einschränkungen von Traceroute sind berüchtigt und sollten bei der Verwendung des Tools berücksichtigt werden. Beispielsweise erkennt eine Traceroute Pfade auf Schnittstellenebene, nicht jedoch auf Routenebene. Weitere Einschränkungen treten auf, wenn Router nicht auf Untersuchungen reagieren oder wenn Router eine Einschränkung für ICMP-Antworten enthalten.
Traceroute stellt möglicherweise einen Pfad dar, der bei vorhandener Verkehrslastverteilung nicht vorhanden ist. Um dieses Problem zu minimieren, ist eine Traceroute-Modifikation namens Paris-Traceroute verfügbar, die die Prüfungsfluss-ID so verwaltet, dass der Lastausgleich ignoriert wird.
Installieren Sie den Traceroute-Befehl
Die Traceroute ist kein Standarddienstprogramm von Linux System. Um die Traceroute nutzen zu können, müssen wir sie manuell installieren. Um es zu installieren, führen Sie einen der folgenden Befehle aus:
sudo apt install inetutils-traceroute sudo apt install traceroute
Mit den obigen Befehlen wird das Traceroute-Dienstprogramm auf unserem System installiert. Nach der erfolgreichen Installation sieht die Ausgabe wie folgt aus:
Wie funktioniert es?
Um die Route eines verbundenen Netzwerkhosts zu verfolgen, übergeben Sie den Namen des Servers oder die IP-Adresse, mit dem Sie eine Verbindung herstellen möchten. Um beispielsweise die Route des Servers „javatpoint.com“ zu verfolgen, führen Sie den folgenden Befehl aus:
alle 4 Monate
traceroute javatpoint.com
Der obige Befehl zeigt Hops, Pakete und viele andere Informationen auf der angegebenen Route an. Betrachten Sie die folgende Ausgabe:
Aus der obigen Ausgabe können wir mehrere Dinge erkennen. Lassen Sie uns jeden Teil der Ausgabe verstehen:
- In der ersten Zeile werden der Hostname und die IP-Adresse angezeigt, die erreicht werden sollen, die Hops, die der Befehl „traceroute“ durchläuft, und die Größe der zu sendenden Pakete.
- Ab der zweiten Zeile zeigt jede Zeile einen Sprung zum Ziel an. Und der Hostname, gefolgt von der IP-Adresse des Hosts, Roundtrip-Zeit. Die Roundtrip-Zeit ist die Summe der Zeit, die zum Senden eines Signals benötigt wird, und der Zeit, die zum Antworten auf den Host benötigt wird.
- Standardmäßig werden für jeden Host drei Pakete gesendet, sodass drei Antwortzeiten aufgeführt sind.
- Das Symbol „*“ stellt den Paketverlust dar. Der Paketverlust ist auf einen Netzwerkausfall, hohen Datenverkehr oder eine Überlastung des Netzwerks zurückzuführen, oder vielleicht lässt die Firewall den Datenverkehr fallen. Bei starkem Paketverlust zeigt die Traceroute den Fehler „Ziel ist nicht erreicht“ an.
Verfolgen Sie die Route mithilfe von IPv6
Die Option „6“ wird verwendet, um die Route zu einem Host-Netzwerk mithilfe des IPv6-Protokolls zu verfolgen. Betrachten Sie den folgenden Befehl:
traceroute6 google.com
Der obige Befehl verfolgt die Route zu „google.com“ mithilfe des IPv6-Protokolls. Betrachten Sie die folgende Ausgabe:
Verfolgen Sie die Route mit IPv4
Die Option „4“ wird verwendet, um die Route zu einem Host-Netzwerk mithilfe des IPv6-Protokolls zu verfolgen. Betrachten Sie den folgenden Befehl:
traceroute 4 google.com
Der obige Befehl verfolgt die Route zu „google.com“ mithilfe des IPv6-Protokolls. Betrachten Sie die folgende Ausgabe:
Deaktivieren Sie die Zuordnung von IP-Adressen und Hostnamen
Die Option „n“ wird verwendet, um die IP-Adressen- und Hostnamen-Zuordnung zu deaktivieren. Betrachten Sie den folgenden Befehl:
traceroute n google.com
Der obige Befehl erzeugt die Ausgabe wie folgt:
Legen Sie die Anzahl der Abfragen pro Hop fest
Mit der Option „-q“ wird die Anzahl der Abfragen pro Hop festgelegt. Betrachten Sie den folgenden Befehl:
traceroute -q 2 google.com
Der obige Befehl erzeugt die folgende Ausgabe:
Legen Sie die Antwortwartezeit fest
Die Option „-w“ wird verwendet, um die Antwortwartezeit in Traceroute festzulegen. Es gibt die Wartezeit in Sekunden für die Antwort auf eine Sonde an. Betrachten Sie den folgenden Befehl:
traceroute -w 1 google.com
Mit dem obigen Befehl beträgt die Antwortwartezeit 1 Sekunde. Die Ausgabe erfolgt wie folgt:
Geben Sie die zu verwendende Schnittstelle an
Mit der Option „i“ wird die Netzwerkschnittstelle festgelegt, die Traceroute verwenden soll. Wenn es nicht festgelegt ist, wird die Schnittstelle gemäß der Routing-Tabelle festgelegt. Betrachten Sie den folgenden Befehl:
traceroute i wlp3s0b1 google.com
Der obige Befehl erzeugt die folgende Ausgabe:
Vorwärtsverkettung
Legen Sie den anfänglichen TTL-Wert fest
Wir können den anfänglichen TTL-Wert (Time to Live) anders als den Standardwert festlegen. Es werden einige Sprünge übersprungen. Normalerweise wird es für die jeweilige Testreihe auf eins, zwei, drei usw. eingestellt. Wenn wir den Wert also auf sieben setzen, versucht der erste Test den Sprung sieben und überspringt die Sprünge von eins bis sechs. Betrachten Sie den folgenden Befehl:
traceroute -f 7 google.com
Der obige Befehl führt direkt zu Hop sieben. Betrachten Sie die folgende Ausgabe:
Legen Sie die maximale Hop-Anzahl fest
Die Option „-m“ wird verwendet, um die maximale Anzahl von Hops festzulegen, damit das Paket das Ziel erreicht. Der Standardwert für die maximale Anzahl von Hops beträgt 30. Betrachten Sie den folgenden Befehl:
traceroute -m 7 google.com
Der obige Befehl legt 7 maximale Hops fest, damit das Paket das Ziel erreicht. Betrachten Sie die folgende Ausgabe:
Hilfe bekommen
Um das Hilfehandbuch anzuzeigen, das eine Zusammenfassung der Verwendung und der unterstützten Optionen enthält, führen Sie den folgenden Befehl aus:
traceroute --help
Der obige Befehl zeigt die Hilfe an. Die Ausgabe erfolgt wie folgt:
Wir können auch auf die Handbuchseiten zugreifen, indem wir den man-Befehl wie folgt ausführen:
man traceroute
Der obige Befehl zeigt die Handbuchseite des Traceroute-Befehls an. Es wird wie folgt aussehen:
Scrollen Sie durch die Seite, um mehr zu lesen, und drücken Sie die Taste „q“, um die Handbuchseite zu verlassen.