Grosse Netze brauchen viel Verwaltungsaufwand. Speziell in Netzen, wo ein reger Wechsel der angeschlossenen Rechner stattfindet, ist eine automatische Verwaltung der benötigten Adressen notwendig. Das DHCP (Dynamic Host Configuration Protocol) schafft hier Abhilfe.
DHCP wird benutzt, um PC's als Clients in einem TCP/IP-Netz automatisch, also ohne manuellen Eingriff, zentral und somit einheitlich zu konfigurieren. Der Systemadministrator bestimmt, wie die IP-Adressen zu vergeben sind und legt die Dauer der Vergabe der IP-Adressen (Lease-Dauer) fest.
Warum DHCP wichtig ist
Während der Konfiguration der Clients werden Angaben wie IP-Adresse, Netzmasken oder die Adresse für den Router (den Standart-Gateway) oder den DNS-Server zentral festgelegt und vergeben (siehe RFC 2131 (03/97) und RFC 2241 (11/97) ). Im März 1998 ist zudem ein Entwurf des DHCP für IPv6 vorgelegt worden.
DHCP für den Client als auch für den Server wird z.B. von den Windows-OS unterstützt. Das DHCP-Protocol für Client-Server ist ein Windows-Socket-Programm. Die Benutzung von DHCP bringt die folgenden Vorteile mit sich:
- Zentralisierte Automatisation des Managments des Netzes
- automatische Zuordnung von Netzadressen, die dynamisch wiederverwertet werden können
- Fehler bei der manuellen Konfiguration werden vermieden
DHCP besteht im wesentlichen aus zwei Teilen. Der erste Teil liefert die rechnerspezifischen Parameter während der zweite Teil sich mit der Zuordnung der IP-Adressen beschäftigt. DHCP benutzt UDP, um über Port 67 und Port 68 seine Nachrichten zwischen Client und Server auszutauschen. Das nachfolgende Bild zeigt ein Netz mit mehreren Clients, das von einem DHCP-Server mit seiner Datenbank mit den verfügbaren Adressen verwaltet wird. Ein zweites Teilnetz ist über einen Router zum Server verbunden. Dieser Router oder DHCP/BOOTP-Relay-Agent (Bootstrap Protocol) ermöglicht das Weiterleiten von einem DHCP-Broadcast von einem Teilnetz in ein anderes. Dadurch wird für ein zweites Teilnetz die Verwendung eines eigenen DHCP-Servers überflüssig.
Die vier Phasen der Konfiguration
1. Phase: Ein DHCP-Client sendet, wenn er sich neu am Netz befindet, zuerst einmal eine Broadcast-Nachricht (DISCOVER) in das Netz oder Teilnetz an alle Server, um die Konfigurationsparameter und eine IP-Adresse zu erhalten.
2. Phase: Alle DHCP-Server, die sich im Netz befinden, prüfen, ob sie eine freie IP-Adresse haben. Falls eine der dynamisch zugewiesenen Adressen nicht benutzt wird, antworten der oder die Server mit einer OFFER-Nachricht.
3. Phase: Die erste OFFER-Nachricht eines Server, die beim Client eintrifft, wird vom Client angenommen. Mittels einer REQUEST-Nachricht teilt der Client dem Server mit, was die akzeptierten Parameter der IP-Adresse sind.
4. Phase: Der Server, der die Parameter gesendet hat, bestätigt den Anschluss des neuen Client mit einer ACK-Nachricht und teilt ihm mit, wie lange die zugeteilte IP-Adresse gültig ist.
Das obige Bild zeigt den Ablauf mit den vier vorher beschriebenen Phasen einer Konfiguration mit zwei DHCP-Servern. Nur ein Server bedient den Client. Schaltet sich ein Client ab und gibt die zugeordnete IP-Adresse an den Server zurück, sendet er eine RELEASE-Nachricht. Mit diesem RELEASE kann auch, wenn nicht anders festgelegt, die Adresse zur neuen automatischen Verteilung freigegeben werden und die Lease-Dauer auf Null gesetzt werden.
Das DHCP-Rahmenformat im Detail
Das Format von DHCP-Nachrichten ist im obigen Bild dargestellt. Darunter fallen z. B. DISCOVER- oder OFFER-Nachrichten. Im "OP"-Code steht, ob es sich um ein REQUEST oder einen REPLY handelt. Der "HType" spezifiziert den Typ der Hardware-Adresse. Das Feld "HLength" definiert die Länge der Hardware-Adresse. Das Feld "Hops" wird von einem Relay-Agent verwendet. Mit "XID" wird eine Transaktion gekennzeichnet, sowohl vom Server als auch vom Client. Eine Antwort bezieht sich immer auf die vorher erhaltene Transaktionsnummer.
Mit "Secs", das vom Client gesetzt wird, wird die Zeit seit Ausgabe der Anfrage bis hin zur Antwort eines DHCP-Servers gemessen. Mit "Flag" wird eine Broadcast-Nachricht bezeichnet. Die nächsten Felder sind Adressfelder. Als erstes ist die "Ciaddr"-Client-IP-Adresse spezifiziert. Es folgt "Yiaddr" (Your IP Address). Die "Siaddr" ist die Serveradresse, die der Client als erste Antwort auf seine DISCOVER-Nachricht erhalten hat.
Die "Giaddr" bezeichnet der Relay-Agenten, der beim Booten benutzt wurde. Im Feld "Chaddr" ist die Client Hardware-Adresse notiert. Hinter "Sname" verbirgt sich der Name des Servers.
Client sucht DHCP-Server
Im obigen Bild schaltet sich ein Client mit einer DISCOVER-Nachricht ein. Diese wird als Initialisierungsstatus bezeichnet. Mit einem Broadcast (255.255.255.255) sucht der Client einen Server. Diese Broadcast-Nachricht wird mittels der Protokolle IP und UDP über den "Well-known-Port" 68 im Netz verbreitet. Bis zu vier DISCOVER-Meldungen sendet der Client ins Netz, um einen Server zu finden. Jeder Server im Netz, der die DISCOVER-Nachricht erhält, antwortet als Broadcast-Nachricht über Port 67. Sind mehrere Server im Netz, dann akzeptiert der Client die erste OFFER-Nachricht, die er erhält.
DHCP-Client fragt nach IP-Adresse
Im obigen Bild ist dargestellt, wie der Client die Server informiert und eine IP-Adresse wählt, aber nach anderen Parameter mittels der REQUEST-Nachricht nachfragt. Der Client kennt zwar jetzt seine IP-Adresse, antwortet aber wieder mit einem Broadcast, um alle DHCP-Server im Netz zu informieren, dass er eine bestimmte IP-Adresse eines Servers ausgewählt hat.
Der Server antwortet mit einer ACK-Nachricht zur Bestätigung. Mit dieser Bestätigung wird auch die Lease-Dauer mitgeteilt, also wie lange die IP-Adresse gültig ist. Ab jetzt kann der Client mit der ihm zugeteilten Adresse an der Kommunikation im Netz teilnehmen.
Zusätzlich kennt das DHCP-Protokoll weitere Pakete. Beispielsweise lassen sich vom Client Pakete absenden, die dem Server anzeigen, dass die angebotenen Konfigurationsparameter ungültig sind (DECLINE-Nachricht). Weiter gibt es auch eine Anzeige, dass die angebotene IP-Adresse nicht verwendet werden kann (NACK-Nachricht).
Bei jedem Start eines Clients am Netz muss dieser bei seinem Server um eine Erneuerung oder Verlängerung der zugewiesenen, gültigen IP-Adresse nachfragen. Dazu werden nur die Nachricht REQUEST anstelle von OFFER und ACK ausgetauscht. Ebenso ist eine Verlängerung der Benutzung der IP-Adresse fällig, wenn die Lease-Dauer nach 50 Prozent überschritten ist. Diese Erneuerung oder Verlängerung wird nicht mit einem Broadcast beantragt.
Kommt zwischen dem Client und dem ursprünglichen Server keine Verbindung zustande und ist bereits 87,5 Prozent der Lease-Dauer abgelaufen, dann sendet der Client via Broadcast-Nachricht an alle Server, um die Lease-Dauer zu erneuern. Nach Ablauf dieser Lease-Dauer für die IP-Adresse darf der Client die IP-Adresse nicht weiter verwenden und muss einen neuen Antrag auf eine IP-Adresse stellen.