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

Netzwerk-Troubleshooting

Fischen im Netz

von Elisabeth Bauer


Wem gehört diese Domain? Welche Rechner passieren meine E-Mails auf dem Weg vom Mail-Server? Mit den Netzwerk-Tools der Linux-Shell finden Sie es heraus.

"Es ist ein Fehler aufgetreten," sagte die Anwendung und beendete sich. Mit solch rigider Informationspolitik lassen grafische Programme den Anwender oft im Regen stehen. Glücklich der, der in einer solchen Situation die richtigen Kommandozeilen-Tools kennt, mit denen er herausfindet, was tatsächlich das Problem ist. Zum Thema Netzwerk bietet die Shell einen reichen Fundus nützlicher kleiner Programme. Dieser Artikel stellt die wichtigsten vor.

Ping

Eines der einfachsten Kommandos ist ping. Mit ihm prüfen Sie, ob ein Rechner erreichbar ist, oder ganz generell, ob Ihr Computer andere Rechner im Internet oder im Heimnetz ansprechen kann. Sie rufen es entweder mit dem Rechnernamen oder einer IP-Adresse auf.Zum Test, ob Ihre Internet-Einstellungen korrekt eingerichtet sind, wählen Sie eine beliebige Adresse im Netz, zum Beispiel

ping google.com

ping schickt so genannte ICMP-Pakete an die angegebene Adresse, hier google.com. Sofern dort keine Firewall installiert ist, die die Pakete blockt, antwortet der betreffende Rechner ebenfalls mit ICMP-Paketen (Abbildungen 1 und 2). Im Terminal erhalten Sie als Ausgabe auch die Antwortzeiten -- so prüfen Sie, wie schnell die Verbindung zum anderen Rechner ist. Ist das Kommando wie in Abbildung 1 erfolgreich, brechen Sie es mit [Strg-C] ab -- ansonsten schickt ping immer weiter Pakete.

Schlägt ping fehl, heißt das jedoch noch nicht, dass keine Internet-Verbindung besteht. Auf der Gegenseite kann eine Firewall installiert sein, die keine ICMP-Pakete durchlässt, oder die Namensauflösung -- die Umwandlung des Domain-Namens in die richtige IP-Adresse -- schlägt fehl.

Das überprüfen Sie, indem Sie ping mit einer IP-Adresse aufrufen. Auch um einen Computer im Heimnetz anzusprechen, benutzen Sie dessen IP-Adresse, je nach Konfiguration haben Sie wahrscheinlich Adressen der Form 192.168.x.x oder 10.x.x.x vergeben.

Abb. 1: Der Befehl "ping" prüft, ob ein Rechner erreichbar ist.

Abb. 2: Kann "ping" den angegebenen Namen nicht auflösen, d.h. ihm keine IP-Adresse zuordnen, gibt es "unknown host" (unbekannter Rechner) zurück. Einen nicht erreichbaren Rechner meldet ping mit "Destination Host Unreachable".

Weg verfolgen

ping testet die Erreichbarkeit eines Servers -- es verrät jedoch nichts darüber, welchen Weg die Datenpakete dabei durchs Netz nehmen. Wenn Sie surfen, verbindet sich Ihr Rechner ja in der Regel nicht direkt mit dem Zielrechner, sondern die Anfragen werden über zahlreiche Zwischenstationen -- so genannte Router -- weitergeleitet, bis sie am Ziel ankommen. Auch die Daten, die der Server schickt, laufen wieder über viele Rechner, bis sie bei Ihnen im Browser landen. Mit dem Befehl traceroute, den Sie wie ping mit einer IP-Adresse oder einem Domain-Namen aufrufen, verfolgen Sie diesen Weg durchs Netz.

Unter Mandrake Linux müssen Sie traceroute nachinstallieren. Starten Sie dazu RPMDrake über Einstellungen / Paketierung / Software installieren im K-Menü und geben Sie im Suchfeld traceroute ein. Markieren Sie das gefundene, gleichnamige Paket und installieren es. Suse Linux liefert das Tool überhaupt nicht mit. Installieren Sie stattdessen über YaST das Programm mtr, das Sie mit der gleichen Syntax wie traceroute aufrufen -- in diesem Fall jedoch als Root eingeloggt.

Um seine Aufgabe zu erfüllen, bedient sich traceroute eines Tricks: Wie ping schickt es kleine Testpakete an den Ziel-Server, versieht diese aber jeweils mit einem unterschiedlichen Haltbarkeitsdatum. Jedes Paket hat eine so genannte "Time to live" (TTL) -- erhält ein Rechner ein Paket mit abgelaufenem Haltbarkeitsdatum, schickt er eine Fehlermeldung an den Ursprungsrechner zurück und wirft das Paket weg, statt es ans Ziel weiterzuleiten. Ist das Paket noch gültig, verringert er den Wert der TTL um 1 und reicht es weiter. traceroute schickt nun Pakete mit aufsteigender TLL los, sammelt die Fehlermeldungen ein und zeichnet daraus den Weg auf (Abbildung 3). Ein Paket mit TLL 3 kommt zum Beispiel bis zum dritten Rechner auf dem Weg, dann ist seine Lebenszeit abgelaufen, und der Rechner schickt eine Fehlermeldung, das Paket 4 kommt einen Rechner weiter und so fort bis zu seinem Ziel.

