AA_PO-23353_Photocase-wild_thing_Straszenpfeile.jpg

© erdbeersüchtig, photocase.de

Verkehrsbeobachter

Netzwerkverkehr analysieren mit Iftop

15.01.2013
Träge Netzwerkverbindungen können einem den letzten Nerv rauben. Da hilft häufig ein Blick auf die Netzwerkebene, um zu wissen, wo es klemmt. Mit Iftop analysieren Sie flink, welche Verbindungen sich auf der Leitung tummeln.

Iftop gehört in den Werkzeugkasten eines jeden Linux-Benutzers. Der Name Iftop steht als Abkürzung für "interface top": Das Programm [1] zeigt die aktuelle Auslastung einer Netzwerkschnittstelle an und gilt als Netzwerk-Pendant zu Top beziehungsweise Htop [2], die beide die Auslastung der CPU anzeigen. Iftop gehört meist jedoch nicht zur Standardinstallation, dieses praktische Werkzeug müssen Sie dem System nachträglich hinzufügen (siehe Kasten "Iftop installieren").

Mit Iftop erfahren Sie, wofür gerade Bandbreite auf einer Netzwerkschnittstelle verbraten wird. Das Programm stellt dar, welche Netzwerkverbindungen zwischen zwei IP-Adressen bestehen und wie viele Datenpakete über diese Verbindungen laufen. Alternativ lässt sich die Darstellung auch auf Protokollebene umschalten, beispielsweise um den gesamten FTP- oder HTTP-Datenstrom zu überblicken. Damit eignet sich Iftop insbesondere zur Fehlersuche und hilft die Frage zu klären, warum sich eine Leitung so langsam anfühlt.

Iftop installieren

Iftop findet sich in den Repositories aller gängigen Distributionen und lässt sich daher in aller Regel über den Paketmanager installieren. Für viele weitere DEB- [5] und RPM-basierte [6] Distributionen finden Sie im Netz Binärpakete von Iftop. Als Abhängigkeiten fallen lediglich die beiden Bibliotheken Libpcap [7] und Libcurses [8] an – erstere zur Paketinspektion, die zweite zur Darstellung der Ausgabe im Terminal.

Finden Sie dort nichts Passendes für die verwendete Distribution, greifen Sie zum Quellcode von der Projekt-Website [1]. Die aktuellen Versionen tragen die Nummer 0.17 vom Februar 2006 beziehungsweise 1.0pre2 vom Oktober 2011 und liegen als Tarballs vor. Nach dem Download packen Sie das Archiv aus und übersetzen den Programmcode für ihre Distribution und Plattform. Auch wenn die genannten Releases auf den ersten Blick etwas angestaubt erscheinen, funktionieren sie im Alltag tadellos.

Erste Schritte

Sie starten Iftop im Terminal mit dem gleichnamigen Kommando. Da es administrative Rechte voraussetzt, müssen Sie zuvor als Benutzer root angemeldet sein oder das Programm über sudo starten.

Nach dem Start präsentiert sich Iftop dreigeteilt: Am oberen Rand stellt es eine Skala zur Datenrate dar, in der Mitte die aktiven Netzwerkverbindungen und am unteren Rand eine Statistik zur übertragenen Datenmenge (Abbildung 1). Dabei wertet Iftop, sofern Sie es nicht anders anweisen (dazu später mehr) die Daten der ersten externen Netzwerkschnittstelle aus, die es erkennt. Dabei handelt es sich in der Regel um eth0.

Abbildung 1: Ausführliche Darstellung von Iftop – Quelle ohne DNS, aber mit Port, und Ziel mit DNS und Protokoll.

Die Anzeige einer aktiven Netzwerkverbindung besteht aus zwei Zeilen mit jeweils fünf Spalten. Die erste Zeile stellt die Senderichtung dar, die zweite Zeile die Empfangsrichtung. Ein kleiner Pfeil signalisiert zusätzlich die Richtung der Übertragung: => steht für die Senderichtung, <= für die Empfangsrichtung. Die einzelnen Spalten einer Zeile beinhalten die Quelle und das Ziel der Verbindung sowie eine Statistik über den erfolgten Datentransfer. Die drei Spalten in der rechten Hälfte der Ausgabe zeigen den Datentransfer der vergangenen 2, 10 und 40 Sekunden an.

