Wie funktioniert DHCP?
Beim Start fragt der Client über einen Broadcast im ganzen Netz - gegebenenfalls über Router-Grenzen hinweg - nach (s)einer IP-Adresse. Als Antwort bekommt er die Adresse und
Default-Route,
DNS-Server-Adresse(n),
WINS-Server,
Netzmaske,
Broadcast-Adresse,
Vendor-Optionen.
Vendor-Optionen sind Einträge, die Geräten (etwa Druckern) im Netzwerk spezifische Werte mitgeben. Zusätzlich kann jedem Client eine Ablaufzeit für die vergebene IP-Adresse mitgeteilt werden. Das ist sinnvoll, wenn es mehr Geräte als vergebbare IP-Adressen gibt, etwa bei einem Büro, in dem viele Laptops nur sporadisch am Netz sind.
Die Kommunikation zwischen Client und Server läuft per UDP auf Port 67 (Server) und Port 68 (Client). Wenn der Client bootet, fragt er mit einem DHCPDISCOVER per Broadcast nach seiner Client-Konfiguration. Der Client hat zu diesem Zeitpunkt noch keine (nutzbringende externe) IP, sondern nur seine MAC-Adresse (weltweit eindeutige, auf der Netzwerkkarte kodierte Ethernet-Adresse). Darum bekommt das Broadcast-Paket die Quelladresse 0.0.0.0 und die Zieladresse 255.255.255.255. Das Ganze funktioniert nur dank kreativer Nutzung der TCP/IP-Software des Clients und liberaler Auslegung des Standards RFC 1122.
Das Antwortpaket des Servers hat als Zieladresse schon die Adresse, die der Client erhalten soll. Dieses Paket kommt beim Client an, weil die MAC-Adresse die des Clients ist. Muss ein solches Paket durch einen Paketfilter, ist es sinnvoll, eine Regel einzurichten, die Pakete mit beliebiger Quelladresse (für manche Filter-Implementierungen ist 0.0.0.0 problematisch) und Zieladresse 255.255.255.255 auf Port 68 zulässt, in der Rückrichtung entsprechend vom DHCP-Server an beliebige Adressen (hier könnte auf den DHCP-Bereich eingeschränkt werden) auf Port 67.
Zurück zum Vergabe-Vorgang: Nun erhält der Client ein Angebot vom Server. Wenn der Client es für akzeptabel hält, schickt er ein DHCPREQUEST nach diesen Daten zum Server, um ihm damit mitzuteilen, dass er gerne diese Konfiguration benutzen möchte. Der Server bestätigt dies mit einem DHCPACK - und der Client hat seine IP-Adresse. Sollte etwas schief gegangen sein, (der Client stellt zum Beispiel fest, dass aufgrund von Konfigurationsfehlern die Adresse jetzt doppelt vergeben ist), schickt er ein DHCPDECLINE an den Server und die Prozedur beginnt aufs Neue.
Die zuvergebenen IP-Adressen und sonstiges
Subnetzmaske
Standard-Gateway
Wins-Server
WWW-Server
Mail-Server
IRC-Server
Hostnamen
und weiß der Teufel!
kann man alles per DHCP-Server übergeben!
Gruss Kersten