Anwendung | DHCP | |||
Transport | UDP | |||
Netzwerk | IP | |||
Netzzugang | Ethernet | Token Ring |
FDDI | ... |
Das DHCP (Dynamic Host Configuration Protocol) ermöglicht mit Hilfe eines entsprechenden Servers die dynamische Zuweisung einer IP-Adresse und weiterer Konfigurationsparameter an Computern in einem Netzwerk (z.B. Internet oder LAN). Durch DHCP ist die Einbindung eines neuen Computers in ein bestehendes Netzwerk ohne weitere Konfiguration möglich. Ohne DHCP ist ein relativ aufwendiges Setup nötig, das neben der IP-Adresse die Eingabe weiterer Parameter wie Netzmaske, Gateway, DNS-Server, WINS-Server usw. verlangt. DHCP kann diese Parameter beim Starten eines neuen Rechners automatisch vergeben.
DHCP verwendet das BOOTP-Protokoll, mit dem sich laufwerklose Workstations realisieren lassen, die sich zunächst eine IP-Adresse vom BOOTP-Server holen, und anschließend ein Kernel-Image aus dem Netz nachladen, mit dem sie dann booten. DHCP ist weitgehend kompatibel zu BOOTP und kann mit BOOTP-Clients und -Servern eingeschränkt zusammenarbeiten.
DHCP wurde im Hinblick auf zwei Einsatzszenarien entwickelt:
- Große Netzwerke mit häufig wechselnder Topologie
- Anwender, die "einfach nur Netzwerkverbindung" haben wollen und nicht mit Netzwerkkonfiguation belastet werden sollen
In großen Netzwerken bietet DHCP den Vorteil, dass bei Topologieänderungen nicht mehr alle betroffenen Workstations per Hand umkonfiguriert werden müssen, sondern die entsprechenden Vorgaben vom Administrator nur einmal in der Konfigurationsdatei des DHCP-Servers gemacht werden müssen. Auch für Rechner mit häufig wechselndem Standort (z.B. Notebooks) entfällt die fehleranfällige Konfiguration - der Rechner wird einfach ans Netzwerk gesteckt und erfragt alle relevanten Parameter vom DHCP-Server. Dies wird manchmal auch als Plug'n'Play für Netzwerke bezeichnet.
Der DHCP-Server
Der DHCP-Server ist als Daemon implementiert und wartet auf UDP-Port 67 auf Client-Anfragen. In seiner Konfigurationsdatei hat er Angaben, wie lange eine bestimmte IP-Adresse an einen Client "vermietet" werden darf, bevor der Client sich erneut beim Server melden und eine "Verlängerung" beantragen sollte. Dem Client wird entweder eine freie Adresse aus einem vom Administrator festgelegten Pool, den der DHCP-Server verwaltet, zugeteilt, alternativ kann in der Konfigurationsdatei des Servers aber auch die MAC-Adresse des jeweiligen Clients hinterlegt werden, so dass ein auf diese Weise identifizierter Client keine pseudo-zufällige, sondern jedesmal die gleiche IP-Nummer zugeteilt bekommt. Zusätzliche Angaben über netzwerkrelevante Parameter wie die Subnetzmaske, die lokale DNS-Domäne oder das zu verwendende Gateway komplettieren die Konfigurationsdatei des DHCP-Servers.
Ablauf der DHCP-Kommunikation
Initiale Adresszuweisung
Wenn ein Client erstmalig eine IP-Adresse benötigt, schickt er eine DHCPDISCOVER-Nachricht als Netzwerk-Broadcast, auf die die verfügbaren DHCP-Server (es kann durchaus mehrere davon im gleichen Subnetz geben) mit DHCPOFFER antworten und einen Vorschlag für eine IP-Adresse machen. Dieser Broadcast hat als Absenderadresse 0.0.0.0 und als Zieladresse 255.255.255.255. Der Client darf nun unter den eingetroffenen Angeboten wählen. Wenn er sich für eines entschieden hat, kontaktiert er den entsprechenden Server mit der Nachricht DHCPREQUEST, worauf der Server ihm in einer DHCPACK-Nachricht die IP-Adresse mit den weiteren relevanten Daten übermittelt. Bevor der Client sein Netzwerkinterface mit der zugewiesenen Adresse konfiguriert, sollte er noch prüfen, ob nicht versehentlich noch ein anderer Rechner die Adresse verwendet.
DHCP-Refresh
Zusammen mit der IP-Adresse erhält der Client in der DHCPACK-Nachricht eine Lease-Zeit mitgeteilt, die ihm sagt, wie lange die zugeteilte Adresse für ihn reserviert ist. Der Standard sieht vor, dass der Client nach der Hälfte der Lease-Zeit einen erneuten DHCPREQUEST sendet und so bekundet, dass weiter Interesse an der reservierten IP-Nummer besteht. Dieser DHCPREQUEST wird per Unicast an den im Datenpaket enthaltenen Server gesendet. Der Server sollte dann in der Regel ein DHCPACK mit identischen Daten wie vorher, aber einer neuen Lease-Zeit senden. Damit gilt die Adresse als verlängert. Sollte der Client es versäumen, bis zum Ablauf der Lease-Zeit eine Verlängerung zu beantragen, so muss er seine Netzwerkkarte dekonfigurieren und wieder bei DHCPDISCOVER mit einer initialen Adresszuweisung beginnen.
DHCPv6
IPv6 sollte DHCP als eigenständiges Protokoll ursprünglich überflüssig machen, da viele DHCP-Funktionen serienmäßig in IPv6 enthalten sind. Ein IPv6-fähiger Rechner kann aus der MAC-Adresse seines Netzwerk-Interfaces eine Link-lokale IPv6-Adresse errechnen, unter der er dann im lokalen Netz erreichbar ist. Mit einer Anfrage an eine bestimmte Multicast-Gruppe (ff02::2) kann der Client nach erreichbaren Routern suchen und diese als Gateway verwenden. Bis hierhin funktioniert diese statuslose Autokonfiguration recht zuverlässig, wenn der Client jedoch auch noch einen DNS-Server braucht, bekommt er ein Problem, weil das Konzept der Autokonfiguration an dieser Stelle nicht zu Ende gedacht wurde: Eine automatische Suche nach DNS-Servern kommt in den gegenwärtigen Fassungen der IPv6-RFCs nicht vor. Es existieren verschiedene Lösungsansätze, wie z. B. eine weitere Multicastgruppe, an der die DNS-Server des lokalen Netzwerks lauschen. Diese sind jedoch bislang nicht standardisiert, so dass man für autokonfiguriertes DNS unter IPv6 bislang auf DHCP angewiesen bleibt. Für den beschriebenen Fall und Szenarios, in denen die automatische Netzwerkkonfiguration von IPv6-Clients nicht in die Hände des lokalen IPv6-Stacks im Betriebssystem gelegt werden soll, ist daher seit Juli 2003 in RFC 3315 das Protokoll DHCPv6 definiert, das in der IPv6-Welt die gleiche Funktionalität wie das gegenwärtig aktuelle DHCPv4 für IPv4 zur Verfügung stellt. Darüber hinaus ist DHCPv6 darauf ausgelegt über optionale Felder im DHCPv6-Protokoll Konfiguratiosinformationen über NIS+-, SIP-, NTP- und weitere Dienste zu transportieren. Welche Optionen in DHCPv6 aufgenommen werden, wird von der DHCP-Arbeitsgruppe der IETF festgelegt. Weitere nette Features von DHCPv6 sind die integrierten Sicherheitsfunktionen, durch die es möglich ist DHCPv6 nut autorisierten Clients zugänglich zu machen, sowie die Möglichkeit die Adresskonfiguration weiterhin per statusloser Autokonfiguration erfolgen zu lassen, jedoch weitere Konfigurationsdetails per DHCPv6 auf die Clients zu bringen. Abweichend zu DHCPv4 läuft bei v6 die Kommunikation über die UDP-Ports 546 (Client) und 547 (Server).