Pro Übertragung sehen Sie zusätzlich einen Balken, der die Verbindung hervorhebt. Die Breite des Balkens gibt den Anteil der Verbindung an der Gesamtmenge der derzeit übertragenen Daten an. Dadurch erkennen Sie auf den ersten Blick, welcher Datenstrom im Moment am meisten Bandbreite belegt. Gibt es mehr aktive Netzwerkverbindungen als ins Bildschirmfenster passen, können Sie auch in der Darstellung blättern. Dazu nutzt Iftop die Vim-Keybindings [J] für nach unten und [K] für nach oben.

Am unteren Rand zeigt Iftop die gesendete (TX, dritte Zeile von unten), die empfangene (RX, vorletzte Zeile) und die insgesamt übertragene Datenmenge (Total) an. Die zweite Spalte führt die über den Beobachtungszeitraum kumulierten Werte auf, die drei Spalten in der rechten Hälfte geben Aufschluss über den Verlauf in den vergangenen 2, 10 und 40 Sekunden.

TIPP

Iftop kennt eine Vielzahl von Schaltern und Optionen – eine Übersicht zur Laufzeit erhalten Sie mittels [H]. Weitere Informationen bietet die ausführliche, englischsprachige Manpage. Diese erreichen Sie über den Aufruf man iftop auf der Kommandozeile.

Darstellung anpassen

Die Skala zur Datenrate schalten Sie mittels [Umschalt]+[L] zwischen linearer und logarithmischer Darstellung um. Beim Wechsel blendet Iftop den jeweils aktivierten Modus oben links kurz ein. Mit [B] bestimmen Sie die Sichtbarkeit der Skala und blenden diese bei Bedarf aus beziehungsweise wieder ein.

Für die Anzeige der aktiven Netzwerkverbindungen schalten Sie mittels [T] zwischen den Darstellungsarten einzeilig, zweizeilig, nur empfangene Pakete und nur gesendete Pakete um. Besonders bei vielen gleichzeitigen Verbindungen erweist sich eine kompakte und dadurch übersichtlichere Darstellung als Vorteil.

Mit einem Druck auf [N] wechseln Sie zwischen der Darstellung von IP-Adressen und der Namensauflösung der IP-Adressen via DNS. Abbildung 2 zeigt eine gemischte Darstellung – ein Teil der IP-Adressen lässt sich hier nicht korrekt auflösen. Außerdem sehen Sie dort die Portnummern, über die die Verbindungen laufen. Mit [P] schalten Sie die entsprechende Darstellung ein und wieder aus. [Umschalt]+[S] begrenzt diese Aktion nur auf die Quellen der Verbindungen ("source"), während [Umschalt]+[D] das gleiche für die Zieladressen ("destination") ermöglicht.

Abbildung 2: Kompakte Darstellung der Verbindungen.

Was bei den Portnummern geht, klappt auch für IP-Adressen beziehungsweise Hostnamen. Mit [S] blenden Sie die Quelladresse der Verbindungen ein beziehungsweise aus, [D] bewirkt das selbe für die Zieladressen.

Filtern und Sortieren

Wie Sie sehen, zeigt sich Iftop sehr flexibel in Bezug auf das Darstellen der von ihm registrierten Pakete. Das gilt gleichermaßen für das Filtern und Sortieren.

Um aus den aktiven Netzwerkverbindungen nur eine Auswahl darzustellen, legen Sie mithilfe eines Musters einen Filter fest. Ein Druck auf [L] (für "limit") öffnet in der obersten Zeile ein Eingabefeld, in dem Sie das Suchmuster ein tragen. Iftop versteht dieses als regulären Ausdruck [3] und zeigt nur solche Verbindungen an, die mit dem Muster übereinstimmen. In Abbildung 3 wurden über den Filter dropbox nur die entsprechenden Verbindungen dieses Netzwerkdienstes herausgefiltert.

Abbildung 3: Filterung der Verbindungen mit Hilfe eines Musters.

