Netzwerkanalyse und Fehlersuche
Netzwerkanalyse und Fehlersuche
Netzwerkanalyse und Fehlersuche
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
168 KAPITEL 11. NETZWERKANALYSE UND FEHLERSUCHE<br />
meisten Netzwerkdienste laufen als Client-Server-Applikation. Dabei können Clients <strong>und</strong><br />
Server komplett unterschiedliche Maschinen sein <strong>und</strong> Betriebssysteme fahren. Damit sich<br />
beide korrekt verständigen, kommt es darauf an, dass sie die ”richtige Sprache” miteinander<br />
reden. Da das verbindende Element das dazwischenliegende TCP/IP-Netzwerk ist, lassen<br />
sich durch die Beobachtung des Paketaustausches schon Rückschlüsse auf bestimmte Fehler<br />
ziehen.<br />
Wenn man sich vielleicht w<strong>und</strong>ert, weshalb die Namensauflösung in Ihrem Netz so lange<br />
dauert, oder was beim Teilumstieg auf IPv6 schief gegangen ist, reicht oft nicht das<br />
Debugging an der Applikation aus. Da hilft dann vielleicht der Blick auf die Netzwerkschnittstellen<br />
<strong>und</strong> in die Pakete hinein. Hierbei wird auch offenbar, wie einfach es ist, die<br />
Daten mitzulesen, die Applikationen unverschlüsselt austauschen.<br />
11.5.1 Analysen auf der Kommandozeile<br />
Für die Kommandozeile existiert schon sehr lange das Programm tcpdump. Es basiert wie<br />
das im Anschluss vorgestellte grafische Ethereal auf der Libpcap-Bibliothek. Diese stellt<br />
Schnittstellen zur Verfügung, die es erlauben Pakete in ”Rohform” beispielsweise auf einem<br />
Ethernet-Interface abzugreifen <strong>und</strong> zu interpretieren. Die Netzwerkschnittstelle, an<br />
die sich tcpdump hängen soll, legt man mit der Option ”-i Interface” fest, z.B. tcpdump<br />
-i eth1 für die zweite Ethernet-Karte. Im Augenblick des Starts beginnt tcpdump Pakete<br />
mitzuschreiben <strong>und</strong> in die Konsole auszugeben. Dabei schreibt es nicht den gesamten Paketinhalt<br />
heraus, sondern reduziert die Information auf wichtige IP-Header-Informationen,<br />
wie Quell- <strong>und</strong> Zieladressen, sowie Quell- <strong>und</strong> Zielports. Neben diesen Daten stellt es die<br />
Zeit des Paketempfanges sowie Teile des Inhalts, die es interpretieren konnte, dar. Eine<br />
einfache Ausgabezeile ist somit wie folgt aufgebaut: ”Zeit Protokoll Quelle.Port ¿ Ziel.Port:<br />
Kurzinterpretation des Inhalts” Will man statt der IP-Adressen die Link-Layer-Adressen,<br />
z.B. MACs im Ethernet sehen, geschieht das durch die Angabe der Option ”-e”.<br />
linux02:/tmp # tcpdump -i eth0<br />
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode<br />
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes<br />
17:24:06.921126 IP fay1.test.site.netbios-dgm > 10.17.9.255.netbios-dgm:<br />
NBT UDP PACKET(138)<br />
17:24:06.945264 IP linux022.test.site.32838 > dns1.wg.site.domain:<br />
62160+ PTR? 255.9.230.132.in-addr.arpa. (44)<br />
17:24:06.946275 IP dns1.wg.site.domain > linux022.test.site.32838:<br />
62160 NXDomain* 0/1/0 (137)<br />
17:24:06.946396 IP linux022.test.site.32838 > dns0.wg.site.domain:<br />
62161+ PTR? 44.9.230.132.in-addr.arpa. (43)<br />
17:24:06.947295 IP dns0.wg.site.domain > linux022.test.site.32838:<br />
62161* 1/3/3 (212)<br />
17:24:06.947546 IP linux022.test.site.32838 > dns1.wg.site.domain:<br />
62162+ PTR? 201.200.17.10.in-addr.arpa. (46)<br />
17:24:06.948799 IP dns1.wg.site.domain > linux022.test.site.32838:<br />
62162* 1/3/3 (208)<br />
17:24:06.954624 IP linux022.test.site.32838 > dns0.wg.site.domain:<br />
62163+ PTR? 200.200.17.10.in-addr.arpa. (46)<br />
17:24:06.955777 IP dns0.wg.site.domain > linux022.test.site.32838:<br />
62163* 1/3/3 (208)<br />
17:24:07.296782 802.1d config 8000.00:d0:95:7e:ec:3a.7205 root<br />
8000.00:09:97:30:38:0a pathcost 4 age 1 max 20 hello 2 fdelay 15<br />
17:24:07.922224 IP fay1.test.site.netbios-dgm > 10.17.9.255.netbios-dgm:<br />
NBT UDP PACKET(138)<br />
11 packets captured