DHCP steht für Dynamic Host Configuration Protocol und ist ein Netzwerkprotokoll, das Computern, Smartphones oder Druckern automatisch wichtige Netzwerkinformationen wie IP-Adresse, Subnetzmaske und Gateway zuweist (bzw. mitteilt) und so die manuelle Konfiguration eines jeden Teilnehmers überflüssig macht.
Grundsätzliche Funktion
DHCP arbeitet nach dem Client-Server-Prinzip und nutzt vier standardisierte Schritte (DORA-Prozess):
- DISCOVER: Der Client sendet ein Broadcast-Paket ins Netzwerk, um einen DHCP-Server zu finden.
- OFFER: Ein oder mehrere DHCP-Server bieten dem Client eine IP-Adresse inkl. weiterer Konfigurationsparameter an.
- REQUEST: Der Client wählt eines der Angebote aus und bestätigt seine Wahl mit einer Request-Nachricht.
- ACKNOWLEDGEMENT: Der Server bestätigt die Zuweisung final mit einer Acknowledgement-Nachricht und der Client übernimmt die Einstellungen.
Dieser Ablauf ermöglicht eine schnelle und fehlerarme Netzwerkintegration neuer Geräte.
Darstellung des DORA-Prozess. Quelle: Technik-Kiste.de
Verwendung in heutigen Netzwerken
DHCP ist in fast allen privaten, geschäftlichen und öffentlichen Netzwerken unverzichtbar. Typische Einsatzbereiche sind:
- Heimnetzwerke: Router übernehmen die automatische IP-Vergabe an Endgeräte im lokalen Netzwerk.
- Unternehmensnetze: Zentrale DHCP-Server oder -Cluster versorgen mehrere Subnetze über Relay-Agenten (Vermittler von Anfragen).
- Hotspots und Gastnetzwerke: Gäste erhalten sofort eine gültige IP-Adresse ohne manuelle Eingriffe durch Benutzer oder Administratoren.
- Rechenzentren und IoT-Umgebungen: Skalierbare Verwaltung tausender Gerätekonfigurationen.
Der Einsatz von DHCP reduziert Konfigurationsaufwand, minimiert Fehler und sorgt für maximale Flexibilität beim Netzwerkbetrieb. Jedoch kann eine fehlerhafte Konfiguration zu einem Sicherheitsrisiko führen
Vor- und Nachteile im Überblick
Vorteile
- Zeitersparnis: Automatische IP-Konfiguration ohne manuelle Eingriffe.
- Skalierbarkeit: Eignet sich für Netzwerke jeder Größe.
- Zentrale Verwaltung: Änderungen an Netzwerkparametern erfolgen auf Servern.
- Flexibilität: Lease-Mechanismus („verleihen“) ermöglicht dynamische Nutzung des Adressraums.
Nachteile
- Sicherheitsrisiken: Rogue-DHCP-Server („wilde“ bzw. „unerlaubte“ Server im Netzwerk) können falsche Konfiguration verteilen.
- Abhängigkeit: Ausfall des DHCP-Servers kann zu Verbindungsproblemen führen, da keine Adressen mehr vergeben werden.
- Kontrollverlust: Geräte erhalten möglicherweise nicht immer dieselbe IP-Adresse, wenn keine Reservierung erfolgt.
RFC
Das DHCP wurde erstmals in den RFCs 1531 und 1541 definiert und später durch RFC 2131 als Standardprotokoll festgeschrieben.
RFC 2131 beschreibt die Client-Server-Interaktion, die Nachrichtenformate und die administrativen Kontrollen für DHCP-Server und -Clients.
Updates zur RFC 2131 befinden sich in den RFCs:
- 3396: Encoding Long Options in the Dynamic Host Configuration Protocol (DHCPv4)
- 4361: Node-specific Client Identifiers for Dynamic Host Configuration Protocol Version Four (DHCPv4)
- 5494: IANA Allocation Guidelines for the Address Resolution Protocol (ARP)
- 6842: Client Identifier Option in DHCP Server Replies
Zusätzlich wird in der RFC 8415 (Dynamic Host Configuration Protocol for IPv6 - DHCPv6) die Funktion von DHCP in IPv6 Netzwerken spezifiziert.
Verwendete Ports
DHCP nutzt das verbindungslose UDP und die folgenden Ports:
- Port 67/UDP für Nachrichten an DHCP-Server oder Relay-Agenten (IPv4)
- Port 68/UDP für Nachrichten an DHCP-Clients (IPv4)
- Port 547/UDP für Nachrichten an DHCP-Server oder Relay-Agenten (IPv6)
- Port 546/UDP für Nachrichten an DHCP-Clients (IPv6).
Aufbau eines DHCP-Pakets (IPv4)
Ein typisches IPv4-DHCP-Paket enthält folgende Hauptfelder:
- op (1 Byte): Nachrichtentyp (Request=1, Reply=2)
- htype (1 Byte): Hardwaretyp (z. B. 1=Ethernet)
- hlen (1 Byte): Länge der Hardwareadresse (z. B. 6 Byte für MAC)
- hops (1 Byte): Hop-Zähler für Relay-Agenten
- xid (4 Byte): Transaktions-ID für Client-Server-Verbindung
- secs (2 Byte): Sekunden seit Clientstart
- flags (2 Byte): Steuerflags (z. B. Broadcast-Flag)
- ciaddr (4 Byte): bisherige IP-Adresse (falls vorhanden)
- yiaddr (4 Byte): zugeteilte IP-Adresse
- siaddr (4 Byte): IP-Adresse des DHCP-Servers
- giaddr (4 Byte): IP-Adresse des DHCP-Relays (meist Router)
- chaddr (16 Byte): Client-MAC-Adresse
- sname (64 Byte): Servername / Hostname (optional)
- file (128 Byte): Boot-Dateiname, falls z. B. PXE-Boot Anwendung findet (optional)
- options (bis 312 Bytes): Erweiterte DHCP-Optionen.
Manuelle und dynamische Adresszuweisung
Ein DHCP-Server kann Adressen auf mehrere Arten vergeben:
- Statische Zuordnung: Feste IPs werden dauerhaft bestimmten MAC-Adressen zugewiesen (Reservations). Versucht eine konfigurierte MAC-Adresse eine IP-Adresse zu beziehen, so wird die fest bestimmte vergeben. Diese DHCP-Konfiguration bietet sich bei Endgeräten an, deren Adresse fest bei anderen Endgeräten hinterlegt wird (z. B. Drucker oder Druckserver).
- Dynamische Zuordnung: IP werden für eine begrenzte „Lease-Time“ vergeben und nach Ablauf wieder zurückgegeben oder erneuert.
Statische Zuweisungen eignen sich für Server und Drucker, während dynamische Leases ideale Flexibilität für wechselnde Clients bieten.
DHCP bei IPv6
IPv6 bringt eine andere Denkweise in die Netzwerkkonfiguration: Anstelle eines einzigen Mechanismus kombinierst du mehrere Bausteine. Router Advertisements (RA) – also „Router Bekanntgaben“ - liefern Grundinformationen wie Präfixe und Gateway, während DHCPv6 je nach Einsatz entweder nur Zusatzparameter (stateless) oder auch Adressen (stateful) vergibt. Es gibt keine Broadcasts wie bei IPv4. Stattdessen wird zielgerichtet per Multicast und Unicast kommuniziert.
Wichtig ist die Signalwirkung der RA-Flags: Das Managed-Flag (M) kündigt an, dass Adressen via DHCPv6 bezogen werden sollen, während das Other-Config-Flag (O) darauf hinweist, dass zusätzliche Parameter (z. B. DNS) über DHCPv6 zu holen sind. Viele Netze nutzen einen Hybrid: SLAAC für die Adressbildung, DHCPv6 für DNS und Co. Das Default-Gateway kommt immer über RA, nicht über DHCPv6.
Aufschlüsselung der Verfahren
SLAAC (Stateless Address Autoconfiguration)
Der Router teilt per RA ein Präfix (typisch /64) mit. Der Client bildet eigenständig aus dem Präfix + Interface-Identifier (IID) (früher oft EUI-64) eine IPv6-Adresse.
Die RA tragen Preferred/Valid-Lifetimes im Prefix Information Option (PIO) Feld. Um doppelte Adressen zu vermeiden, führen Clients Duplicate Address Detection (DAD) durch.
Die SLAAC ist optimal für Clients, die keine feste Zuweisung benötigen.
Stateless DHCPv6 (nur Konfigurationsparameter)
Das Stateless DHCPv6 ergänzt die SLAAC um weitere Konfigurationswerte wie z. B. DNS-Server. Dabei wird die Adresse weiterhin automatisch durch den Client selbst gebildet.
Über die Other-Config-Flag (O) im RA wird den Clients bekanntgegeben das Zusatzinformationen über DHCPv6 bezogen werden können. Diese werden mit einem Information-Request durch die Clients abgefragt.
Wenn du die Einfachheit von SLAAC willst, aber die Kontrolle über wichtige Client-Parameter benötigst ist Stateless DHCPv6 die beste Option für dein Netzwerk.
Stateful DHCPv6 (Adress- und Parametervergabe)
Das Stateful DHCPv6 ist dem DHCPv4 am ähnlichsten. Ein Server oder ein Server-Cluster verwaltet dabei die Leases (verliehenen IP-Adressen) und weist Clients diese zu.
In der Praxis benötigt ein Client jedoch die Kenntnis über einen DHCPv6-Server im Netzwerk. Diese erhält er über die RA vom Router. Insofern generiert er sich zuerst eine Link-Local-Address um mit diesem zu kommunizieren. Das Managed-Flag (M) in der RA gibt ihm die Information das ein DHCPv6-Server zum Bezug von IPv6-Adressen nötig ist.
Anfrage der Router-Advertisement durch Client. Quelle: Technik-Kiste.de
Der Client sendet daraufhin eine DHCPv6-Solicit (Solicitation) an alle DHCPv6-Server im Netzwerk.
Diese Antworten ihm dann mit einem DHCPv6-Advertise. Dieser enthält alle relevanten Informationen zur Adressbildung wie den globalen-Präfix, DNS-Server, NTP-Server etc., um volle Funktionalität zu erreichen.
Sind mehrere DHCPv6-Server durch den Solicit erreicht und haben ihren Advertise an den Client gesendet, so wählt dieser eine der Konfigurationen aus. Im Regelfall sind sich die Konfigurationen jedoch gleich. Mit einem DHCPv6-Request wird dann beim DHCPv6-Server die Konfiguration explizit angefordert und mit einer DHCPv6-Reply durch den Server bestätigt. Dieser speichert sich zusätzlich die Konfiguration ab.
Kommunikation bei DHCPv6. Quelle: Technik-Kiste.de
Bei einer Verlängerung werden Renew/Rebind-Nachrichten verwendet.
Wichtig: Das Default-Gateway wird weiterhin per RA gelernt, nicht via DHCPv6.