Möchten Sie die Ausgabe sortieren, kommt Ihnen Iftop mit zwei Varianten entgegen. Ein Druck auf [<] oder [Umschalt]+[<] sortiert die Darstellung nach Quelle beziehungsweise Ziel, [**1**],[**2**] und [**3**] dagegen entsprechend der Spalte mit dem Zeitintervall.

Aufrufparameter

Iftop akzeptiert beim Programmaufruf eine Reihe von Optionen. Diese decken sich oft mit der bereits oben beschriebenen Tastenbelegung. Für neugierige Netzwerker sind sicher die beiden Optionen -i und -p interessant: Mit -i Interface bestimmen Sie, auf welcher Netzwerkschnittstelle Iftop lauschen soll. Der Schalter -p setzt den sogenannten Promiscuous Mode in Gang und berücksichtigt dementsprechend sämtliche Netzwerkpakete, die an der Schnittstelle vorbeikommen – auch jene, die nicht explizit für das Interface bestimmt sind.

Mit der Option -f lässt sich Iftop noch etwas stärker in die Schranken weisen und erfasst nur ausgewählte Pakete. So filtern Sie beispielsweise mit dem Aufruf

# iftop -i wlan0 -f "dst port 22"

alle SSH-Pakete, die über die Wireless-Schnittstelle /dev/wlan0 laufen. Dabei steht dst hier für Ziel ("destination"), Port 22 dient üblicherweise als SSH-Port.

Die Formulierung des Filterausdrucks entspricht der Schreibweise von Pcap-filter [4] und ermöglicht eine sehr elegante Auswahl der Pakete. Die Tabelle "Pcap-Filter" gibt einen kleinen Überblick zu den entsprechenden Möglichkeiten, die die Neugierde auf mehr wecken.

Pcap-Filter

Filter Beschreibung
dst host 1.2.3.4 Alle Pakete, die an den Rechner mit der IP-Adresse 1.2.3.4 gehen.
src port 22 Alle Pakete, die von Port 22 kommen.
dst portrange 22-33 Alle Pakete, deren Ziel-Port zwischen 22 und 33 liegt.
gateway 1.2.3.5 Alle Pakete, deren Gateway-Adresse 1.2.3.5 lautet.

Fazit

Das Kommandozeilenwerkzeug Iftop erfasst den Datenverkehr auf Netzwerkschnittstellen. Dabei analysiert es, welche Netzwerkverbindungen bestehen und wie viele Datenpakete über die einzelnen Verbindungen laufen. Auf diese Weise kommen Sie schnell dahinter, welche Programme und Dienste welche Bandbreite mit Beschlag belegen und das Netzwerk unter Umständen unnötig auslasten. Dabei helfen nicht zuletzt clevere Paketfilter. 

Infos

[1] Iftop: http://www.ex-parrot.com/~pdw/iftop/

[2] Top & Co.: Harald Zisler, "Kontrollraum", LU 01/2013, S. 82, http://www.linux-community.de/27882

[3] Reguläre Ausdrücke: Frank Hofmann, "Schnipseljagd", LU 09/2011, S. 84, http://www.linux-community.de/24091

[4] Manpage zu Pcap-filter: http://www.manpagez.com/man/7/pcap-filter/

[5] DEB-Paket zu Iftop: http://packages.debian.org/squeeze/iftop

[6] RPMs finden: http://rpmfind.net/

[7] Libpcap: http://www.tcpdump.org/

[8] Libcurses: http://www.gnu.org/software/ncurses/ncurses.html

[] Der Autor bedankt sich bei Axel Beckert für seine kritischen Anmerkungen, Kommentare und Ergänzungen im Vorfeld dieses Artikels.

[] Frank Hofmann (http://www.efho.de/) hat Informatik an der Technischen Universität Chemnitz studiert. Derzeit arbeitet er in Berlin im Büro 2.0, einem Open-Source Experten-Netzwerk, als Dienstleister mit Spezialisierung auf Druck und Satz. Frank ist Mitgründer des Schulungsunternehmens Wizards of FOSS, seit 2008 koordiniert er das Regionaltreffen der Linux User Groups aus der Region Berlin-Brandenburg.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare