claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 08/2005   »   Ausgabe bestellen

Exakte Diagnose

von Carsten Schnober


Linux wurde als Netzwerksystem entwickelt. Kein Wunder, dass es eine ganze Reihe hilfreicher Werkzeuge liefert, die die Verbindung detailliert ausleuchten.

In kargen Räumen bei schlechtem Licht kryptische Befehle in die Tastatur einzuhämmern, davon träumt jeder dramaturgisch ambitionierte Netzwerk-Hacker. In der Realität setzen die klassischen Netzwerkdiagnosewerkzeuge jenseits der grafischen Oberfläche jedoch keine magischen Fähigkeiten voraus und bieten ganz praktische Vorteile.

Das schmälert zwar die Bewunderung durch eventuelle Zuschauer, erhöht aber zugleich das Verständnis und sorgt für den Überblick über die Internet-Verbindung oder das eigene Heim-Netzwerk. Die noch aus den alten Tagen der Unix-Betriebssysteme stammenden und immer noch nützlichen Spezialwerkzeuge ifconfig, host, route, ping, traceroute und netstat untersuchen jeden Aspekt des Netzwerks. So liefern sie bei Problemen Hinweise auf die Ursache.

Die Hardware

Grundlage eines Netzwerks bildet die Hardware, über die Verbindung zustande kommt. Bei lokalen, verkabelten Netzen (LAN, "Local Area Network") dient dazu der Ethernet-Standard, im Rechner steckt dann eine Ethernet-Karte. Eine inzwischen gängige Alternative sind Funkverbindungen via WLAN ("Wireless Local Area Network"). Zur Einwahl ins Internet kommen analoge und DSL-Modems oder ISDN-Karten zum Einsatz. Ob es sich um externe oder eingebaute Geräte handelt, spielt für die Netzwerkkonfiguration keine Rolle. Traditionell steht der Ausdruck Netzwerk für ein lokales Netz, deshalb fallen unter die Kategorie Netzwerkkarten häufig nur Ethernet- und WLAN-Geräte, aber keine Modems.

Die Netzwerkgeräte spricht Linux über ihre Gerätenamen an, die sich aus dem Verbindungstyp ergeben. Die erste Ethernet-Karte trägt den Namen eth0, weitere nummeriert das Betriebssystem mit fortlaufenden Ziffern, also eth1 usw. Funknetzwerkkarten heißen entsprechend wlan0. Geräte, die sich ins Internet einwählen, identifizieren sich bei der Gegenstelle über das zu diesem Zweck entwickelte Point-to-Point-Protokoll und heißen deshalb ppp0. Die Ausnahme bilden ISDN-Karten; sie heißen im Linux-Netzwerksystem ippp0.

Das Kommando ifconfig in der Konsole gibt alle aktiven Netzwerkgeräten und ihre Konfigurationsdaten aus. Bei einigen Distributionen müssen Sie den genauen Verzeichnispfad angeben, wenn Sie ohne Root-Rechte arbeiten, also /sbin/ifconfig. Hängen Sie wie im Listing Die Ausgabe von ifconfig den Namen eines Geräts an, erhalten Sie nur über dieses Auskunft. Mit ifconfig -a sehen Sie auch die derzeit inaktiven Karten.

Die Ausgabe von ifconfig
$ /sbin/ifconfig eth0
eth0  Protokoll:Ethernet  Hardware Adresse 00:11:D8:BC:04:AA
      inet Adresse:192.168.1.242  Bcast:192.168.1.255  Maske:255.255.255.0
      inet6 Adresse: fe80::211:d8ff:febc:4aa/64 Gültigkeitsbereich:Verbindung
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:34982 errors:0 dropped:0 overruns:0 frame:0
      TX packets:3907 errors:0 dropped:0 overruns:0 carrier:0
      Kollisionen:0 Sendewarteschlangenlänge:1000
      RX bytes:5765177 (5.4 MiB)  TX bytes:1719700 (1.6 MiB)

In der ifconfig-Ausgabe sehen Sie in der ersten Zeile hinter dem Gerätenamen das Protokoll und im Falle von LAN- oder WLAN-Karten die Hardware-spezifische MAC-Adresse (Media Access Control). Darüber identifiziert sich jedes Netzwerkgerät eindeutig, nach außen hin kann der Anwender diesen Eintrag jedoch manipulieren.

In der nächsten Zeile erfahren Sie die IP-Adresse des Geräts (siehe Kasten IP-Adressen und das Werkzeug host). Bei lokalen Netzen folgen unter Bcast Informationen über den verwendeten Netzwerkteilbereich. Point-to-Point-Geräte, die sich ins Internet einwählen, notieren stattdessen unter P-t-P die Adresse der Gegenseite.

IP-Adressen und das Werkzeug host

Jeder Computer erhält über das im Internet verwendete TCP/IP-Protokoll eine numerische so genannte Adresse, die IP. Sie besteht aus vier Stellen zwischen 0 und 254. Darüber identifizieren sich die Rechner und kommunizieren miteinander. Dass Internet-Benutzer statt diesen Nummern leichter einprägsame Namen wie www.easylinux.de verwenden können, ermöglicht das Domain Name System. Es weist allen Servern jeder registrierten Domain, z. B. easylinux.de, eine IP-Adresse zu. Zahlreiche Name-Server auf der ganzen Welt speichern diese riesigen Datenbanken jeweils zu Teilen. Gibt ein Benutzer beispielsweise im Web-Browser www.easylinux.de ein, fragt das System bei einem Name-Server nach der zugehörigen IP und leitet den Web-Browser an die richtige Adresse.

Auch für Name-Server-Abfragen stellt Linux ein Konsolenwerkzeug bereit. Der Befehl host www.easylinux.de zeigt die zu diesem Server passende IP-Adresse aus. Das funktioniert auch umgekehrt: Geben Sie als host-Parameter eine IP-Adresse ein, erfahren Sie den Server-Namen. Allerdings erhalten Sie in dieser Richtung häufig keine Antwort, da nicht jede IP-Adresse einen Namen trägt.

Neben den realen Netzwerkgeräten taucht in der ifconfig-Ausgabe ein Eintrag namens lo auf. Unter Protokoll steht hier lediglich Lokale Schleife, denn es handelt sich um ein virtuelles Gerät, das ein rechnerinternes Netzwerk aufbaut. So erreichen Programme auf dem eigenen Rechner laufende Dienste über die IP-Adresse 127.0.0.1.

Routenplaner

Wichtigste Aufgabe des Netzwerksystems ist es, den Netzwerkverkehr in geordnete Bahnen zu lenken. Das Kommando route gibt die so genannte Routing-Tabelle aus oder verändert sie. Diese Tabelle legt fest, über welche Schnittstelle, also das Netzwerkgerät, Daten ein- und ausgehen sollen. Sie sortiert dabei nach der IP-Adresse des Verbindungspartners. So spricht das System verschiedene Netzabschnitte über unterschiedliche Schnittstellen an; beispielsweise das eigene Heim-Netz über wlan0 und das Internet über das Modem ppp0. Ohne Parameter aufgerufen, zeigt route die derzeitige Konfiguration (siehe Listing Die Ausgabe von route).

Die Ausgabe von route
$ /sbin/route
Kernel IP Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
192.168.1.0     *               255.255.255.0   U     0      0        0 eth0
default         gateway         0.0.0.0         UG    0      0        0 eth0

Das Feld Iface am Ende jeder Zeile der route-Ausgabe beschreibt das für die unter Ziel stehenden Adressengruppen zu benutzende Netzwerkgerät. In der Beispielausgabe legt die erste Zeile fest, dass die Kommunikation mit allen IP-Adressen, die mit 192.168.1 beginnen, über die Ethernet-Karte eth0 verläuft. Der Spezialeintrag default gilt für alle nicht eigens definierten Adressengruppen. Das Beispiel leitet auch sie über eth0 weiter.

Ein Router ist ein Rechner, der zwischen zwei Netzen vermittelt. Gewöhnlich kommen solche Geräte -- in Heimnetzwerken handelt es sich dabei meist um kleine Boxen -- zum Einsatz, um mehrere Rechner eines internen Netzes mit dem Internet zu verbinden. Die Adresse des Routers steht in der Routing-Tabelle im gleichnamigen Feld. Dadurch weiß das Betriebssystem, dass es zu einem hinter dem Router liegenden Ziel keine direkte Verbindung aufbauen kann.

Bitte antworten!

Wenn eine Seite im Browser nicht erscheint, zeigt ein einfaches Werkzeug, ob überhaupt eine Verbindung besteht. Das Kommando ping (siehe Kasten Ping-Geschichte) verschickt ein Paket, das nichts weiter enthält als die Bitte um Antwort. Der so kontaktierte Rechner gibt ein Netzwerkpaket zurück, und ping zeigt die zwischen Anfrage und Antwort (siehe Listing Die Ausgabe von ping) verstrichene Zeit an.

