· 

Das DHCP-Protokoll

1. Einführung

Das DHCP-Protokoll bewirkt etwas, das wir in unserem täglichen Leben als Selbstverständlichkeit ansehen: Es geht um die Zuweisung von IP-Adressen an Endgeräte innerhalb eines Netzwerks.

2. Warum DHCP?

Die Abkürzung "DHCP" steht für "Dynamic Host Configuration Protocol". Das Ziel ist es, jedem Host im Netzwerk eine eindeutige IP-Adresse zuzuordnen, über die der Host innerhalb des Netzes angesprochen werden kann. Dies ist notwendig, um ein Netzwerk per TCP/IP aufbauen zu können. Dabei müssen an jedem Host die folgenden Einstellungen vorgenommen werden:

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

In einem Netzwerk mit wenigen Hosts können diese Informationen auch manuell zugewiesen werden. In einem größeren Netzwerk mit z. B. mehr als 100 Teilnehmern, sollte die Zuweisung automatisiert erfolgen. Und genau hier setzt das DHCP-Protokoll an.

Als Beispiel wird das folgende Netzwerk mit zwei Hosts A und B, einem Switch und einem Router betrachtet:

Die IP-Adresse der einzelnen Hosts muss eindeutig sein. Ansonsten ist nicht sichergestellt, dass ein Paket mit einer bestimmten IP-Adresse auch den richtigen Ziel-Host erreicht. Wenn sich Host A und B die IP-Adresse 192.168.2.12 teilen und das Paket eigentlich an B gehen soll, gibt es einen Konflikt. 


3. Ablauf des DHCP-Protokolls

Wie läuft das DHCP-Protokoll ab? Auf jedem Host läuft ein DHCP-Client, der es erlaubt, nach einer IP-Adresse zu fragen. Irgendwo im Netzwerk befindet sich ein DHCP-Server. Von diesem bezieht der DHCP-Client seine Konfiguration. DHCP-Server können auf Routern und Servern laufen. In der Regel ist der DHCP-Server ein Router. In einem Firmen-Netzwerk läuft der DHCP-Server sehr wahrscheinlich auch auf einem Server. 

Der Ablauf des DHCP-Protokolls lässt sich in vier Schritte unterteilen:

  1. DHCPDiscover
  2. DHCPOffer
  3. DHCPRequest
  4. DHCPACK

Schritt 1: DHCPDiscover

Wenn du deinen PC einschaltest und er noch keine IP-Adresse zugewiesen bekommen hat, sucht er nach einem DHCP-Server. Der PC ruft dann per Broadcast (also an alle Teilnehmer des Netzwerks) nach einem DHCP-Server.

Schritt 2: DHCPOffer

Nachdem der DHCP-Server die per Broadcast versendete Nachricht vom DHCP-Client empfangen hat, sendet er als Angebot eine IP-Adresse, die der Client haben könnte. Wenn mehrere Hosts per DCHPOffer angefragt haben, wird die IP-Adresse demjenigen zugeteilt, der zuerst gefragt hat. 

Schritt 3: DHCPRequest

Der Host, der mittlerweile die angebotene IP-Adresse vom DHCP-Server erhalten hat, teilt nun mit, dass er diese gerne haben möchte. Dies macht er mit einem DHCPRequest, den er an den DHCP-Server sendet.

Schritt 4: DHCPACK

Der DHCP-Server antwortet nun mit einem DHCP-Acknowledgement und sendet die IP-Adresse samt Subnetzmaske, dem Standard-Gateway und dem DNS-Server an den Host, der angefragt hat.

Der DHCP-Server führt Buch über die verliehenen IP-Adressen und die Dauer ihrer Gültigkeit. Die Zuweisung der einzelnen IP-Adressen ist nämlich zeitlich begrenzt, ebenso wie viele Mietverträge nur temporär geschlossen werden. Schließlich leiht sich ein Host die IP-Adresse nur. Der DHCP-Server speichert

  • die IP-Adresse, die er verliehen hat, 
  • die MAC-Adresse des Hosts, an die er sie verliehen hat und
  • die Lease-Time (also die Zeit, die der Host die IP-Adresse mieten darf). Diese Zeit sendet der DHCP-Server gleich mit dem DHCP-Offer mit. 

Kurz gesagt: 

  • DHCPDiscover: Der Host sucht per Broadcast nach einem DHCP-Server.
  • DHCPOffer: Der DHCP-Server bietet eine IP-Adresse an.
  • DHCPRequest: Der Host fordert die angebotene IP-Adresse an (Mietanfrage).
  • DHCPACK: Der DHCP-Server sendet die IP-Adresse an den Host. 

Das Protokoll nutzt übrigens UDP-Ports:

  • Der DHCP-Server nutzt Port 67.
  • Der DHCP-Client nutzt Port 68.