Nickolsen’s Techblog

Oktober 8, 2008

Ethernet-Bridge DHCP-Paket Analyse

Gespeichert unter: Computer, Debian, Linux — Schlagworte: , , , — nickolsen @ 6:38

Zugegeben, der Titel klingt spannender als die Arbeit eigentlich war. Aber egal, interessant war es trotzdem!

Vorweg noch ein wichtiger Hinweis: Die im folgenden beschriebenen Arbeiten habe ich ausschließlich in meinem privaten Netzwerk durchgeführt und die gewonnenen Daten dienen auch lediglich der Analyse. Mal davon ab, handelte es sich bei dem ganzen „Projekt“ um eine Hausaufgabe!

So, jetzt gehts los:
Mein Analyse-PC hat vor ein paar Tagen eine zweite Netzwerkkarte spendiert bekommen, weil ich die Pakete, die aus meinem Zimmer Netzwerk in Richtung Router (und damit Internet) gehen, einfach mal sehen wollte.
Oder um es ganz simpel auszudrücken:
Welche Anwendung brüllt was ins Netz?

Schritt 1 (Einbau der zweiten Netzwerkkarte):
Na ja, es sollte jedem klar sein, wie man eine Netzwerkkarte in einen PC bekommt. In meinem Fall war das Ganze mit ein wenig Fummelei verbunden, da mein Test-PC ein Micro-ATX-Board mit nur 2 PCI-Steckplätzen eingebaut hat.

Schritt 1,5 (Installation des Betriebssystems)
Bei mir notwendig, weil ich gleichzeitig noch eine neue Festplatte in den PC gebaut habe.
Debian Testing gabs auf die Platte, zu beachten nichts weiter, außer dass die Installation beide Netzwerkkarten als eth0 und eth1 erkennt und man wählen muss, welches die primäre Netzwerkkarte werden soll.
Das Netzwerk nicht per DHCP konfigurieren lassen, sondern feste IPs vergeben!

Schritt 2 (Ethernet-Bridge bauen)
Dank Werner (Arbeitskollege), der mich auf einen Artikel auf heise.de hingewiesen hat, war das erstellen der Ethernet-Bridge denkbar einfach:
ifconfig eth0 -arp promisc 0.0.0.0 up
ifconfig eth1 -arp promisc 0.0.0.0 up
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 eth1
ifconfig br0 -arp promisc 0.0.0.0 up
Funktioniert brctl nicht, muss das Paket bridge-utils nachinstalliert werden. (Das geht aber nur vor den beiden ifconfig-Schritten, wenn man nur über 2 Netzwerkkarten verfügt)
Zu beachten gibt es eigentlich nichts weiter, bei mir hat das alles auf Anhieb geklappt.

Schritt 3 (Pakete analysieren)
Es gibt sicher andere Tools, aber ich habe den Wireshark benutzt. Als capture device einfach br0 angeben und bei Bedarf die Paketauswahl eingrenzen und dann kann es losgehen

Schritt 4 (Fazit):
Einfach und schnell, aber effektiv. So geht der Einstieg in die Netzwerkanalyse gut von der Hand und macht sogar Spaß ;) Quasi etwas für die ganze Familie :P
Interessant fand ich folgenden Sachverhalt:
Debian-Kommunikation mit dem DHCP-Server:
(Client) Discover -> (Server) Offer -> (Client) Request -> (Server) Acknowledge -> (Client) Release

Windows XP-Kommunikation mit dem DHCP-Server:
(Client) Request -> (Server) Acknowledge -> (Client) Inform -> (Client) Inform
Kein Discover, kein Offer, kein Release… die Frage ist nur: Warum?

So, damit erstmal genug für heute. Mal sehen, es noch so zu entdecken gibt…

EDIT: Wieder was dazu gelernt! Ich weiß jetzt warum Windows weniger DHCP-Pakete durch die Gegend schickt als Debian.
Das Lease für die Windows-IP ist noch nicht abgelaufen, also wird nur geprüft (Request -> Acknowledge) ob die Informationen noch gültig sind. Außerdem wird an dieser Stelle das Lease verlängert.
Bei meinem Debian ist das so nicht möglich, da beim runterfahren ein Release gesendet wird, womit das aktuelle Lease gecancelt und die IP-Adresse wieder freigegeben wird.
Laut RFC2131 sind beide Wege korrekt – der Debian-Weg kostet aber etwas mehr Netzwerktraffic, was sich vor allem in großen Netzwerken bemerkbar machen dürfte.
Im Gegensatz dazu läuft bei einer langen Lease-Time die Range des DHCP-Servers schneller voll, wenn Windows nie ein Release sendet…

Noch keine Kommentare »

Noch keine Kommentare.

RSS-Feed für Kommentare zu diesem Beitrag. TrackBack URI

Kommentieren

Bloggen Sie auf WordPress.com.