1×1 der Netzwerktools

Aus LinuxUser 04/2004

1×1 der Netzwerktools

Der kleine Netzwerker

Vernetzte Rechner bringen nicht nur Arbeitserleichterung, sondern auch Verantwortung mit sich. Denn von nun an sollte man nicht nur über seinen Computer selbst Bescheid wissen, sondern auch darüber, wie er mit der Außenwelt kommuniziert. Hierbei helfen Bordmittel.

Er wirkt wie ein Relikt aus vergangenen Zeiten: der Computer ohne Verbindung zur Außenwelt. Sei es in der Firma oder zu Hause, viele Rechner hängen in einem Netzwerk, egal, ob es sich dabei um ein lokales Netz (LAN) oder das Internet handelt.

Während sich um die Grundanbindung meist noch die Linux-Distribution bei der Installation kümmert, bleibt die weitere Verantwortung am Administrator hängen – auch, wenn der dazu keinerlei Ausbildung genossen hat. Spätestens dann sollte man mehr Wissen darüber anhäufen, was der Rechner so im Netzwerk treibt.

Manchmal fühlt sich der Datentransport sehr langsam an, ein andermal antwortet ein Webserver nicht, oder man will aus Kontrollgründen wissen, welche Daten gerade durch die Leitung fließen. Die gängigen Linux-Distributionen bringen einige Tools mit, mit denen sich all das überprüfen lässt.

Netzwerk-Grundlagen

Dummerweise setzen die meisten davon voraus, dass man weiß, wie ein Computer-Netzwerk überhaupt funktioniert. Grundlage des Internets und vieler lokaler Netze ist TCP/IP, die Kombination aus dem “Transmission Control Protocol” und dem “Internet Protocol”. Diese Protokolle legen fest, wie Rechner im Netz miteinander kommunizieren und Daten austauschen.

Da ein Webbrowser nicht wissen muss, ob die Daten kabellos oder über Glasfaser übertragen werden und es andersrum dem Glasfaserkabel egal ist, ob die transportierten Bits zu HTML-Dateien, MP3s oder Videos gehören, betrachten Netzwerker Computernetze in Schichten. Diese bauen aufeinander, funktionieren ansonsten aber unabhängig voneinander.

Da gibt es zum Beispiel die Anwendungsschicht, die – wie der Name sagt – definiert, wie die tatsächlichen Anwendungen, z. B. der Browser mit dem Webserver oder das Mailprogramm mit dem Mailserver, miteinander “sprechen”. Dieses Wie ist von Anwendung zu Anwendung verschieden, so kommt im Web das “HyperText Transfer Protocol” HTTP zum Einsatz, zum Herunterladen von Dateien oft das “File Transfer Protocol”, zum Arbeiten auf entfernten Rechner die “Secure Shell” SSH, zum E-Mail-Versand das “Simple Mail Transfer Protocol” SMTP, zum E-Mail-Abruf POP3, das “Post Office Protocol (Version 3)”, und die Frage “Welcher Rechnername gehört zu welcher IP-Adresse?” beantwortet der “Domain Name Service” DNS.

Unterhalb der Anwendungsschicht liegt die Transportschicht, die sozusagen Verbindungen zwischen Rechnern etabliert und damit den Austausch der Anwendungsdaten ermöglicht. Hier sorgt TCP für einen zuverlässigen Datenstrom zwischen den beiden Endpunkten (zum Beispiel für die Anwendungsprotokolle HTTP, SSH, POP oder SMTP) und dafür, dass verloren gegangene Pakete neu übertragen werden. Alternativ gibt es das “User Datagram Protocol” UDP, bei dem auch mal Pakete verloren gehen können (zum Beispiel bei Real-Audio-Strömen).

Spannend wird es auf der darunter liegenden Netzwerkschicht, denn die dort arbeitenden Protokolle vermitteln die Daten-Pakete (egal welchen Inhalts) im Netz und finden die besten Wege zum Gegenüber. Jedes Paket enthält deshalb die Adressen von Absender und Empfänger. Auch wenn bei der Übermittlung einer Webseite viele Pakete übertragen werden, müssen sie nicht alle denselben Weg nehmen: Der Adressat trägt selbst dafür Sorge, sie nach dem Empfang richtig zusammen zu setzen. Neben dem so arbeitenden “Internet Protocol” IP gibt es auf der Netzwerkschicht zum Beispiel das “Internet Control Message Protocol” ICMP für Kontrollnachrichten (z. B. Fehlermeldungen), das “Address Resolution Protocol” ARP, das für die Adressumsetzung zwischen IP- und Geräteadressen (MAC-Adresse) sorgt (siehe Seite 28 ff.), und ARPs Gegenstück RARP (“Reverse Address Resolution Protocol”).