Das klappt nicht immer problemlos -- stößt traceroute zum Beispiel auf einen Rechner mit Firewall, die die Testpakete blockt, erhalten Sie in der Ausgabe nur drei Sternchen. Manchmal gehen Pakete auch einfach verloren, traceroute schickt deshalb an jeden Rechner gleich drei Pakete. Hinter jeder Adresse stehen daher drei verschiedene Antwortzeiten, Sternchen zeigen an, dass ein Paket nicht angekommen ist. Mit [Strg-C] brechen Sie den Befehl ab, wenn Sie sehen, dass traceroute sich an Firewalls den Kopf anrennt.

Abb. 3: "traceroute" zeigt, welche Stationen auf dem Weg zum abgefragten Rechner -- hier der Server denic.de -- liegen.

Namensdienst

Der so genannte DNS (Domain Name Service) ist dafür zuständig, die menschenfreundlichen Domain-Namen in für den Computer verwertbare IP-Adressen umzuwandeln. In der Regel erledigt Linux das automatisch für Sie, wenn Sie etwa im Browser eine Adresse eingeben. Manchmal ist es jedoch nötig, selbst zu einem Domain-Namen die IP-Adresse herauszufinden. Dafür bietet Linux gleich mehrere Befehle an: nslookup, dig und host. Alle drei rufen Sie mit dem gewünschten Domain-Namen auf (Abbildung 4), zum Beispiel

host easylinux.de

Wenn Sie umgekehrt nur eine IP-Adresse haben und herausfinden möchten, welche Domain sich dahinter verbirgt, erledigen Sie das ebenfalls mit diesen Tools. So fragen Sie etwa die im vorherigen Beispiel herausgefundene IP-Adresse hinter easy-linux.de ab

host 62.245.157.216

und erhalten -- nein, nicht EasyLinux -- sondern seine große Schwester linux-magazin.de zurück, die sich eine IP-Adresse mit EasyLinux teilt (Abbildung 4). Das ist nicht weiter unüblich: Mehrere Domain-Namen besitzen in der Regel die gleiche IP-Adresse, wenn sie zusammen auf einem Server liegen. Auch der umgekehrte Fall, ein Domain-Name mit mehreren IP-Adressen, ist möglich: Oft verbirgt sich hinter einem einheitlichen Namen wie google.com ein großer Rechnerzoo.

Abb. 4: Das Kommando "host" verrät die zu einem Domain-Namen gehörende IP-Adresse und umgekehrt, "whois" gibt an, wem eine Domain gehört und wer sie verwaltet.

Damit ist die Informationssammlung noch nicht zu Ende, schließlich will man manchmal auch wissen, wem die Domain gehört. Dazu dient das Kommando whois ("wer ist"). Es fragt einen so genannten Whois-Server, den Sie beim Aufruf angeben, zum Beispiel whois -h whois.thur.de easylinux.de, nach den Registrierungsdaten für eine Domain (Abbildung 4). Die Ausgabe ist in drei Abschnitte aufgeteilt: den Eigentümer, den Domain-Verwalter (Admin-C) und den technischen Kontakt für die Domain (Tech-C). Suse- und Mandrake-Anwender installieren den Befehl über die Paketverwaltung nach, das Stichwort whois fördert das gesuchte gleichnamige Paket zu Tage.

Die letzten zwei Kommandos aus der Werkzeugkiste inspizieren den eigenen Rechner. ifconfig ist ein mächtiges Tool, mit dem Sie wie über das grafische Frontend Ihrer Distribution die Netzwerkschnittstellen Ihres Rechners konfigurieren können. In der einfachsten Form tut ifconfig jedoch gar nichts, sondern zeigt nur an, welche Schnittstellen eingerichtet sind. Da es unter den meisten Distributionen nicht im Programmsuchpfad normaler Anwender liegt, rufen Sie es mit dem vollen Pfad auf:

/sbin/ifconfig

Jeder Abschnitt in der Ausgabe steht für eine konfigurierte Schnittstelle. Abbildung 5 zeigt einen Rechner mit zwei Netzwerkkarten (eth0 und eth1) und einem DSL-Anschluss (ppp0). Unter inet addr steht jeweils die IP-Adresse des Anschlusses: Dieser Rechner besitzt im Internet die Adresse 217.89.3.179, daneben ist noch ein weiterer, interner Anschluss mit der Adresse 10.0.0.1 konfiguriert. Das so genannte Loopback-Interface lo ist standardmäßig auf dem System eingerichtet -- es sorgt dafür, dass der eigene Rechner intern immer unter der Adresse 127.0.0.1 oder localhost zu erreichen ist.

Abb. 5: "ifconfig" zeigt alle konfigurierten Netzwerkschnittstellen an.

Wer schließlich Auskunft haben will, was sein Rechner im Netz gerade unternimmt, bemüht das Kommando netstat. Sie rufen es in der Form netstat -at auf. Die Ausgabe zeigt alle Dienste auf Ihrem Rechner, die auf eine Verbindung warten (LISTEN), und bestehende Verbindungen ins Netz. In der dritten und vierten Spalte finden Sie nach der Adresse des Rechners jeweils den Port oder den Namen des Dienst. Im Beispiel von Abbildung 6 laufen zwei Dienste, ein SSH-Daemon (ssh) und ein Mail-Server (smtp). Ein Benutzer chattet gerade im IRC (ircd), holt über IMAP verschlüsselt seine Mails ab (imaps) und surft im Netz (www). (eba)

Abb. 6: Mit wem ist mein Rechner gerade verbunden? "netstat" gibt die aktuellen Verbindungen ins Netz aus. Hier holt jemand Mails über IMAP ab (imaps), chattet im IRC (ircd) und surft nebenher (www).

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]