Ping-Geschichte

Verschiedene Legenden ranken um die Herkunft Namens ping. Seit 1983 existiert das Unix-Werkzeug, inzwischen gehört es auch zur Standardausstattung der Windows-Kommandozeile. Zeit genug, einen Mythos entstehen zu lassen.

Freunde nüchterner Technik kennen PING als Akronym für "Packet InterNet Grouper". Wer es abenteuerlicher mag, zieht die mittlerweile als quasi-offiziell geltende Erklärung heran: Der im Jahr 2000 verstorbene ping-Erfinder Michael John Muuss nannte auf seiner Homepage die regelmäßig ausgesandten Geräusche eines Radarsystems als Inspiration für den Programmnamen.

Im auch schon vor fast zwei Jahrzehnten entstandenen Internet-Chat IRC gibt es das Ping-Kommando ebenfalls. Hier erhält ein Chatter auf ein PING die Antwort PONG -- die Tischtennisassoziation stellt die sportliche Variante der Entstehungslegende dar.

Die Ausgabe von ping
$ ping www.kde.org
PING www.kde.org (80.232.38.131) 56(84) bytes of data.
64 bytes from www.kde.org (80.232.38.131): icmp_seq=1 ttl=50 time=246 ms
64 bytes from www.kde.org (80.232.38.131): icmp_seq=2 ttl=50 time=188 ms
64 bytes from www.kde.org (80.232.38.131): icmp_seq=3 ttl=50 time=311 ms
64 bytes from www.kde.org (80.232.38.131): icmp_seq=4 ttl=50 time=237 ms

--- www.kde.org ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 5209ms
rtt min/avg/max/mdev = 188.698/245.900/311.829/43.867 ms

In der ersten Zeile der Ausgabe nennt ping die zum kontaktierten Server gehörige IP-Adresse. Danach folgt für jedes geschickte Paket eine Auswertung der Antwort. Im letzten Feld time steht die bis zur Rückmeldung verstrichene Zeit in Millisekunden. Daraus lässt sich die Reaktionszeit des Servers ablesen -- eine hohe Zahl erklärt beispielsweise einen trägen Zugriff auf einen Web-Server. Echtzeitanwendungen wie Online-Spiele setzen eine schnelle Antwortzeit für den unterbrechungsfreien Verlauf voraus.

Ohne nähere Angaben schickt ping so lange Pakete, bis der Benutzer es mit [Strg-C] abbricht. Dann gibt es eine zweizeilige Auswertung aus: In der ersten stehen die Anzahl der versandten (packets transmitted) und zurückerhaltenen Pakete (received), der prozentuale Anteil der nicht beantworteten Anfragen (packet loss) und die Dauer des ping-Vorgangs (time). Gewöhnlich gehen keine oder nur sehr wenige Pakete verloren, eine hohe Paketverlustrate lässt auf eine gestörte Verbindung schließen. Die zweite Zeile liefert die schnellste, die durchschnittliche und die langsamste Antwort und schließlich die Standardabweichung vom Durchschnitt.

Möchten Sie mit ping eine feste Paketanzahl schicken, legen Sie sie über den Parameter -c fest: ping -c 10 www.kde.org sendet genau zehn Pakete an den Server www.kde.org und gibt danach die Abschlussstatistik aus. So erhalten Sie vergleichbare Zahlen für verschiedene Verbindungen.

Antwortet ein Rechner, ob im eigenen Netz oder im Internet, nicht auf eine ping-Anfrage, liegt an irgendeiner Stelle in der Netzwerkverbindung ein Fehler vor. Bei Internet-Rechnern muss man bei derartigen Rückschlüssen aber berücksichtigen, dass ein Computer keineswegs gezwungen ist, auf ping-Anfragen zu antworten. Viele Server ignorieren sie, um Bandbreite zu sparen oder um potentielle Angreifer nicht auf ihre Existenz hinzuweisen.

Spuren lesen

Den Weg, den ein Datenpaket von Ihrem PC zu einem anderen im Netz zurücklegt, verrät er Befehl traceroute. Es zeigt alle Zwischenstationen mit ihrer IP-Adresse und den durch ping ermittelten Antwortzeiten. Der Aufruf erfolgt auf der Kommandozeile beispielsweise mittels traceroute www.easy-linux.de.

