Script-Time: Ping und Traceroute

Übersichtliche Alternativen zu den Standart-Tools

Script-Time: Ping und Traceroute
Photo by Mohammad Rahmani / Unsplash

Warum sollte man über diese beiden Tools einen Artikel schreiben? Eigentlich überflüssig. Aber gelegentlich schauen mir Kollegen über die Schulter und fragen mich immer, was das wieder für ein kuhles Tool ist. Also stelle ich meine Alternativen einfach kurz vor.

Der Klassiker: ping

Das wohl bekannteste und einfachste Werkzeug zur Netzwerkdiagnose ist ping. Im Grunde stellt es eine simple Frage an ein Zielsystem: "Bist du da?". Man kann es sich vorstellen wie ein Sonar auf einem U-Boot. Ein Signal (ein "Ping") wird ausgesendet, und es wird auf eine Antwort (ein "Pong") gewartet. Technisch gesehen sendet ping ein ICMP Echo Request-Paket an die Ziel-IP-Adresse und wartet auf ein ICMP Echo Reply.

ping 1.1.257 ?
Manchmal kann ich nicht widerstehen, IP Adressen in anderen Schreibweisen zu benutzen. Warum das möglich ist, ist tatsächlich definiert. In IPv6-Adressen wird der Doppelpunkt (::) als Abkürzung für eine Gruppe aufeinander folgender Nullen verwendet. IPv6-Adressen sind 128 Bit lang und werden in 8 Blöcken zu je 16 Bit geschrieben. Die Verwendung

Die Anwendung ist denkbar einfach:

Die Ausgabe liefert zwei entscheidende Informationen:

  1. Erreichbarkeit: Kommt eine Antwort zurück, ist das Zielsystem grundsätzlich über das Netzwerk erreichbar.
  2. Latenz: Die angezeigte Zeit (in Millisekunden) ist die Round Trip Time (RTT) – also die Zeit, die das Paket für den Hin- und Rückweg benötigt hat. Eine niedrige Latenz ist erstrebenswert.

Ziemlich unspektakulär und sicherlich jedem bekannt. Ich nutze aber auch gerne gping. Es zeigt die Antwortzeiten grafisch an.

gping - Das Auge pingt mit

gping zeigt die Latenzzeit nicht nur als Zahl, sondern auch als Verlaufsgrafen direkt im Terminal an. So lassen sich Ausreißer, Paketverluste oder generelle Verbindungsschwankungen auf einen Blick erkennen.

gping ist nicht standardmäßig installiert, kann aber schnell nachgerüstet werden. Unter Debian/Ubuntu geschieht dies zum Beispiel so:

# Zuerst den Schlüssel des Repositorys hinzufügen
wget -qO - https://azlux.fr/repo.gpg.key | sudo apt-key add -
# Dann das Repository selbst
echo "deb http://packages.azlux.fr/debian/ stable main" | sudo tee /etc/apt/sources.list.d/azlux.list
# Paketlisten aktualisieren und gping installieren
sudo apt update
sudo apt install -y gping

Die Nutzung ist identisch zu ping:

Das Ergebnis ist eine saubere, sich live aktualisierende Grafik, die die Verbindungsqualität visualisiert.

traceroute - the way of the paket

Wenn ping fehlschlägt oder die Latenz unerklärlich hoch ist, lautet die nächste Frage: "Wo liegt das Problem auf der Strecke?". Genau hier setzt traceroute an. Dieses Tool verfolgt den Pfad, den ein Datenpaket von der Quelle zum Ziel nimmt, und listet alle dazwischenliegenden Router (Hops) auf.

Die Funktionsweise ist clever und nutzt das bereits erwähnte TTL-Feld im IP-Header.

  1. traceroute sendet zunächst ein Paket mit einem TTL-Wert von 1.
  2. Der erste Router auf dem Weg empfängt das Paket, dekrementiert die TTL auf 0, verwirft das Paket und sendet eine ICMP-Nachricht vom Typ "Time Exceeded" zurück an den Absender.
  3. traceroute empfängt diese Antwort, erkennt so nun die Absenderadresse des ersten Hops und misst die Zeit.
  4. Dieser Vorgang wird mit einer TTL von 2, dann 3 usw. wiederholt. Bei jeder Erhöhung antwortet der nächste Router in der Kette.

Dieser Prozess wird fortgesetzt, bis das Ziel erreicht ist oder die maximale Anzahl an Hops überschritten wird.

Die Ausgabe zeigt eine Liste der Router, über die die Verbindung läuft, sowie die Latenz zu jedem einzelnen Hop. Erhöht sich die Latenz an einem bestimmten Punkt drastisch oder erscheinen Sternchen (*), deutet das auf ein Problem bei diesem oder dem nachfolgenden Hop hin.

mtr - ping und traceroute in einem

mtr (My Traceroute) kombiniert die Funktionalität von ping und traceroute zu einem leistungsstarken Live-Diagnosewerkzeug. Anstatt wie traceroute nur eine Momentaufnahme des Pfades zu erstellen, sendet mtr kontinuierlich Pakete und aktualisiert die Statistiken für jeden Hop in Echtzeit. Dies ermöglicht eine detaillierte Analyse der Verbindungsqualität über die gesamte Strecke.

Auch mtr muss oft erst installiert werden, was unter Debian-basierten Systemen wie Ubuntu einfach möglich ist:

sudo apt update
sudo apt install mtr

Ein Aufruf startet die interaktive Ansicht:

In der Ausgabe kann man gut erkennen, welchen Weg die Pakete nehmen. Die Hops sind auch hier wieder untereinander aufgelistet. Zusätzlich erscheint aber auch eine liste mit Anwortzeiten, die durch Zahlen oder Buchstaben repräsentiert werden. In der Legende am unteren Rand ist erklärt, was diese genau bedeuten. So ist im obigen Beispiel gut zu sehen, dass der Router smvss-srv.ggew-net.de gelegentlich starke Latenzen hinzufügt.

Fazit

Hat man die Möglichkeit oder Berechtigung, auf einem System modernere Tools als die standartmäßigen zu installieren, kann man sich die Administration deutlich übersichtlicher und effizienter gestalten. mtr und gping sind gute Beispiele dafür, denn in der Grafik fällt der Unterschied zwischen 3ns und 3ms auch ins Auge, wenn man in einem anderen Fenster beschäftigt ist.