So diagnostizieren Sie Netzwerkprobleme unter Linux mit Traceroute

So diagnostizieren Sie Netzwerkprobleme unter Linux mit Traceroute
Traceroute Linux vorgestellt

Traceroute ist ein einfaches Netzwerkdienstprogramm, das die Route verfolgen kann, die ein Internetpaket von der Quelle zum Zielhost nimmt. In diesem Artikel erfahren Sie, wie Sie mit Traceroute den Netzwerkzustand Ihres Linux überprüfen und auftretende Probleme diagnostizieren können.

Wie funktioniert Traceroute?

Traceroute sendet UDP-Pakete mit kurzen TTL-Längen an jedes Internet-Gateway auf dem Weg zu einem Remote-Host. Diese kurzen TTL-Längen zwingen diese Gateways dann dazu, eine ICMP-Antwort „TIME_EXCEEDED“ zusammen mit der IP-Adresse ihrer Schnittstelle zu melden.

Durch die Kombination dieser beiden Faktoren kann Traceroute eine detaillierte Liste der Maschinen erstellen, die Ihr Paket durchlaufen wird, wenn es eine Verbindung zu einem externen Server herstellt. Wenn ich beispielsweise eine Traceroute zu „google.com“ in meinem Netzwerk ausführe, werden zwischen 9 und 10 Gateways aufgelistet, bevor sie die Server von Google erreicht.

Ein Terminal, das eine einfache Traceroute für google.com anzeigt.

Welche Netzwerkprobleme kann Traceroute beheben?

Traceroute ist lediglich ein Tool zur Netzwerkprüfung und optimiert oder behebt keine offenen Probleme in Ihrem Netzwerk. Traceroute kann nur beschreiben, wie sich Netzwerke und die auf ihnen übertragenen Pakete verhalten.

Dennoch ist es immer noch ein wichtiges Werkzeug zur Diagnose potenzieller Netzwerkprobleme. Ein gutes Beispiel ist, wenn ein lokales Gateway ein Paket nicht an seinen nächsten Hop weiterleitet. Traceroute kann dieses Problem beheben, indem es jeden Router in Ihrem Kernnetzwerk hervorhebt, der keine „TIME_EXCEEDED“-Antwort sendet.

Ein Terminal, das eine einfache Traceroute anzeigt, bei der Gateways ständig nicht auf das Programm reagieren.

Darüber hinaus können Sie Traceroute auch verwenden, um nach Latenzproblemen zwischen Hosts zu suchen. Dies kann hilfreich sein, wenn Sie sehen möchten, ob Ihr lokales Netzwerk ein VPN benötigt, um eine konstant niedrige Latenz bei der Verbindung zu einem Remote-Computer sicherzustellen.

Verwenden von Traceroute unter Linux

Öffnen Sie ein neues Terminal und geben Sie traceroute gefolgt von der Maschinenadresse ein, mit der sich Ihre Maschine verbinden soll. Dies kann entweder ein Domänenname oder eine IP-Adresse sein. Zum Beispiel:

Drücken Sie Enter, um mit der Zuordnung des Pfads zu Ihrem Remote-Host zu beginnen.

Ein Terminal, das eine einfache Traceroute zu einem kleinen VPS zeigt.

Senden von Paketen mit benutzerdefinierter TTL in Traceroute

Während die Verwendung von Traceroute allein für die grundlegende Verwendung ausreicht, können Sie die Funktionsweise des Programms auch mithilfe von Flags optimieren. Dies kann insbesondere dann hilfreich sein, wenn Sie eine Triage Ihres Netzwerks durchführen.

Eine der häufigsten Optimierungen in Traceroute ist die Änderung der Anzahl der Pakete, die an ein Gateway gesendet werden. Verwenden Sie dazu das Flag -q, gefolgt von der Anzahl der Pakete, die Sie pro Anfrage senden möchten:

Sie können auch das Flag -N gefolgt von „1“ verwenden, um gleichzeitige Paketanforderungen explizit zu deaktivieren. Dies ist hilfreich, wenn Sie Gateways haben, die die Geschwindigkeit von UDP-Paketen mit kurzer TTL begrenzen.

Ein Terminal, das eine Traceroute mit deaktivierten gleichzeitigen Paketen anzeigt.

Zuletzt können Sie auch den Standard-TTL-Wert für Traceroute ändern. Fügen Sie dazu das Flag -f gefolgt von der gewünschten TTL für Ihr erstes Prüfpaket hinzu.

Ein Terminal, das eine Traceroute anzeigt, bei der das Programm die ersten beiden Gateways überspringt.

Ändern des Traceroute-Protokolls unter Linux

Standardmäßig verwendet Traceroute unter Linux UDP zum Senden von Testpaketen an Netzwerk-Gateways. Dies kann ein Problem sein, wenn Sie ein Gateway prüfen, das Traceroute-Pakete aktiv blockiert.

Um dies zu beheben, können Sie das Flag -T verwenden, um Traceroute mit einfachen TCP-SYN-Paketen auszuführen.

Ein Terminal, das eine Traceroute anzeigt, bei der das Programm das TCP-SYN-Paket anstelle von UDP verwendet.

Andererseits können Sie Traceroute auch dazu zwingen, ein ICMP-ECHO-Paket zu verwenden, wenn das Ziel-Gateway nur UDP einschränkt:

Traceroute unterstützt auch benutzerdefinierte Netzwerkschnittstellen. Hier verwendet Traceroute eine andere Netzwerkkarte in Ihrem Computer, um den Pfad eines Pakets zu prüfen.

Führen Sie dazu das Programm mit dem Flag -i gefolgt vom Gerätenamen Ihrer Schnittstelle aus.

Außerdem können Sie das Flag -p verwenden, um die Startportnummer anzugeben, die Traceroute für die UDP-Prüfung verwenden wird:

Schließlich ändert das Flag -p auch sein Verhalten abhängig vom verwendeten Protokoll. Wenn Sie es mit -I koppeln, wird der -p-Wert als anfängliche ICMP-Sequenznummer anstelle des Zielports festgelegt.

Ein Terminal, das eine Traceroute unter Verwendung von ICMP ECHO mit einer benutzerdefinierten ICMP-Sequenznummer anzeigt.

Das Erlernen der Verwendung von Traceroute ist nur der erste Schritt, um zu verstehen, wie Computer über ein Netzwerk miteinander kommunizieren. Erfahren Sie mehr über Computernetzwerke, indem Sie den Inhalt eines TCP-Pakets mit tcpdump analysieren.

Mittlerweile können Sie auch mehr über die höheren OSI-Schichten wie DNS erfahren, indem Sie das Dig-Tool in Linux verwenden.

Alle Änderungen und Screenshots von Ramces Red.

Schreibe einen Kommentar

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