DHCP - Dynamic Host Configuration Protocol

DHCP ist ein Protokoll, um IP-Adressen in einem TCP/IP-Netzwerk zu verwalten und an die anfragenden Hosts zu verteilen. Mit DHCP ist jeder Netzwerk-Teilnehmer in der Lage sich selber automatisch zu konfigurieren.

Warum DHCP?

Um ein Netzwerk per TCP/IP aufzubauen ist es notwendig an jedem Host eine IP-Konfiguration vorzunehmen. Für ein TCP/IP-Netzwerk müssen folgende Einstellungen an jedem Host vorgenommen werden:

  • Vergabe einer eindeutigen IP-Adresse
  • Zuweisen einer Subnetzmaske (Subnetmask)
  • Zuweisen des zuständigen Default- bzw. Standard-Gateways
  • Zuweisen des zuständigen DNS-Servers

In den ersten IP-Netzen wurden IP-Adressen noch von Hand vergeben und fest in die Systeme eingetragen. Die dazu erforderliche Dokumentation war jedoch nicht immer fehlerfrei und schon gar nicht aktuell und vollständig. Der Ruf nach einer einfachen und automatischen Adressverwaltung wurde deshalb besonders bei Betreibern großer Netze laut. Hier war durch die manuelle Verwaltung und Konfiguration sehr viel Planungs- und Arbeitszeit notwendig. Um für die Betreiber der immer größer werdenden Netze eine Erleichterung zu verschaffen wurde DHCP entwickelt.
Mit DHCP kann jede IP-Host die IP-Adresskonfiguration von einem DHCP-Server anfordern und sich selber automatisch konfigurieren. So müssen IP-Adressen nicht mehr manuell verwaltet und zugewiesen werden.

DHCPv6 / DHCP für IPv6

Bei IPv6 benötigt die IP-Konfiguration eigentlich keinen DHCP-Dienst. Dafür gibt es die Stateless Address Autoconfiguration (SLAAC). Mit SLAAC kann sich ein IPv6-Host vollautomatisch konfigurieren und die notwendigen IP-Konfiguration besorgen. In der Praxis sind nicht alle Betriebssysteme dazu in der Lage. So können manche den DNS-Server auf diese Weise nicht entgegennehmen (RDNSS-Option). DHCPv6 ist im Prinzip das einzige Verfahren, welches diese und weitere Angaben innerhalb der IPv6-Autokonfiguration ergänzen kann. Um wie bei IPv4 mit DHCPv4 die gleichen Funktionalitäten für IPv6 zu ermöglichen, wurde DHCPv6 definiert.

Zuteilung der IP-Konfiguration per DHCP

Die Zuteilung der IP-Adressen erfolgt nach dem Client-Server-Prinzip. Der DHCP-Client kann ein PC, Notebook, Smartphone oder etwas ähnliches sein. Der DHCP-Server kann als Dienst in einem Router integriert sein. Damit der DHCP-Client aus seinem funktional eingeschränkten TCP/IP-Modus kommt, fragt er per DHCP-Discover nach einer IP-Konfiguration. Dieser Broadcast erreicht im Optimalfall einen DHCP-Server. Und der antwortet mit einem DHCP-Offer mit einer IP-Konfiguration. Danach fordert der Client die IP-Konfiguration mit einem DHCP-Request expliziet beim DHCP-Server an. Der DHCP-Server bestätigt die Anforderung mit einem DHCP-Acknowledgement. DHCP-Client DHCP-Server DHCP-Discover DHCP-Offer DHCP-Request DHCP-Acknowledgement

Die Funktionsweise von DHCP entspricht der Client-Server-Architektur. Der DHCP-Client fragt beim DHCP-Server nach einer IP-Konfiguration. Der DHCP-Server verfügt über einen Pool von IP-Adressen, die er den DHCP-Clients zuteilen kann. Bei größeren Netzen muss der DHCP-Server zudem wissen, welche Subnetze und Standard-Gateways es gibt. In der Regel ist der DHCP-Server ein Router.
Wird ein Host mit einem aktivierten DHCP-Client gestartet, wird ein funktional eingeschränkter Modus des TCP/IP-Stacks gefahren. Dieser hat keine gültige IP-Adresse, keine Subnetzmaske und kein Standard-Gateway. Das einzige, was der Client machen kann, ist IP-Broadcasts verschicken.

DHCP-Discover: Der DHCP-Client verschickt ein UDP-Paket mit der Ziel-Adresse 255.255.255.255 und der Quell-Adresse 0.0.0.0. Dieser Broadcast dient als Adressanforderung an alle verfügbaren DHCP-Server. Im Optimalfall gibt es nur einen DHCP-Server. So vermeidet man Konflikte bei der Adressvergabe.

DHCP-Offer: Der DHCP-Server antwortet auf den Broadcast mit einer freien IP-Adresse und weiteren Parametern, um die IP-Konfiguration zu vervollständigen. Jeder angesprochene DHCP-Server schickt ein UDP-Paket mit folgenden Daten zurück:

  • MAC-Adresse des Clients
  • mögliche IP-Adresse
  • Laufzeit der IP-Adresse/-Konfiguration (Lease-Time)
  • Subnetzmaske
  • IP-Adresse des DHCP-Servers / Server-ID

DHCP-Request: Aus der Auswahl von evt. mehreren DHCP-Servern sucht sich der DHCP-Client eine IP-Adresse heraus. Daraufhin verschickt er eine positive Meldung an den betreffenden DHCP-Server. Alle anderen Server erhalten die Meldung ebenso und gehen von der Annahme der IP-Adresse zugunsten eines anderen Servers aus.

