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:
- Ziel-System ausgefallen
- Ein Router ist falsch konfiguriert
- Alle Ihre Netzwerkverbindungen sind ausgefallen
- Alle Netzwerkverbindungen des Ziel-Systems sind ausgefallen
- Ihr Rechner hat ein Problem
- Irgendein System filtert Echo Requests und/oder Replies
- DNS-Problem
- ...
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:
- netstat -a für aktive Netz-Verbindungen und Sockets
- netstat -r zeigt die Routingtabelle
- netstat -g listet IGMP Informationen (Multicast)
- netstat -i gibt alle Interfaces mit Statistidaten aus
- netstat -p bringt mehr Infos zu Programmen & Sockets
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.

