News
Serverspace Technologien in den VAE: Einführung von Falconcloud
HW
4. Juli 2023
Aktualisiert Juli 25, 2023

Traceroute – Netzwerkverfolgung in Linux

Linux Netzwerke Ubuntu

Stellen Sie sich die Situation vor: Die erforderliche Software ist installiert und konfiguriert. Diese Software kommuniziert mit Servern im Netzwerk (jede Webanwendung, die Anfragen an eine Remote-Datenbank, ein Netzwerk-Backup-System usw. sendet). Bis zu einem bestimmten Moment funktionierte alles ordnungsgemäß und ohne Verzögerungen, aber plötzlich begann es entweder langsam zu arbeiten oder hörte sogar auf zu funktionieren. Wie kann man erkennen, auf welchem ​​Server das Problem aufgetreten ist? An welchem ​​Punkt der Verkehrsübertragung kam es zu Verzögerungen oder Einschränkungen?

Das Ping-Dienstprogramm kann dabei helfen, herauszufinden, ob auf den Remote-Server zugegriffen werden kann. Für weitere Diagnosen sind jedoch andere Tools erforderlich. Eines davon ist Traceroute – ein Dienstprogramm, das die Verfolgung von Netzwerkverbindungen durchführen kann. Traceroute zeigt Knoten (Router), die das Paket durchläuft, und wie lange es dauert, das Paket an jedem Knoten zu verarbeiten.

Das Dienstprogramm ist häufig vorinstalliert und kann jederzeit verwendet werden. Wenn es aus irgendeinem Grund nicht verfügbar ist, kann es mit dem Paketmanager aus dem Standard-Distributions-Repository installiert werden:

    • für Deb-basierte Verteilung:
sudo apt install traceroute
    • für rpm-basierte Verteilung:
sudo yum install traceroute



So funktioniert Traceroute

Das Dienstprogramm verfolgt die Knoten, auf denen Netzwerkpakete während der Übertragung zum Zielhost eingehen. Standardmäßig wird das UDP-Protokoll verwendet – UDP-Datengram wird erstellt und in ein IP-Paket gepackt. In einem der Paketheader legt Traceroute den Wert TTL (Time To Live) pa festrameter auf 1. Dieser Parameter wird verwendet, um die Anzahl der Übergänge von einem Router zu einem anderen zu begrenzen, d. h. es ermöglicht die Vermeidung unendlicher Paketübertragungen zwischen Routern (z. B. im Fall eines falsch konfigurierten dynamischen Routing-Protokolls oder Fehlern in statischen Routen). Jeder Router, der ein Paket empfängt, reduziert den TTL-Wert um 1, bevor er es weiter an das Netzwerk sendet. In einer Situation, in der die nächste TTL-Abnahme gleich 0 wird, gilt das Paket als nicht zugestellt und verworfen, während der Router dem Absender mit einer Fehlermeldung antwortet.

Bei TTL = 1 ermittelt Traceroute beim Empfang einer Antwort vom ersten Router dessen IP-Adresse und die Zeit, die für die Verarbeitung des Pakets aufgewendet wurde. Danach wird die TTL um eins erhöht, um den nächsten Router zu bestimmen, und so weiter, bis das Paket den Zielhost erreicht. Das Dienstprogramm verwendet standardmäßig die angegebene IP-Adresse (oder den angegebenen Namen) und Port 34434. Der Zielhost empfängt das Paket und sendet eine Fehlermeldung über die Nichtverfügbarkeit von Port 34434 (da dieser in den meisten Fällen von keinem Dienst verwendet wird und geschlossen ist). Dadurch wird die gesamte Paketkette verfolgt, die mit einer Antwort des Zielhosts endet.

Ein Router ist ein beliebiges Gerät, das ein Paket von einem Subnetz zu einem anderen überträgt – nicht unbedingt ein spezielles Netzwerkgerät, sondern ein beliebiger Netzwerkserver. Dies ist besonders wichtig für die Microservice-Architektur von Anwendungen, die Containerisierungstechnologien verwenden. Durch die Analyse der Zeit, die für den Übergang von einem Router zum anderen aufgewendet wurde, können Sie versuchen festzustellen, bei welchen von ihnen Verzögerungen auftreten – möglicherweise aufgrund fehlender Ressourcen auf einem der Server oder aufgrund einer Fehlfunktion des Festplattensystems usw. Das Paket erreicht den Zielhost nicht, wenn einer der Server nicht verfügbar ist, und das Dienstprogramm bestimmt, an welchem ​​Punkt der Übertragung dies geschieht. Außerdem wird das Paket nicht erreicht, wenn die Verkehrsfilterung aktiv ist (was bedeutet, dass die Übertragung des Pakets gestört wird).

Traceroute-Start

Der Name des Zielhosts oder die IP-Adresse ist für das Dienstprogramm obligatorisch:

traceroute linux.org

Ausgang:

tracing connection to linux.org

