DHCP-Server Grundlagen

Durch das Dynamic Host Configuration Protocol (DHCP) wird dem Nutzer eines Client-Rechners die Konfiguration der Netzwerkeinstellung erspart. Ein DHCP-Server vermittelt jedem bootenden Client-Rechner eine IP-Adresse, mit welcher dieser über das Netzwerk erreichbar ist. Hierbei arbeitet das Protokoll auf TCP/IP, weshalb es keine Rolle spielt, welches Betriebssystem der Client nutzt, da TCP/IP betriebssystemunabhängig ist. Das DHCP ist eine Erweiterung des Bootstrap Protocols (BOOTP) und arbeitet über den UDP-Port 67 (Client => Server) und 68 (Server => Client).

[ad#co-3]
Ein DHCP-Server ist nicht nur für die Verteilung der IP-Adresse an die im Netzwerk angemeldeten Clients zuständig, sondern versorgt die Clients auch mit weiteren Informationen wie Router / Gateways, Netzmaske, DNS-Servern und Domain-Namen. Dies hat den Vorteil, das der Netzwerk-Client alle notwendigen Informationen über die im Netzwerk angebotenen Dienste unmittelbar erhält und somit diese Dienste in Anspruch nehmen kann.
Stellt man sich ein (Firmen) Netzwerk vor, indem jeder Client manuell eingerichtet werden muss, so lässt sich schnell der hohe Administrationsaufwand abschätzen. Soll eines Tages noch zusätzlich die Netzwerkstruktur geändert werden, ist ein manueller Eingriff der Netzwerkkonfiguration eines jeden Clients notwendig. Bei der Verwendung eines DHCP-Servers entfällt dieser administrative Aufwand, da alle Netzwerkeinstellungen an einer zentralen Stelle (DHCP-Server) einmalig vorgenommen werden können. Nach beispielsweise einmaliger Änderung der Netzwerkklasse, bezieht jeder Netzwerk-Client unmittelbar eine neue IP Adresse sowie Subnetmask (falls notwendig).

Lease Zuteilung

Die Zuteilung einer IP Adresse eines neuen Netzwerk-Clients verläuft in einem bestimmten Zyklus ab. Dieser Zyklus besteht aus vier Phasen, welcher im nachfolgendem näher erklärt wird.
DHCPDISCOVER: Ein neuer DHCP-Netzwerk-Client schickt nach dem Booten eine Discover Nachricht in das Netzwerk. Diese Nachricht ist an 255.255.255.255 (Broadcast) mit dem Absender 0.0.0.0, seiner MAC-Adresse plus seinem hostname adressiert. Als Antwort erhält dieser eine Nachricht von allen im Netz befindlichen DHCP-Servern.
DHCPOFFER: Die Antwort der DHCP-Server ist ein Angebot einer IP-Adresse aus dem IP-Pool ihres Netzwerkes. In diesem Fall zählt das Motto „first come first serve“. Gibt es also nicht nur einen DHCP-Server in dem Netzwerk, gewinnt derjenige, der als erstes die notwendigen Netzwerk-Informationen bereitstellt. Das Angebot des DHCP-Servers besteht aus folgenden Attributen:

  • MAC Adresse des Clients
  • IP-Adresse
  • Netzwerk-Maske
  • Zeitdauer der Lease (TTL)
  • IP-Adresse des DHCP Servers

DHCPREQUEST: In dieser Phase informiert der Client alle anderen Clients im Netzwerk über seine neue IP-Adresse. Gab es mehrere IP-Adressangebote von unterschiedlichen DHCP-Servern, werden diese (bis auf die beibehaltene IP-Adresse) wieder in den IP-Adresspool zurückgelegt. Die Information die an alle Netzwerk-Clients gesendet wird enthält:

  • erhaltene IP-Adresse
  • MAC-Adresse
  • IP-Adresse des DHCP-Servers

DHCPACK: Offiziell jedoch hat der Client die neue IP-Adresse erst, wenn der DHCP-Server diese mittels Rundmail nochmal bestätigt.

Leaser Erneuerung

Jede IP-Adresse eines Netzwerk-Clients hat eine bestimmte Lebensdauer. Eine einmal zugewiesene IP-Adresse ist kein Garant dafür, das diese für die Zukunft statisch ist. Zwischenzeitlich werden Überprüfungen vorgenommen in der festgehalten werden, ob sich Veränderungen im Netzwerk ergeben haben.
DHCPREQUEST: Ein Netzwerk-Client versucht nach einer verstrichenen default-lease-time von 50%, seine aktuelle IP-Adresse zu verlängern. Hierbei versendet dieser eine Unicast-DHCPREQUEST-Nachricht an den DHCP-Server. Für den Fall, das der DHCP-Server diesen Request nicht entgegen nimmt und quittiert (z.B. weil dieser gerade einen reboot macht), sendet der Client nach 7/8 der defaul-lease-time eine Anfrage als Broadcast.
DHCPACK: In der Regel darf der Netzwerk-Client seine IP-Adresse behalten. In diesem Fall sendet der DHCP-Server ein DHCPACK.
DHCPNACK: Im Falle eine Ablehnung schickt der DHCP-Server ein DHCPNACK an den Client. In diesem Fall muss der Client eine neue IP-Adresse per DHCPDISCOVER anfordern. Es kann trotzdem vorkommen, das der Client seine IP-Adresse doch noch behalten kann, weshalb diese bei der neuen Anfrage mitgesendet wird.

Dynamische Vergabe von IP-Adressen

Der Netzwerk-Client erhält bei der Vergabe seiner IP-Adresse eine default-lease-time. In dieser Information wird dem Client mitgeteilt, zu welcher Zeit er eine Verlängerung bei dem DHCP-Server beantragen soll. Zugleich hat der DHCP-Server eine max-lease-time für den Netzwerk-Client hinterlegt. In dieser Information ist hinterlegt, zu welchem Zeitpunkt die IP-Adresse wieder verfügbar ist, sollte der Client keine Verlängerung beantragen. In der Regel betrifft diese Zeitspanne unter Windows 8 Tage. Im Fall von IP-Adressenüberschuss, kann es sich jedoch auch um 30-60 Tage handeln. In einem Netzwerk, in dem unzureichend viele IP-Adressen verfügbar sind, kann die max-lease-time 1-24 Stunden betragen.

IP-Adressen auf Basis der Netzwerkkarte

Der DHCP-Server speichert jede IP-Adresse im Zusammenhang mit der dazugehörigen MAC Adresse des Netzwerk-Clients in einer Konfigurationsdatei ab. Meldet sich ein Netzwerk-Client nach Ablauf der default-lease-time erneut an diesem Netzwerk an, kann es also aufgrund der in der Konfigurationsdatei erhältlichen Informationen durchaus vorkommen, das dieser nach langer Zeit der Abstinenz die selbe IP-Adresse erhält wie zuvor (vorausgesetzt die IP-Adresse wurde in dieser Zeit nicht anderweitig vergeben).

APIPA

Für den Fall das kein DHCP-Server in einem Netzwerk vorhanden ist, wird eine Autokonfiguration über APIPA (Automatic Private IP Adressing) vorgenommen. Hierbei erhält der Netzwerk-Client eine IP aus dem Adressbereich zwischen 169.254.0.1 bis 169.254.255.254. Diese IP-Adresse wird solange beibehalten, bis sich ein DHCP-Server in das Netzwerk einschaltet.
Es ist jedoch zu beachten, das eine Autokonfiguration über APIPA nur unter Windows möglich ist.