Übersichtlicher erfüllt dieselbe Funktion das Programm "My Traceroute", das dazugehörige Konsolenkommando heißt mtr. Es liegt allen Distributionen bei, bei einigen gehört das Paket mtr aber nicht zur Standardinstallation. Gibt es den Befehl mtr auf Ihrem System nicht, spielen Sie es über den Paket-Manager ein. Der Aufruf erfolgt wie der von traceroute, das Listing Die Ausgabe von traceroute zeigt das Resultat von mtr www.kde.org.

Listing 4: Die Ausgabe von My traceroute
My traceroute  [v0.67]
computer (0.0.0.0)(tos=0x0 psize=64 bitpattern=0x00)        Mon Jun  6 15:22:44 2005
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                          Packets               Pings
 Host                                   Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. gateway.test.de                      0.0%   511    0.4   0.3   0.3   4.1   0.2
 2. welcome.test.de                      0.0%   511    1.1   1.1   1.1   6.9   0.3
 3. rt7.muc3.m-online.net                0.2%   511    5.6  47.1   5.3 285.3  59.7
 4. GW-SF-OSR76-15-S1-1-317.nefkom.de    0.4%   511   18.6  57.1   8.3 304.9  67.5
 5. NEFkom.NUE-1-eth120.de.lambdanet.ne  0.2%   511    8.7  56.1   8.3 412.5  65.9
 6. FRA-2-eth100.de.lambdanet.net        0.2%   511   12.7  57.8  12.2 315.1  65.2
 7. ge1-1.1000M.ffm2nxg1.ip.tele.dk      0.2%   511   14.7  59.9  14.3 333.7  65.3
 8. pos0-0.2488M.ffm2nxg2.ip.tele.dk     0.4%   511   13.2  65.1  12.7 357.0  69.7
 9. so-1-3-0.2488M.albnxu1.ip.tele.dk    0.2%   511   37.2  85.7  36.8 335.2  65.5
10. pos8-0.2488M.albnxg1.ip.tele.dk      0.8%   511   36.5  81.4  35.8 328.1  62.4
11. pos0-0.2488M.oslo1nxg1.ip.tele.dk    0.0%   511   46.3  90.1  45.8 320.4  61.5
12. pos1-1.622M.osl-nyd-cr1.ip.teledanm  0.0%   511   56.3  91.7  45.8 392.1  65.0
13. pos1-0.622M.noa1nxg2.ip.tele.dk      0.6%   511   46.1  86.3  45.3 333.4  58.7
14. osl-hmg-sw4.ip.tdcnorge.no           0.2%   511   95.1  90.0  46.2 342.3  60.5
15. knoll.linpro.no                      0.0%   511  150.7  88.3  46.3 324.2  58.9
16. blindemann.oslo.norway.trolltech.ne  0.0%   510  155.7  99.9  47.4 400.9  60.2
17. www.kde.org                          0.0%   510  141.9 103.0  47.3 391.8  61.7

Auch mtr läuft ohne anderweite Angaben so lange, bis der Benutzer es unterbricht. Es ermittelt zunächst alle Stationen, die der Datenverkehr zwischen dem eigenen und dem Ziel-Rechner passiert. Danach verwendet es ping, um von jeder eine Statistik über die Erreichbarkeit zu erstellen. Die Spalte Loss% führt die Zahl der verlorengegangenen Pakete auf, die Gesamtanzahl steht in der nächsten Spalte Snt.

Last gibt die Reaktionszeit beim letzten verschickten Paket an, dahinter folgen die von ping bekannten Werte: durchschnittliche, schnellste und langsamste Reaktion und die Standardabweichung.

My Traceroute kombiniert die Fähigkeiten von ping und traceroute. Es erkundet so, welche Zwischenstation eine langsame Verbindung verursacht. Auch wenn ein Internet-Benutzer meist nichts daran ändern kann, dass irgendein außerhalb seines Einflussbereiches liegender Server zögernd reagiert hilft die Information, die Störung einzuordnen.

Der Alleskönner

Einen Überblick über alle Netzwerkdaten verschafft das Werkzeug netstat. Ohne Parameter gibt es eine Liste der so genannten Sockets aus. Dabei handelt es sich um spezielle Dateien, über die Anwendungen miteinander kommunizieren, gewöhnlich ein Server mit seinen Clients. In der ersten Spalte steht das Protokoll; hierbei sind die zahlreichen mit unix gekennzeichneten Sockets für das Netzwerk uninteressant, da sie lediglich der internen Kommunikation dienen.

