Unix: Network-Tools

IP-Netzwerke können einen zur Verzweiflung bringen, wenn sie nicht recht funktionieren wollen oder seltsame Dinge geschehen. Aber es gibt kleine Helferlein, die etwas Licht in das Dunkel bringen.

Inhalt

ping

Mit ping läßt sich die Erreichbarkeit eines Systems prüfen. Nebenbei erhält man auch mehrere Informationen über die Verbindung zum Ziel. Ping basiert auf ICMP. Der Sender schickt ein ECHO REQUEST und der Empfänger antwortet mit einem ECHO REPLY. Z.B.:

  ping 10.0.0.1

  PING 10.0.0.1 (10.0.0.1): 56 data bytes
  64 bytes from 10.0.0.1: icmp_seq=0 ttl=255 time=0.2 ms
  64 bytes from 10.0.0.1: icmp_seq=1 ttl=255 time=0.1 ms
  64 bytes from 10.0.0.1: icmp_seq=2 ttl=255 time=0.1 ms
 

Das ping können Sie mit CTRL-C stoppen. Nun zu dem Ergebnis. Jede ECHO-Antwort, die zurück kommt, hat die Absender-IP-Adresse. Ein Echo kann auch von mehreren Systemen beantwortet werden. Danach kommt die Laufnummer der Requests und die ttl (time to live), welche die Weglänge angibt. Am Anfang ist die ttl 255 und jeder Router zieht 1 ab. Also ist die Weglänge (Anzahl der hops) 255 - ttl. Eigentlich ist die ttl die Zeit in Sekunden, welche ein IP-Paket im Netz bleiben soll. Implementiert ist aber (fast) immer das Subtrahieren von eins. Zum Schluß folgt das round trip delay (Zeit für Hin- und Rückweg).

Was will uns dies nun sagen? :-) Wenn auf alle Echo-Replies je ein Reply kommt, ist die Verbindung sauber. Gehen Pakete verloren, kann dies daran liegen, daß die Verbindung gestört oder überlastet ist. Kommt gar keine Antwort, kann kann es mehrere Ursachen geben:

Und ein paar Beispiele für Laufzeiten:

Leitung Zeit in ms
10MBit/s LAN unbelastet 2
ISDN unbelastet 35
ISDN voll belastet 2000-3000
E1 (2Mbit/s) unbelastet 4-8
Trans-Atlantik STM16 80-100

Der Weg zum Ziel-System kann aus vielen unterschiedlichen Teilstücken bestehen. Eine schlechte oder überlastete Leitung in einem Teilstück kann bereits Ursache für ein schlechtes Gesamtergebnis sein.

Achtung: Nicht jedes System antwortet auf ping. Auch filtern manche Router oder Firewalls Echo-Requests/Replies weg.

traceroute

