DHCP
DHCP, das Dynamic Host Control Protocol ist eigentlich ein Nachfolger
des Bootstrap-Protocols, das vor DHCP benutzt wurde um IP-Adressen
synamisch zuzuweisen und Diskless Workstation zu booten.
Einige Ziele bei der Entwicklung von DHCP waren:
- Zentrale Administration von IP-Subnetzen. Alle IP-Adressen
sollten zusammen mit einigen wichtigen Konfigurationsparametern in
einer zentralen Datenbank gespeichert und verwaltet werden.
- Automatische Zuweisung von IP-Adressen. Wenn ein
Client-Computer startet, sollte er in der Lage sein eine IP-Adresse
anzufordern und diese auch zugewiesen bekommen. Dabei sollte
ihm auch gleich mitgeteilt werden, welcher Rechner den für ihn
zuständigen Nameserver beherbergt, welches der Default-Gatreway des
Subnetzes ist und wie sein Name ist.
- Rückkehr von unbenutzten IP-Adressen in einen Pool von
IP-Adressen. Auf diese Art und Weise sollte es ermöglicht werden,
das mehr Maschinen (wenn auch nicht gleichzeitig) auf dem Netz
arbeiten konnten, als Adressen verfügbar waren. Wenn ein Client ein
ein enderes Netz wechselte, so sollte seine IP-Adresse wieder für
anderweitige Verwendung frei werden.
DHCP erfüllt alle diese Bedingungen. Wie es das genau macht steht in
- RFC 1533: DHCP Options and BOOTP
Vendor Extensions
- RFC 1534: Interoperation between
DHCP and BOOTP
- RFC 1541: Dynamic Host
Configuration Protocol (DHCP)
- RFC 1542: Clarifications and
Extensions for Bootstrap Protocol
DHCP-Leases
Lease ist einer der
wichtigsten Begriffe bei DHCP. Jede durch DHCP vergebene Adresse hat
eine Lease-Dauer, eine Zeit in der sie dem Client zur Verfügung steht.
DHCP vergibt seine Adressen ja nicht auf Dauer, sondern der
DHCP-Server vermietet eine Adresse nur für eine bestimmte Zeit.
Natürlich können sowohl derr Server als auch der Client den
Mietvertrag jederzeit kündigen.
Lease-Zeiten können von einigen Minuten bis zu mehreren Monaten
beliebig lang sein. Ist eine Lease abgelaufen und nicht erneuert werden,
so kehrt die Adresse in den Adresspool, den man auch Scope
nennt, zurück. Lease-Zeiten werden für jeden Scope extra eingestellt.
Leases können an eine MAC-Adresse gebunden werden, das heißt nur
der Client der sich mit der zugeordneten MAC-Adresse meldet, bekommt den
entsprechenden Lease.
Wie ein Client zu einer Adresse kommt
Ein DHCP-Client durchläuft einige von sechs Stadien wenn er versucht
seine IP-Adresse zu bekommen.
- Initialisierung. Wenn der TCP/IP-Stack auf
derClient-Maschine startet, bindet er sich mit einer Adresse von 0.0.0.0
. Das tut er weil jede Maschine in einem IP-Netzwerk eine IP-Adresse
braucht. Da er mit dieser Adresse selbstverständlich nicht arbeiten
kann, sendet er als nächstes ein DHCP Discover Packet, einen
UDP-Broadcast auf Port 67 in das Netz. UDP-Port 67 ist der DHCP/BOOTP-Server-Port.
- Auswahl. Jeder DHCP-Server im Netz empfängt diesen
Broadcast und prüft ob er eine gültige und freie IP-Adresse für
diesen Client hat. Wenn ja antwortet er mit einem DHCP Offer
Packet, fdas eine gültige IP-Adresse, Subnetmaske, die
IP-Adresse des DHCP-Servers, die Leasedauer und die anderen
Konfigurationsdetails enthält. Es handelt sich um einen
UDP-Broadcast auf UDP-Port 68, den DHCP/BOOTP-Client -Port. Alle
Server die dieses Paket senden reservieren diese Adresse in ihrem
Scope, d.h diese Adresse kann an keinen weiteren Cleint vergeben
werden, bis die Reservierung aufgehoben wird.
- Anforderung. Der Client wählt normalerweise die erste
Antwort aus und antwortet ( wieder per Broadcast) mit einem DHCP
Request Packet. Diese Paket sagt dem Server: Ja, ich nehme dein
Angebot an. Da es wieder ein Bradcast ist, der die Adresse des
ausgewählten Servers enthält, bekommen alle anderen DHCP-Server
mit, das sich das Problem erledigt hat und heben die Reservierung
der von ihnen angebotenen Lease auf. Mit dem Request-Packet kann der
Client auch zusätzliche Konfigurationsoptionen vom DHCP-Server
anfordern.
- Bindung. Wenn der Server das DHCP Request Packet empfängt,
antwortet er dem Client mit einem DHCP Acknowledge Packet, das alle
zusätzlichen Informationen erhält, die der Client vielleicht
verlangt hat. Auch dieses Paket kommt per Broadcast. Der Server
ordnet nun anhand der MAC-Adresse dem Client diese Lease zu, und der
Protokollstack auf dem Client konfiguriert sich entsprechend den
erhaltenen Informationen.
-
Erneuern. Merkt ein Client dass seine Lease
zu 50% abgelaufen ist, dann versucht er sie zu erneuern. Das macht
er mit einem gerichteten UDP-Packet an den Server, von dem er den
Lease erhalten hat. Dieses Paket ist ein DHCP-Request, der
anfragt ob der Client diese Lease behalten kann. Wenn der Server
verfügbar ist, dann ist er normalerweise einverstanden und sendet
einen DHCP-Acknowledge an den Client.
-
Wiederverbinden. Wenn die Lease etwa 87.5
Prozent ihrer Laufzeit erreicht hat, dann versucht der Client (
falls es bei 50 % nicht geklappt hat ) noch einmal seine Lease zu
erneuern. Wenn das nicht klappt, dann versucht der Client
irgendeinen DHCP-Server zu erreichen um eine gültige IP-Adresse zu
bekommen. Wenn ein anderer DHCP-Server ihm diese Adresse liefern
kann, dann ist er wiederverbunden, allerdings diesmal im Scope des
anderen Servers. Wenn die Lease völlig abgelaufen ist, dann muss
der Client die IP-Adresse aufgeben.
|