Aufgabe 1 - ARP
Als erstes schauen wir uns ARP etwas genauer an. Die Topologie, mit der wird dazu arbeiten finden Sie hier. Es handelt sich dabei um vier in Reihe geschaltete Switche, die jeweil noch mit zwei Hosts verbunden sind. Die Switche sind mit s1
, s2
, s3
und s4
bezeichnet. Die Host folgen einer einfachen Nomenklatur, wobei es immer einen Host 1 und einen Host 2 pro Switch gibt, worauf der Name des verbunden Switches folgt. Also z.B. h1s1
entspricht Host 1, der mit Switch 1 verbunden ist, oder h2s4
entspricht Host 2, der mit Switch 4 verbunden ist. Auch die MAC-Adressen folgen einer einfachen Nomenklatur in dieser einfachen Topologie. Die ersten 24 Bit kodieren den Host, die letzten 24 Bit den Switch. Host 1 an Switch 2 hat damit folgende MAC-Adresse: 00:00:11:00:00:22.
Untersuchen wir zunächst den ARP-Cache von Host h1s1
mit ip n
auf dem Host. Er sollte leer sein. Das können wir ändern, indem wir einen einfachen Ping an h1s2
senden. Aber bevor wir das tun starten wir Wireshark auf Host h1s2
und beginnen die Aufzeichnung. Um dann den Ping zu schicken (drei Pakete) genügt folgedes Kommando auf der Mininet-Konsole:
h1s1 ping -c 3 h1s2
Einiges sollte auffallen. Zum einen sollte das erste Ping-Paket ungefähr doppelt so lange auf eine Antwort gewartet haben als alle folgenden. Das liegt daran, dass zunächst mittels ARP die MAC-Adresse von h1s2
aufgelöst werden musste. Das sollten Sie auch in Wireshark sehen. Auch kann jetzt der ARP-Cache von h1s1
wieder inspiziert werden. Nun sollte ein Eintrag vorhanden sein. Schauen wir uns ARP aber genauer in Wireshark an.
Am Protokollstapel des ARP-Pakets fällt auf, dass ARP direkt hinter dem Ethernet-Header kommt, d.h. es kommt kein IP-Header dazwischen. Muss es auch nicht, weil ARP nur im eigenen Subnetz funktionieren muss. Dazu braucht ARP aber einen eigenen Ethertype.
Auch fällt auf, dass die Ziel-MAC-Adresse die Broadcast-Adresse ist (FF:FF:FF:FF:FF:FF), die Antwort aber direkt geschickt wird, also nicht als Broadcast. Im ARP-Paket steht aber weit mehr als nur die IP-Adresse zu der die passende MAC-Adresse gesucht wird. So steht z.B. drin, um welche Art von MAC-Adresse es sich handelt, aber auch um welche Art von Netzwerkschicht Adressen, d.h. ARP ist entwickelt worden, um in dieser Hinsicht erweiterbar zu sein. Der ARP RFC RFC 826 sagt es eigentlich ganz schön:
“The world is a jungle in general, and the networking game contributes many animals. At nearly every layer of a network architecture there are several potential protocols that could be used.”
Übringens, es gibt auch ein Tool, um mittels ARP ein “Ping” zu verschicken: arping
Starten Sie doch noch einmal Wireshark. Diesmal auf h1s4
und starten Sie die Aufzeichnung. Starten sie von h1s1
arping
zu h1s4
aus der Mininet-Konsole via:
h1s1 arping h1s2
Fällt Ihnen an den ARP Paketen, ab dem zweiten Paket etwas auf? Wer im Netz empfängt diese alles?