Die Ausgabe von netstat verfeinern deshalb zahlreiche Kommandozeilenparametern. Zunächst reduziert sie der Aufruf netstat -t auf die für das Internet relevanten Sockets des Protokolls TCP/IP. Gewöhnlich steht jede hier angezeigte Zeile für eine bestehende Netzverbindung. Diese können jedoch auch lediglich lokal stattfinden, wenn eine Anwendung mit einem auf dem gleichen Rechner laufenden Server-Programm kommuniziert.

Der Aufruf netstat -l zeigt, auf welche Verbindungstypen der Rechner wartet, also dafür einen Server-Dienst bereitstellt. Kombiniert mit -t zeigt das Kommando wiederum nur für das Internet relevante Anteile: netstat -l -t (siehe Listing Die Ausgabe von netstat -l -t).

Die Ausgabe von netstat -l -t
$ netstat -t -l
Aktive Internet-Verbindungen (Nur Server)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 *:netbios-ssn           *:*                     LISTEN
tcp        0      0 *:5900                  *:*                     LISTEN
tcp        0      0 *:x11                   *:*                     LISTEN
tcp        0      0 localhost.localdoma:ipp *:*                     LISTEN
tcp        0      0 localhost.localdom:smtp *:*                     LISTEN
tcp        0      0 localhost.localdom:6010 *:*                     LISTEN
tcp        0      0 localhost.localdom:6011 *:*                     LISTEN
tcp        0      0 *:microsoft-ds          *:*                     LISTEN
tcp6       0      0 *:x11                   *:*                     LISTEN
tcp6       0      0 *:ssh                   *:*                     LISTEN
tcp6       0      0 ip6-localhost:smtp      *:*                     LISTEN
tcp6       0      0 ip6-localhost:6010      *:*                     LISTEN
tcp6       0      0 ip6-localhost:6011      *:*                     LISTEN

In der Ausgabe steht jede Zeile für einen angebotenen Server-Dienst. Die Spalte Local Address gibt hinter dem Doppelpunkt den Netzwerk-Port -- gerne mit der Hausnummer verglichen -- oder, falls bekannt, den Namen des Dienstes aus. Der Eintrag vor dem Doppelpunkt beschreibt die Adressen, von denen aus fremde Rechner auf den jeweiligen Dienst zugreifen dürfen. Ein Stern bedeutet, dass der Dienst keiner derartigen Einschränkung unterliegt. Steht dort ein einzelner Rechner oder eine Internet-Domain, können nur diese Netzwerkteilnehmer den Server-Dienst nutzen. Häufig wird hier der Name des eigenen Systems (localhost) aufgeführt, um den Zugriff aus dem Netz komplett zu unterbinden.

netstat behält die Netzwerkkonfiguration bei Bedarf dauerhaft im Auge. Dazu kombinieren Sie den Parameter -c mit einem beliebigen netstat-Aufruf. Das Werkzeug liefert auf Wunsch auch die meisten Informationen der oben angeführten Werkzeuge: netstat -r zeigt die Routing-Tabelle, netstat -i die Netzwerkgeräte. Das Kommando netstat -s fasst die Verbindungsinformationen zusammen.

Gezielte Analyse

Die vorgestellten Kommandozeilenwerkzeuge diagnostizieren bei Netzwerkstörungen gezielt jeden Teilaspekt der Verbindung. Damit arbeiten Sie sich Schritt für Schritt zur Ursache vor. Die gesammelten Informationen helfen, sie zu beheben. So finden Sie möglicherweise heraus, ob es sich bei einer nicht funktionierenden internen oder Internet-Verbindung um ein Problem mit der Anwendung, der Systemkonfiguration, der Namensauflösung per DNS oder eines der Gegenseite handelt. (csc)

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2017 COMPUTEC MEDIA GmbH | Last modified: 2007-04-05 11:10

Nutzungsbasierte Onlinewerbung

[Linux-Magazin] [LinuxUser] [Linux-Community] [Admin-Magazin] [Ubuntu User] [Smart Developer] [Linux Events] [Linux Magazine] [Ubuntu User] [Admin Magazine] [Smart Developer] [Linux Magazine Poland] [Linux Community Poland] [Linux Magazine Brasil] [Linux Magazine Spain] [Linux Technical Review]