DHCP-Acknowledgement: Anschließend muss die Vergabe der IP-Adresse vom DHCP-Server bestätigt werden. Doch nicht nur die Daten zum TCP/IP-Netzwerk kann DHCP an den Client vergeben. Sofern der DHCP-Client weitere Angaben auswerten kann, übermittelt der DHCP-Server weitere Optionen:

  • Time Server
  • Name Server
  • Domain Name Server (Alternative)
  • WINS-Server
  • Domain Name
  • Default IP TTL
  • Broadcast Address
  • SMTP Server
  • POP3 Server

Sobald der DHCP-Client die Bestätigung erhalten hat, speichert er die Daten lokal ab. Abschließend wird der TCP/IP-Stack vollständig gestartet.

DHCP-Refresh

In der DHCP-ACK-Nachricht ist die Lease-Time (Leihdauer) angegeben, die aussagt, wie lange der Client die zugewiesene IP-Konfiguration verwenden darf. Nach der Hälfte der Lease-Time muss der standardkonforme Client einen erneuten DHCP-REQUEST sendet. In der Regel wird der DHCP-Server ein DHCP-ACK mit identischen Daten und einer aktualisierten Lease-Time schicken. Damit gilt die Nutzung der IP-Adresse als verlängert.

Aber was ist, wenn der DHCP-Server nicht antwortet und somit die aktuelle IP-Konfiguration nicht bestätigt/verlängert wird. Beispielsweise, weil der DHCP-Server ausgefallen ist oder vom Netz genommen wurde. In diesem Fall wird der Client die IP-Konfiguration ohne Einschränkungen weiter verwenden, bis die Lease-Time endgültig abgelaufen ist. Allerdings wird er vor dem Ablauf noch mal versuchen, eine Verlängerung der IP-Konfiguration von diesem DHCP-Server zu erhalten.
Wenn dieser DHCP-Server nicht mehr erreichbar ist, weil vielleicht inzwischen ein anderer DHCP-Server zuständig ist, dann wird der Client noch vor dem endgültigen Ablauf der Lease-Time mit einem erneuten DHCP-DISCOVER versuchen, eine Adresszuweisung von einem anderen DHCP-Server zu erhalten.

DHCP-Not Acknowledged

Sollte der DHCP-Server keine Adressen mehr zur Verfügung haben oder während des Vorgangs ein anderer Client diese Adresse zugesagt bekommen haben, sendet der DHCP-Server ein DHCPNAK (DHCP-Not Acknowledged).

Was passiert, wenn der Client keine IPv4-Konfiguration bekommt?

Zuerst die Gründe:

  • Der Client ist mit keinem Netzwerk verbunden.
  • Der Client ist verbunden, es existiert aber kein DHCP-Server in dem Netzwerk.
  • Der DHCP-Server ist ausgeschaltet, deaktiviert oder nicht mit dem Netzwerk verbunden.
  • Der DHCP-Server hat keine freien IP-Adressen mehr.
  • Der DHCP-Server ist fehlerhaft konfiguriert.

In jedem dieser Fälle wird der Client sich eine eigene IPv4-Adresse aus dem link-lokalen Adressbereich (169.254.0.0/16) zuteilen. Damit ist die Kommunikation zumindest innerhalb des link-lokalen Netzwerks möglich.
Bei IPv6 erzeugt sich der Client automatisch eine link-lokale IPv6-Adresse per SLAAC.

Konfiguration des DHCP-Clients unter Windows 2000/XP

TCP/IP-Konfiguration unter Windows 2000

Die Konfiguration des DHCP-Clients unter Windows ist in der Regel gar nicht notwendig. Meistens ist er bereits aktiviert. Sofern ein DHCP-Server installiert ist, holt sich das Betriebssystem die notwendigen Daten selber.
Wurden die TCP/IP-Konfiguration von DHCP vorgenommen können die Daten mit dem Befehl ipconfig auf der Kommandozeile bzw. Eingabeaufforderung von Windows eingesehen werden.

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.


C:\>ipconfig

Windows-IP-Konfiguration

Ethernetadapter LAN-Verbindung:

  Verbindungsspezifisches DNS-Suffix: t-online.de
  IP-Adresse. . . . . . . . . . . . : 192.168.1.11
  Subnetzmaske. . . . . . . . . . . : 255.255.255.0
  Standardgateway . . . . . . . . . : 192.168.1.1

Aufgaben und Übungen mit dem Raspberry Pi

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Netzwerktechnik-Fibel

Alles was Sie über Netzwerke wissen müssen.

Die Netzwerktechnik-Fibel ist ein Buch über die Grundlagen der Netzwerktechnik, Übertragungstechnik, TCP/IP, Dienste, Anwendungen und Netzwerk-Sicherheit.

Das will ich haben!

Artikel-Sammlungen zum Thema Netzwerktechnik

Collection: IPv6

Was du über IPv6 wissen solltest.

eBook kaufen

Collection: Netzwerk-Grundlagen

Was du über Netzwerk-Grundlagen wissen solltest.

eBook herunterladen

Netzwerktechnik-Fibel

Alles was Sie über Netzwerke wissen müssen.

Die Netzwerktechnik-Fibel ist ein Buch über die Grundlagen der Netzwerktechnik, Übertragungstechnik, TCP/IP, Dienste, Anwendungen und Netzwerk-Sicherheit.

Das will ich haben!