Ganz unten finden sich die Netzzugangsprotokolle, die aus Daten elektrische Signale machen und sie so durch Draht oder Luft schicken. Auf dieser Ebene verbindet ein Kabel Netzwerkkarten, beispielsweise über Ethernet. Beim Wireless LAN fällt das Kabel weg, die Bits fießen als elektromagnetische Wellen drahtlos.

Betrachtet man diese Schichten von unten nach oben, wird deutlich, was im Internet passiert: Die Grundlage für TCP/IP stellt die Netzzugangsschicht dar, die es überhaupt ermöglicht, dass Hardware miteinander spricht. Darauf baut die Netzwerkschicht auf, die komplexere Datenpakete von A nach B zu transportiert.

Erkannt wird jeder Netzteilnehmer an seiner IP-Adresse. In der Schicht darüber gewährleistet TCP, dass der Inhalt zehn verschickter Pakete auch beim Gegenüber ankommt. Darauf verlassen sich die Anwendungsprotokolle der obersten Ebene, z. B. HTTP beim Surfen im Web. Ohne das Wissen über diese Schichten, auch Protokollstapel genannt, bringen viele Netzwerktools leider nur recht wenig.

Alles okay?

Bevor man irgendwelche Bewegungen im Netzwerk analysiert, muss der Rechner im Netzwerk funktionieren. Bei der dazu nötigen Konfiguration gehören vor allem IP-Adresse, Subnetzmaske (auch Netzwerkmaske genannt), Broadcast-Adresse und die Adresse des Gateways zu den Fehlerquellen – Begriffe, in die das Glossar auf Seite 28 f. und Kasten 1 auf Seite 30 einführen.

Kurz gefasst ist die eigene IP-Adresse die Voraussetzung, dass der Rechner überhaupt mit anderen Teilnehmern im Netzwerk kommunizieren kann. Die Netzmaske definiert, welcher Teil der Adresse sich auf das Netz und welcher sich auf den Rechner selbst bezieht. Über die Gateway-Adresse gelangen alle für die weite Welt bestimmten Datenpakete in andere Netze.

Abbildung 1: Im Datenwust von "ip addr" finden sich als wichtigste Informationen die aktuelle IP-Adresse und die Netzmaske hinter "inet".

Abbildung 1: Im Datenwust von “ip addr” finden sich als wichtigste Informationen die aktuelle IP-Adresse und die Netzmaske hinter “inet”.

Die aktuellen Einstellungen liefert der Befehl ip; auf älteren Systemen gibt es häufig nur ifconfig und route[1], die dieselben Informationen ausgeben, wenn auch in anderer Form. Behauptet die Shell, diese Befehle nicht zu finden, liegt das oft daran, dass sie im Verzeichnis /sbin installiert sind, das meist nicht im Programmsuchpfad liegt. Dann hilft der Aufruf mit komplettem Pfad (z. B. /sbin/ip) weiter.

Mit dem Argument addr spuckt ip die Einstellungen der Netzwerkkarte aus. Relevant für die erste Karte im System ist hierbei die Zeile, in der eth0 am Ende steht (eth0 steht für die erste Ethernet-Karte, eth1 für eine zweite – zum Beispiel fürs WLAN – usw.) Dort findet man die IP-Adresse des Rechners (in Abbildung 1192.168.1.245), die Netzmaske (/24, siehe Kasten 1 Seite 30), die Broadcast-Adresse (192.168.1.255) und eben den Namen der Netzwerkschnittstelle, eth0.

Abbildung 2: "ip route" ordnet die Informationen übersichtlicher.

Abbildung 2: “ip route” ordnet die Informationen übersichtlicher.

