GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Traceroute:Sinnsuche zwischen den Sternen

Wenn Sie jemals im Netzwerkbereich oder im Supportbereich gearbeitet haben, haben Sie wahrscheinlich gute Geschichten über die Fehlerbehebung bei einer unterbrochenen Verbindung. Unweigerlich wird ein neues System installiert und konfiguriert, aber wir können keinen Datenverkehr zum oder vom System leiten.

Eine solche Geschichte, an die ich mich erinnern kann, geht ungefähr so.

Der Anwendungsfall

Ich war mit der Fehlerbehebung bei einem Back-End-Speicher-Array beschäftigt, das gerade von einem großen, bekannten amerikanischen Finanzunternehmen installiert worden war. Der Kunde versuchte, die Datenreplikation von seinem Produktionsstandort (PROD) in Houston zu einem Disaster-Recovery-Standort (DR) in San Antonio zu konfigurieren. Das Disaster-Recovery-System war schon lange implementiert und hatte den Ruf, eine bekannte gute Konfiguration zu sein.

Die Produktionsstätte war brandneu und natürlich die Ursache all unserer Probleme. Das eigentliche Problem war, dass wir keinen Datenverkehr zwischen den beiden von uns konfigurierten Replikationsschnittstellen bewegen konnten. Wir konnten außerhalb des Gateways auf der DR-Site erreichen, aber wir konnten außerhalb der PROD-Site nicht erreichen. Datenverkehr traf auf das Gateway-Gerät und wurde verworfen.

Innerhalb einer halben Stunde nach der Fehlerbehebung fragte ich den Kunden, ob er eine Firewall auf der PROD-Site habe, die den Datenverkehr an den benötigten Ports blockieren könnte. "Natürlich nicht, es gibt keine Firewall zwischen diesen Standorten." Diese Antwort war schockierend, wenn man bedenkt, dass dies eines der größten Finanzinstitute im ganzen Land war. Aber wie bei allen Positionen mit Kundenkontakt müssen Sie respektvoll und höflich sein.

Also ging ich von meiner Seite jeden Check durch, der mir einfiel. Firewall des internen Speichers deaktiviert:überprüfen. Offene Ports von DR zu PROD:prüfen. Offene Ports von PROD zu DR? Nein.

Es stellte sich heraus, dass der Kunde nach vier Stunden Fehlerbehebung und Neukonfiguration der Schnittstellen sagte:„Lassen Sie mich unseren Firewall-Typen anrufen.“

Welcher Typ bist du?

Das ist eine seltsame Einstellung, wenn man bedenkt, dass Sie keine Firewall zwischen diesen Sites haben. Aber es war nicht seltsam, denn natürlich hatten sie eine Firewall. Problem gelöst. Jetzt, da der Albtraum vorbei war, waren die Tools, mit denen ich herausfand, wo das Problem auftrat, das gute altmodische Telnet (das wir in einem späteren Artikel behandeln werden) und natürlich traceroute .

Der Befehl

Jetzt, da Sie einen klaren Anwendungsfall für traceroute sehen können , lassen Sie uns über den Befehl selbst sprechen und welche Informationen Sie daraus erhalten können. Der Zweck dieses Artikels ist schließlich, dass Sie etwas mehr über das Dienstprogramm traceroute wissen Angebote.

Die Syntax ist ziemlich einfach. Der Befehl traceroute <x> (x hier ist es eine IP oder ein Hostname) ist die einfachste Version und beginnt, Pakete an das angegebene Ziel zu senden. Dieses Ergebnis ermöglicht es Ihnen, den Pfad der Pakete zu verfolgen, die von Ihrem Computer zu jedem der Systeme zwischen Ihnen und Ihrem gewünschten Ziel gesendet werden.

Zum Beispiel, wenn ich den Pfad von meinem Computer zu google.com verfolgen möchte , würde ich so etwas eingeben:

[root@rhel8dev ~]# traceroute www.google.com
traceroute to www.google.com (216.58.194.100), 30 hops max, 60 byte packets
 1  _gateway (192.168.2.1)  2.396 ms  2.726 ms  3.057 ms
 2  145.sub-66-174-43.myvzw.com (66.174.43.145)  119.355 ms  119.315 ms  119.508 ms
 3  * * *
 4  10.209.189.140 (10.209.189.140)  120.321 ms  119.836 ms  120.009 ms
 5  66.sub-69-83-106.myvzw.com (69.83.106.66)  119.042 ms  119.489 ms  119.156 ms
 6  2.sub-69-83-107.myvzw.com (69.83.107.2)  120.039 ms  125.954 ms  101.450 ms
 7  112.sub-69-83-96.myvzw.com (69.83.96.112)  110.757 ms  108.485 ms  122.108 ms
 8  112.sub-69-83-96.myvzw.com (69.83.96.112)  115.028 ms  121.073 ms  125.537 ms
 9  116.sub-69-83-96.myvzw.com (69.83.96.116)  121.793 ms  124.769 ms  124.434 ms
10  Bundle-Ether10.GW6.DFW13.ALTER.NET (140.222.237.123)  128.082 ms  128.400 ms  126.509 ms
11  google-gw.customer.alter.net (204.148.43.118)  106.276 ms  107.885 ms  105.718 ms
12  108.170.252.129 (108.170.252.129)  99.725 ms  101.797 ms 108.170.252.161 (108.170.252.161)  101.671 ms
13  108.170.230.109 (108.170.230.109)  101.207 ms  100.515 ms  99.730 ms
14  dfw06s48-in-f100.1e100.net (216.58.194.100)  99.059 ms  94.502 ms  94.015 ms
[root@rhel8dev ~]# 

