Sie können den Linux-Befehl traceroute verwenden, um den langsamen Abschnitt der Reise eines Netzwerkpakets zu erkennen und träge Netzwerkverbindungen zu beheben. Wir zeigen Ihnen wie!
Inhaltsverzeichnis
So funktioniert Traceroute
Wenn Sie wissen, wie Traceroute funktioniert, können Sie die Ergebnisse viel einfacher verstehen. Je komplizierter die Route a Netzwerkpaket nehmen muss, um sein Ziel zu erreichen, desto schwieriger ist es, festzustellen, wo es zu Verzögerungen kommen könnte.
Eine kleine Organisation lokales Netzwerk (LAN) könnte relativ einfach sein. Es wird wahrscheinlich mindestens einen Server und ein oder zwei Router haben. Die Komplexität steigt auf a Weitverkehrsnetz (WAN), das zwischen verschiedenen Standorten oder über das Internet kommuniziert. Ihr Netzwerkpaket trifft dann auf (und wird weitergeleitet und geroutet) eine Menge Hardware, wie Router und Gateways.
Die Header von Metadaten auf Datenpaketen beschreiben ihre Länge, woher sie kommen, wohin sie gehen, das verwendete Protokoll und so weiter. Die Spezifikation des Protokolls definiert den Header. Wenn Sie das Protokoll identifizieren können, können Sie Anfang und Ende jedes Feldes im Header bestimmen und die Metadaten lesen.
traceroute verwendet die TCP/IP Suite von Protokollen und sendet Benutzer-Datagramm-Protokoll Pakete. Die Kopfzeile enthält die Zeit zu leben (TTL)-Feld, das einen 8-Bit-Ganzzahlwert enthält. Entgegen dem, was der Name vermuten lässt, stellt es eine Zählung dar, keine Dauer.
Ein Paket reist von seinem Ursprung zu seinem Ziel über einen Router. Jedes Mal, wenn das Paket an einem Router ankommt, wird der TTL-Zähler dekrementiert. Wenn der TTL-Wert jemals eins erreicht, verringert der Router, der das Paket empfängt, den Wert und stellt fest, dass er jetzt null ist. Das Paket wird dann verworfen und nicht an den nächsten Hop seiner Reise weitergeleitet, da es eine „Zeitüberschreitung“ hat.
Der Router sendet eine Internet Message Control Protocol (ICMP) Zeit überschritten Nachricht an den Ursprung des Pakets zurück, um es über das Timeout des Pakets zu informieren. Die Nachricht Time Exceeded enthält den ursprünglichen Header und die ersten 64 Bit der Daten des ursprünglichen Pakets. Dies ist auf Seite sechs von . definiert Bitte um Kommentare 792.
Wenn also traceroute ein Paket aussendet, den TTL-Wert dann aber auf eins setzt, gelangt das Paket nur bis zum ersten Router, bevor es verworfen wird. Es empfängt eine ICMP-Zeitüberschreitungsnachricht vom Router und kann die Zeit für die Hin- und Rückfahrt aufzeichnen.
Es wiederholt dann die Übung mit TTL auf 2 gesetzt, was nach zwei Sprüngen fehlschlägt. traceroute erhöht die TTL auf drei und versucht es erneut. Dieser Vorgang wiederholt sich, bis das Ziel erreicht ist oder die maximale Anzahl von Hops (standardmäßig 30) getestet wurde.
Einige Router spielen nicht gut
Einige Router haben Fehler. Sie versuchen, Pakete mit einer TTL von Null weiterzuleiten, anstatt sie zu verwerfen und eine ICMP-Zeitüberschreitungsmeldung auszulösen.
Gemäß Cisco, begrenzen einige Internet Service Provider (ISPs) die Anzahl der ICMP-Nachrichten, die ihre Router weiterleiten.
Einige Geräte sind so konfiguriert, dass sie niemals ICMP-Pakete senden. Dies dient häufig dazu, sicherzustellen, dass das Gerät nicht unwissentlich zur Teilnahme an einem verteilter Denial-of-Service, wie ein Schlumpf-Attacke.
traceroute hat eine Standardzeitüberschreitung für Antworten von fünf Sekunden. Wenn es innerhalb dieser fünf Sekunden keine Antwort erhält, wird der Versuch abgebrochen. Dies bedeutet, dass Antworten von sehr langsamen Routern ignoriert werden.
Traceroute installieren
traceroute wurde bereits auf Fedora 31 installiert, muss aber auf Manjaro 18.1 und Ubuntu 18.04 installiert werden. Um Traceroute auf Manjaro zu installieren, verwenden Sie den folgenden Befehl:
sudo pacman -Sy traceroute
Um Traceroute unter Ubuntu zu installieren, verwenden Sie den folgenden Befehl:
sudo apt-get install traceroute
Traceroute verwenden
Wie oben beschrieben, besteht der Zweck von traceroute darin, dem Router bei jedem Hop von Ihrem Computer zum Ziel eine Antwort zu entlocken. Einige mögen wortkarg sein und nichts verraten, während andere die Bohnen wahrscheinlich ohne Skrupel verschütten werden.
Als Beispiel führen wir eine Traceroute zum Schloss Blarney Website in Irland, Heimat der berühmten Blarney-Stein. Die Legende besagt, dass Sie, wenn Sie den Blarney Stone küssen, mit dem „Geschenk des Gelaber“ gesegnet sind. Hoffen wir, dass die Router, denen wir unterwegs begegnen, entsprechend geschwätzig sind.
Wir geben folgenden Befehl ein:
traceroute www.blarneycastle.ie
Die erste Zeile gibt uns die folgenden Informationen:
Das Ziel und seine IP-Adresse.
Die Anzahl der Hops, die Traceroute versucht, bevor es aufgibt.
Die Größe der UDP-Pakete, die wir senden.
Alle anderen Zeilen enthalten Informationen zu einem der Hops. Bevor wir jedoch auf die Details eingehen, können wir sehen, dass zwischen unserem Computer und der Blarney Castle-Website 11 Sprünge bestehen. Hop 11 sagt uns auch, dass wir unser Ziel erreicht haben.
Das Format jeder Hop-Linie ist wie folgt:
Der Name des Geräts oder, falls das Gerät sich nicht identifiziert, die IP-Adresse.
Die IP-Adresse.
Die Zeit, die für jeden der drei Tests benötigt wurde. Wenn hier ein Sternchen angezeigt wird, bedeutet dies, dass dieser Test nicht beantwortet wurde. Wenn das Gerät überhaupt nicht reagiert, sehen Sie drei Sternchen und keinen Gerätenamen oder IP-Adresse.
Sehen wir uns im Folgenden an, was wir haben:
Hop 1: Die erste Anlaufstelle (kein Wortspiel beabsichtigt) ist der DrayTek Vigor Router im lokalen Netzwerk. So verlassen unsere UDP-Pakete das lokale Netzwerk und gelangen ins Internet.
Hop 2: Dieses Gerät hat nicht reagiert. Vielleicht wurde es so konfiguriert, dass es niemals ICMP-Pakete sendet. Oder vielleicht hat es geantwortet, war aber zu langsam, so dass das Timeout von Traceroute abgelaufen ist.
Hop 3: Ein Gerät hat geantwortet, aber wir haben nicht seinen Namen erhalten, sondern nur die IP-Adresse. Beachten Sie, dass sich in dieser Zeile ein Sternchen befindet, was bedeutet, dass wir nicht auf alle drei Anfragen geantwortet haben. Dies könnte auf einen Paketverlust hinweisen.
Hops 4 und 5: Mehr anonyme Hops.
Hop 6: Hier gibt es viel Text, da jede unserer drei UDP-Anfragen von einem anderen Remote-Gerät bearbeitet wurde. Die (eher langen) Namen und IP-Adressen für jedes Gerät wurden gedruckt. Dies kann passieren, wenn Sie auf ein „reich besetztes“ Netzwerk stoßen, in dem es viel Hardware gibt, um ein hohes Verkehrsaufkommen zu bewältigen. Dieser Hop befindet sich innerhalb eines der größten ISPs in Großbritannien. Es wäre also ein kleines Wunder, wenn dieselbe Remote-Hardware unsere drei Verbindungsanfragen verarbeiten würde.
Hop 7: Dies ist der Hop, den unsere UDP-Pakete beim Verlassen des ISP-Netzwerks gemacht haben.
Hop 8: Auch hier erhalten wir eine IP-Adresse, aber nicht den Gerätenamen. Alle drei Tests sind erfolgreich zurückgekehrt.
Hops 9 und 10: Zwei weitere anonyme Hops.
Hop 11: Wir sind auf der Website von Blarney Castle angekommen. Das Schloss befindet sich in Cork, Irland, aber laut Geolokalisierung der IP-Adresse, die Website befindet sich in London.
Es war also eine gemischte Tüte. Manche Geräte spielten mit, manche antworteten, nannten uns aber nicht ihren Namen, andere blieben völlig anonym.
Wir haben jedoch das Ziel erreicht, wir wissen, dass es 11 Hops entfernt ist und die Hin- und Rückfahrtzeit für die Reise 13.773 und 14.715 Millisekunden betrug.
Gerätenamen ausblenden
Wie wir gesehen haben, führt die Angabe von Gerätenamen manchmal zu einer überladenen Anzeige. Um das Anzeigen der Daten zu erleichtern, können Sie die Option -n (keine Zuordnung) verwenden.
Um dies in unserem Beispiel zu tun, geben wir Folgendes ein:
traceroute -n blarneycastle.ie
Dies macht es einfacher, große Zahlen für Round-Trip-Timings auszuwählen, die auf einen Engpass hinweisen könnten.
Hop 3 sieht langsam verdächtig aus. Letztes Mal hat es nur zweimal geantwortet, und dieses Mal hat es nur einmal geantwortet. In diesem Szenario liegt es natürlich außerhalb unserer Kontrolle.
Wenn Sie jedoch Ihr Unternehmensnetzwerk untersuchen, lohnt es sich, etwas tiefer in diesen Knoten einzutauchen.
Einstellen des Traceroute-Zeitüberschreitungswerts
Vielleicht erhalten wir mehr Antworten, wenn wir die Standard-Timeout-Periode (fünf Sekunden) verlängern. Dazu verwenden wir die Option -w (Wartezeit), um sie auf sieben Sekunden zu ändern. (Beachten Sie, dass dies eine Gleitkommazahl ist.)
Wir geben folgenden Befehl ein:
traceroute -w 7.0 blarneycastle.ie
Das hat keinen großen Unterschied gemacht, daher laufen die Antworten wahrscheinlich ab. Es ist wahrscheinlich, dass die anonymen Hopfen absichtlich geheim bleiben.
Einstellen der Anzahl der Tests
Traceroute sendet standardmäßig drei UDP-Pakete an jeden Hop. Wir können die Option -q (Anzahl der Abfragen) verwenden, um dies nach oben oder unten anzupassen.
Um den Traceroute-Test zu beschleunigen, geben wir Folgendes ein, um die Anzahl der von uns gesendeten UDP-Prüfpakete auf eins zu reduzieren:
traceroute -q 1 blarneycastle.ie
Dies sendet eine einzelne Probe an jeden Hop.
Einstellen des anfänglichen TTL-Werts
Wir können den Anfangswert von TTL auf einen anderen Wert als eins setzen und einige Sprünge überspringen. Normalerweise werden die TTL-Werte für den ersten Testsatz auf eins gesetzt, für den nächsten Testsatz auf zwei und so weiter. Wenn wir ihn auf fünf setzen, versucht der erste Test, zu Hop fünf zu gelangen und die Hops eins bis vier zu überspringen.
Da wir wissen, dass die Blarney Castle-Website 11 Hops von diesem Computer entfernt ist, geben wir Folgendes ein, um direkt zu Hop 11 zu gelangen:
traceroute -f 11 blarneycastle.ie
Das gibt uns einen schönen, komprimierten Bericht über den Zustand der Verbindung zum Ziel.
Seien Sie rücksichtsvoll
traceroute ist ein großartiges Tool, um das Netzwerk-Routing zu untersuchen, Verbindungsgeschwindigkeiten zu überprüfen oder Engpässe zu identifizieren. Windows hat auch einen tracert-Befehl, der ähnlich funktioniert.
Sie möchten jedoch unbekannte Geräte nicht mit Torrents von UDP-Paketen bombardieren und sich davor hüten, Traceroute in Skripte oder unbeaufsichtigte Jobs aufzunehmen.
Die Last, die Traceroute in einem Netzwerk platzieren kann, kann sich nachteilig auf dessen Leistung auswirken. Sofern Sie sich nicht in einer Sofortlösungssituation befinden, möchten Sie es möglicherweise außerhalb der normalen Geschäftszeiten verwenden.