Einfacher erschließt sich die Ausgabe des Befehls ip route (Abbildung 2): Hier steht in der ersten Zeile das Netz (im Beispiel die Netzwerkadresse 192.168.1.0 samt Netzmaske /24), die Netzwerkschnittstelle und am Ende die Datenquelle (src für “source”), also die IP-Adresse (192.168.1.245). In der zweiten Zeile folgt das Default-Gateway 192.168.1.1 für den Weg nach draußen.

Fehlen hier wesentliche Informationen wie IP-Adresse oder Gateway, erklärt das möglicherweise, warum der Rechner im Netz nicht richtig arbeitet. Dann ruft man das Konfigurationstool der jeweiligen Distribution (z. B. Yast bei Suse) auf und überprüft noch einmal alle Einstellungen.

Ping-Pong

Einer der einfachsten, aber gleichzeitig praktischsten Befehle für die Netzwerk-Analyse heißt ping. Er schickt ICMP-Datenpakete vom eigenen Rechner an die Gegenstelle und zeigt an, wie lange deren Antwort auf sich warten lässt – sofern sie überhaupt antwortet. Am Ende zeigt Ping eine Statistik an, wie viele Pakete es losgeschickt hat (in Abbildung 3 sind es fünf), wie viele Antworten zurückkamen (ebenfalls fünf) und wie lange dies gedauert hat (4002 Millisekunden). Falls Pakete verloren gingen, führt Ping das unter dem Punkt packet loss an. Erreicht es die Gegenstelle gar nicht, passiert erst einmal nichts: Ping wartet zunächst eine Weile ab.

Abbildung 3: Der Rechner 192.168.1.1 hat alle fünf Pings beantwortet.

Abbildung 3: Der Rechner 192.168.1.1 hat alle fünf Pings beantwortet.

ping rechnername bombardiert die Gegenstelle so lange, bis man [Strg-c] drückt. Alternativ sendet ping -c 10 rechner genau zehn Pings und beendet sich anschließend automatisch.

Der Weg der Pakete

Abbildung 5: "traceroute" zeigt den Weg zu "spiegel.de".

Abbildung 5: “traceroute” zeigt den Weg zu “spiegel.de”.

Während ping nur mitteilt, ob die Gegenstelle antwortet, zeigt traceroute (meist: /usr/sbin/traceroute) an, welchen Weg die Datenpakete zum Zielrechner zurücklegen (Abbildung 5). Gibt es unterwegs Probleme, merken Sternchen (***) dies an. Sie können aber auch bedeuten, dass eine Firewall derartige IP-Pakete nicht durchlässt. Die Anzeige der Rechnernamen deaktiviert übrigens die Option -n.

Abbildung 6: "mtr" kombiniert die Aussagen von "traceroute" und "ping".

Abbildung 6: “mtr” kombiniert die Aussagen von “traceroute” und “ping”.

Übersichtlicher sieht das bei mtr Zielrechner (oft /usr/sbin/mtr Zielrechner) aus (Abbildung 6), denn dort erfährt man, solange man nicht [q] drückt, genau, wo die Datenpakete hängenbleiben. Für jeden einzelnen Hüpfer auf dem Weg zum Ziel ermittelt das Tool, was mit den Datenpaketen passiert; mtr kombiniert damit ping und traceroute in einem. So verlangt

mtr -c 10 --report Zielrechner

dass sich mtr nach zehn Pings automatisch beendet und seinen Bericht abgibt.

Die Spalte Hostname zeigt an, wo sich das Datenpaket gerade befindet, Loss gibt die Verluste in Prozent an, Rcv und Snt informieren darüber, wieviel Datenpakete empfangen und gesendet wurden, und die Spalten BEst, Avg und Worst zeigen an, wie lange die Datenpakete im besten Fall, durchschnittlich und im schlimmsten Fall brauchen.

Wenn es mal ganz genau sein soll …

… kommt tcpdump, das Schweizer Taschenmesser unter den Tools zur Netzwerk-Analyse, zum Einsatz. Im Regelfall gehört es nicht zur Standardinstallation, steht aber für die meisten Distributionen als fertiges Paket zur Verfügung. Alternativ kann man das Source-Paket [2] zusammen mit der dazu nötigen libpcap selbst kompilieren. Um das Programm zu benutzen, braucht man Administrator-Rechte, weil es die Netzwerkkarte in einen speziellen Modus versetzt, in dem sie alle Pakete liest, die durchs lokale Netz fließen. Das führt dazu, dass der Nutzer z. B. auch fremde Passwörter mitlesen kann.