Die Aufschlüsselung

Lassen Sie uns diese Ergebnisse in kleinere Häppchen aufteilen. Dieser Befehl kann eine Menge Informationen liefern, und wie das Sprichwort sagt:"Der beste Weg, einen Elefanten zu essen, ist ein Bissen nach dem anderen:"

[root@rhel8dev ~]# traceroute www.google.com
traceroute to www.google.com (216.58.194.100), 30 hops max, 60 byte packets
 1  _gateway (192.168.2.1)  2.396 ms  2.726 ms  3.057 ms

Wir betrachten hier nur den ersten Hop. Wir können diesen Hop jedoch verwenden, um die angezeigten Informationen zu analysieren. Zuerst sehen wir, was tatsächlich gesendet wird und wohin:

traceroute to www.google.com(IP), 30 hops max, 60 byte packets

Aus dieser Ausgabe entnehmen wir, dass wir Traffic an das gewünschte Ziel senden (www.google.com ). Traceroute misst standardmäßig 30 Hops von 60-Byte-Paketen.

Als Nächstes sehen wir, wie der erste Hop auftritt. Hier treffen wir auf das externe Gateway:

 1  _gateway (192.168.2.1)  2.396 ms  2.726 ms  3.057 ms

Hier können Sie erkennen, wo Hop One tatsächlich gelandet ist, und dann gibt es drei Zahlenwerte. Diese sind als Round-Trip Time (RTT) bekannt und beziehen sich auf die Zeit, die ein bestimmtes Paket benötigt, um sein Ziel zu erreichen und eine ICMP-Nachricht an die Quelle zurückzuleiten. Standardmäßig traceroute leitet drei Datenpakete, um jeden Hop zu testen. Weitere Informationen zu diesem Vorgang finden Sie online, aber kurz gesagt, jedes Paket leitet eine ICMP-Fehlermeldung zurück an die Quelle, wenn es ein Gerät im Netzwerk erreicht. Diese Aktion ermöglicht traceroute um die RTT dieses Pakets zu bestimmen und weist nicht unbedingt auf einen Fehler hin.

Sehen wir uns nun die Sprünge 2 bis 4 an:

 2  145.sub-66-174-43.myvzw.com (66.174.43.145)  109.206 ms  109.400 ms  109.423 ms
 3  * * *
 4  10.209.189.140 (10.209.189.140)  124.793 ms  123.585 ms  124.585 ms

Wir können hier etwas Neues sehen. Hop 2 sieht normal aus:Ein Gerät wird mit RTT-Zeiten im Bereich von 100 Millisekunden getroffen. Dann wird es interessant. Wir sehen nur Sterne (*).

Was bedeuten diese Sterne (Sternchen)? Wurden die Pakete verworfen? Sind sie abgelaufen?

Lassen Sie mich erklären. Bei diesen Sternen gibt es zwei Möglichkeiten. Erstens ist ICMP/UDP möglicherweise nicht konfiguriert. Wenn die traceroute Befehl erfolgreich abgeschlossen wird und Sie diese Sterne sehen, war das betroffene Gerät höchstwahrscheinlich nicht so konfiguriert, dass es auf ICMP/UDP-Datenverkehr antwortet. Dieses Ergebnis bedeutet nicht, dass der Datenverkehr nicht bestanden wurde. Die zweite Möglichkeit ist, dass die Pakete aufgrund eines Problems im Netzwerk verworfen wurden. Diese Ergebnisse sind normalerweise Paketzeitüberschreitungen oder der Datenverkehr wurde von einer Firewall blockiert.

Wie Sie im obigen Beispiel sehen können, werden die Pakete auch dann fortgesetzt, wenn wir Sterne bei Hop 2 sehen, und in Hop 4 zurückgeleitet. Dieses Verhalten führt zu einem erfolgreichen traceroute wie wir sehen können, dass Google erreicht wurde.

Der Imbiss

Traceroute kann ein unschätzbares Werkzeug sein, wenn es um die Behebung von Netzwerkproblemen geht. Es hilft wirklich zu visualisieren, wo das Problem tatsächlich auftritt. Natürlich laufen hinter den Kulissen von traceroute noch andere Operationen die hier nicht behandelt wurden.

Wenn Sie sich dieses Tool noch genauer ansehen möchten, empfehle ich Ihnen dringend, online zu recherchieren. Es gibt viele Informationen zu Time-to-Live (TTL) und RTT, die aus Zeitgründen nicht in diesen Artikel aufgenommen wurden. Mein Ziel ist, dass Sie jetzt besser verstehen, wann und warum Sie traceroute verwenden sollten Tool und wie die angebotenen Daten zu interpretieren sind. Weitere Informationen zur Netzwerkfehlerbehebung und -konzepten finden Sie in unseren verwandten Artikeln hier.


Linux
  1. Linux – Finden Sie die Pid des Prozesses mit einem bestimmten Port?

  2. Verstehen Sie die Bedeutung von `$_`?

  3. Ermitteln der Sektorgröße einer Partition?

  4. Was bedeutet *nix?

  5. Was bedeuten fork() und grep unter Linux?

Tracepath vs. Traceroute:Was ist der Unterschied?

So installieren Sie Traceroute auf Ubuntu

Die größten Dateien und Ordner in der Linux-Befehlszeile finden

So verwenden Sie den Linux-Befehl mtr (My Traceroute).

Finden Sie die PID des Prozesses mit einem bestimmten Port?

Bedeutung der Buffer/Cache-Zeile in der Ausgabe von free