Welche Daten werden vom Dienstprogramm gesammelt und in der Tabelle angezeigt:

  • es dauerte 5 Übergänge (Hops), dieser Wert steht in der ersten Spalte;
  • IP-Adresse und Name (sofern verfügbar) des nächsten Routers werden bei jedem Hop ermittelt;
  • Zeit (RTT – Round Trip Time), die für das Senden und Empfangen einer Anfrage vom Router aufgewendet wird.

Traceroute sendet standardmäßig drei UDP-Pakete, sodass in der Ausgabe drei RTT-Werte angezeigt werden. Für die erste Zeile sind es 3.034 ms, 5.349 ms, 5.325 ms. Ein weiterer Standardwert ist die Anzahl der Hops, die ein Paket durchlaufen kann, also TTL = 30. Ein beliebiger Wert, beispielsweise 35, kann in der Befehlszeile mit der Option „ -m 35“ angegeben werden. Auf einigen Hops kann mehr als ein Router definiert sein – dies liegt daran, dass an dieser Stelle mehrere Routen vorhanden sind. Durch das gleichzeitige Versenden von drei UDP-Paketen kann die Antwort von drei verschiedenen Routern kommen, wobei für jeden auch RTT angegeben wird. Ein Beispiel für eine solche Antwort im vierten Hop: IP 172.71.180.2 und 172.71.100.2 werden ermittelt, über die Pakete an den Zielhost zugestellt werden können.

Es muss auf Hops mit hoher RTT geachtet werden – das bedeutet, dass der Router lange braucht, um das Paket zu verarbeiten, und der Grund für eine solche Verzögerung muss gefunden werden.

Es ist zu beachten, dass die Antwort aufgrund des Vorhandenseins eines Absenders möglicherweise auf einem anderen Weg zum Absender gelangtnative-Route oder der Einsatz von Load-Balancing-Technologien. Wenn bei einem Hop eine hohe RTT vorliegt, sollten Sie das Dienstprogramm erneut ausführen und das Ergebnis überprüfen.
Außerdem können Paketfilter auf einem der Router aktiv sein oder es kann ein spezieller sein firewall Gerät. In diesem Fall könnte es Einschränkungen für den Port oder das UDP-Protokoll geben und in der Traceroute-Ausgabe werden drei Sternchen angezeigt (d. h. das Antwort-Timeout wurde überschritten):

traceroute mongodb.org

tracing mongodb.com

Ressource mongodb.com verfügbar, aber UDP-Pakete werden gefiltert.

Traceroute kann das ICMP-Protokoll anstelle von UDP verwenden – es wird eine „Echo Request“-Anfrage gesendet, als Antwort werden auch ICMP-Nachrichten empfangen, es wird kein Port verwendet. Im Übrigen ist es nicht anders. Die Option „-I“ in der Befehlszeile für die ICMP-Ablaufverfolgung:

traceroute mongodb.org -I

tracing mongodb.com with icmp

Es ist ersichtlich, dass die Antwort vom Zielhost empfangen wurde, obwohl zwischen 5 und 21 Hops keine Antworten erfolgten.
Es kann auch das TCP-Protokoll verwendet werden (Option „-T“) – in diesem Fall werden SYN-Anfragen an Port 80 gesendet.

Nützliche Optionen von Traceroute:

  • „-4“ und „-6“, Angabe IPv4 bzw. IPv6-Protokolle;
  • „-I“, spezifiziert die Netzwerkschnittstelle, z. B. „-i ens0s5“;
  • „-n“, Deaktivieren der Namensauflösung;
  • „-p“, Angabe des benutzerdefinierten Ports (für UDP und TCP);
  • „-m“, maximale Anzahl von Übergängen (Hops).

Netzwerkverfolgung in Windows

Tracert ist das Dienstprogramm, das in verfügbar ist Windows Betriebssystem zum Verfolgen von Netzwerkverbindungen ähnlich wie Traceroute in Linux.
Dieses Dienstprogramm verwendet nur das ICPM-Protokoll, verfügt über weniger Optionen und funktioniert genauso wie Traceroute.

Zusammenfassung

Traceroute ist ein praktisches Tool zur Diagnose von Netzwerkverbindungen und hilft dabei, festzustellen, an welchem ​​Knoten es Verzögerungen oder Einschränkungen bei der Verkehrsübertragung gibt. Gleichzeitig ist es aufgrund von Filterregeln, Umleitungssystemen und Verkehrsausgleich nicht immer einfach, die Ergebnisse seiner Arbeit zu interpretieren. Um eine verteilte Anwendung zu diagnostizieren, ist ein klares Verständnis der verwendeten Architektur erforderlich. Die Kombination der verfügbaren Optionen ist auch für die Diagnose externer Ressourcen nützlich.

Abstimmung:
5 aus 5
Durchschnittliche Bewertung: 5
Bewertet von: 1
1101 CT Amsterdam Niederlande, Herikerbergweg 292
+31 20 262-58-98
700 300
ITGLOBAL.COM NL
700 300

Das könnte dir auch gefallen ...

Wir verwenden Cookies, um Ihr Erlebnis auf der Website zu verbessern Serverspace besser. Indem Sie weiterhin auf unserer Website surfen, stimmen Sie unseren zu
Cookies und Datenschutzbestimmungen.