Mit traceroute läßt sich der Weg eines Pakets verfolgen. Es basiert auf der Fehlermeldung TIME_EXCEEDED im ICMP. Wenn die ttl eines Pakets 0 ist, muß das Paket verworfen werden. Dabei schickt der Router eine Fehlermeldung zum Sender des Pakets. Wenn man nun die ttl von 0 an immer um eins erhöht, findet man alle Router auf dem Weg zum Ziel. In der ICMP-Fehlermeldung ist ein Zeitstempel aus dem dann die Laufzeit berechnet wird.

  traceroute www.theca-tabellaria.de

  traceroute to apis.theca-tabellaria.de (62.140.25.200), 30 hops max, 38 byte packets
   1  ffm-145-253-1-140.arcor-ip.net (145.253.1.140)  24.872 ms  505.654 ms  26.625 ms
   2  ffm-145-253-16-241.arcor-ip.net (145.253.16.241)  25.685 ms  25.406 ms  25.252 ms
   3  ffm-145-253-0-130.arcor-ip.net (145.253.0.130)  25.316 ms  25.523 ms  25.492 ms
   4  ffm-145-253-0-140.arcor-ip.net (145.253.0.140)  25.960 ms  25.654 ms  25.362 ms
   5  ffm-145-253-0-128.arcor-ip.net (145.253.0.128)  25.959 ms  25.897 ms  26.242 ms
   6  nyc-145-253-4-142.arcor-ip.net (145.253.4.142)  109.938 ms  109.778 ms  109.760 ms
   7  ny-i8-serial1-1.telia.net (209.95.129.33)  112.951 ms  111.718 ms  111.493 ms
   8  ny-b2-atm4-0-208.telia.net (209.95.128.165)  110.599 ms  124.970 ms  110.360 ms
   9  ny-i5-pos1-0.telia.net (209.95.129.209)  116.205 ms  111.227 ms  112.137 ms
  10  209.244.160.177 (209.244.160.177)  112.323 ms  116.597 ms  112.996 ms
  11  so-4-0-0.mp1.NewYork1.level3.net (209.247.10.33)  111.958 ms  115.495 ms  111.349 ms
  12  212.187.128.137 (212.187.128.137)  110.849 ms  111.553 ms  111.117 ms
  13  loopback0.core1.Frankfurt1.Level3.net (212.162.32.1)  193.472 ms  198.604 ms  198.390 m
s
  14  212.162.34.194 (212.162.34.194)  202.218 ms  194.855 ms  196.997 ms
  15  212.162.16.238 (212.162.16.238)  197.575 ms  197.423 ms  199.119 ms
  16  apis.theca-tabellaria.de (62.140.25.200)  195.555 ms  197.625 ms  196.315 ms
 

Links stehen die Hop-Nummer und der Name bzw. die IP-Adresse des Hops. Und rechts folgen drei Zeiten, welche die Round Trip Delays von drei Versuchen sind. Die Zeit bezieht sich immer auf den Weg von Deinem Rechner zum jeweiligen Router. Bei dem Beispiel laufen die Pakete einmal in die USA und wieder zurück. Die Differenz der Zeiten zwei aufeinander folgender Hops ist die Laufzeit zwischen diesen Hops.

Wenn ein traceroute in der umgekehrten Richtung, also vom Ziel zur Quelle, genauso bzw. ähnlich aussieht, ist das Routing symmetrisch. Die Antwort jedes Routers wird meist mit der IP-Adresse des jeweiligen Interfaces maskiert, über welches die Pakete in den Router kommen. Also werden Hin- und Rückweg unterschiedliche IP-Adressen zeigen, aber über die gleichen Router laufen. Ist dies nicht der Fall, ist das Routing unsymmetrisch.

Wenn das Reverse Mapping für die IP-Adressen verfügbar ist, läßt sich anhand der Namen der Weg recht gut lesen. Hier muß man aber auch aufpassen, weil jeder beliebige Name setzbar ist. Oft geben ISPs ihren Routern Namen, die auf den Standort und auf das Interface schließen lassen. So wäre z.B. "ny-i5-pos1-0.telia.net" ein Router in New York und das Interface ein POS (Packet over SONet).

netstat

Das Tool netstat gibt eine Menge an Informationen über den lokalen Rechner aus. Je nach Implementation unterscheiden sich die Möglichkeiten und die Optionen:

Generell erhalten Sie eine Liste der IP-Verbindungen und der lokalen Sockets. Bei der Option "-a" fehlen leider die Namen der Programme. Da hilft dann lsof (list open files) weiter.

tcpdump

Das Tool tcptump kann Interfaces von Ihrem PC beobachten. Es gibt dabei die Header der Datenpakete mit allerlei Informationen aus. Als Option können Sie das Interface und auch Filter angeben. Die Filter helfen dabei, den Überblick bei viel Verkehr zu behalten und nur bestimmte Pakete anzuzeigen. So läßt sich z.B. herausfinden, welche Systeme im Netz ständig Broadcast-Nachrichten senden oder ob bei Netzwerk-Problemen bestimmte Pakete ankommen oder nicht.