Der einfache tcpdump-Aufruf gibt einfach alles wieder, was an Datenpaketen gerade über die Netzwerkkarte läuft:

11:56:27.833598 192.168.1.245.ssh > 192.168.1.20.39258: P 1392512:1392720(208) ack 1201 win 9120 <nop,nop,timestamp 2599771999 1711932971> (DF) [tos 0x10]

Hier sieht man, dass der Rechner 192.168.1.245 ein ssh-Datenpaket zum Rechner 192.168.1.20 verschickt hat. Schränkt man die Anzeige mit

tcpdump -i eth0 port 80

ein, sieht man sofort alle Daten für den Port 80, die Datenentgegennahmestelle der meisten Webserver. Die Option -i steht dabei für die Netzwerkschnittstelle (“Interface”), an der das Programm lauschen soll. tcpdump host Zielrechner hingegen zeigt nur den Netzwerkverkehr mit dem Zielrechner an.

Wo laufen sie denn?

Damit man vor lauter Datenpaketen nicht den Überblick verliert, empfiehlt sich der Einsatz spezieller (und in der Regel nachzuinstallierender) Hilfsmittel wie iptraf. Dieses Tool zeigt u. a. an, was genau auf der Netzwerkkarte passiert, welche Protokolle genutzt werden und mit welchen anderen Rechnern der eigene kommuniziert. [q][Enter] beendet es.

Abbildung 7: Auch ohne separate Konfiguration und Filter ist "iptraf" nützlich.

Abbildung 7: Auch ohne separate Konfiguration und Filter ist “iptraf” nützlich.

Abbildung 8: Wieviele Pakete gehen von wo nach wo?

Abbildung 8: Wieviele Pakete gehen von wo nach wo?

Wählt man im Hauptmenü (Abbildung 7) den Punkt IP Traffic Monitor (Abbildung 8), bekommt man einen genauen Überblick über die ein- und ausgehenden Daten und kann erkennen, wo gerade Last anfällt.

Die Detailed Interface Statistics (Abbildung 9) hingegen zeigen nicht an, mit welchen anderen Rechnern Daten ausgetauscht werden, sondern was an Datenverkehrsaufkommen auf die jeweiligen Protokolle entfällt. Hier sieht man ganz genau, wie es mit dem Durchsatz ausschaut und wo etwas im Argen liegt. Beispielsweise sollte es verwundern, wenn weit mehr Daten rausgehen als reinkommen; das deutet darauf hin, dass jemand vom eigenen Rechner etwas herunterlädt.

Abbildung 9: "iptraf" errechnet auch detaillierte Netzwerkstatistiken.

Abbildung 9: “iptraf” errechnet auch detaillierte Netzwerkstatistiken.

Keine Frage: Zu iptraf wie auch zu den anderen genannten Tools gäbe es noch viel zu erzählen. Zusammen mit weiteren Programmen zur Netzwerk-Analyse, die aktuelle Distributionen nicht von sich aus mitliefern, kann man gut und gerne ganze Bücher füllen. Doch wer sich in diese Richtung weiterbilden will, kommt vorher nicht darum herum, sich eine Menge tiefergehendes Netzwerk-Wissen anzueignen.

Der Autor

Nico Lumma ist Leiter Technik bei der orangemedia.de-GmbH.

Glossar

DNS

DNS-Server führen Datenbanken, mit denen sie u. a. IP-Adressen Internet-Namen zuordnen (und umgekehrt). Mit deren Hilfe beantworten sie Anfragen, die Browser u. a. Internet-Anwendungen ohne Zutun des Users im Hintergrund stellen. Tippt er beispielsweise “www.google.com” ein, läuft eine solche Anfrage, die als Ergebnis die Adresse “216.239.41.99” zurückgibt. Zu der nimmt der Browser schließlich Kontakt auf.

Infos

[1] ifconfig und route: Hans-Georg Eßer, “Netzwerk in der Shell”, LinuxUser 03/2002, S. 30 f., http://www.linux-user.de/Ausgabe/2002/03/030-konsole/konsole.html

[2] tcpdump: http://www.tcpdump.org/

LinuxUser 04/2004 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben