Inhaltsverzeichnis
Beim Aufbau (oder Betrieb) eines TCP/IP-Netzes gibt es grundsätzlich zwei denkbare Möglichkeiten, die Vergabe der benötigten IP-Adressen und Einstellungen vorzunehmen. Entweder jeder Rechner bekommt feste Adressen, die direkt auf diesem Rechner eingestellt werden müssen, oder die Adressen werden zentral auf einem Server verwaltet, die angeschlossenen Rechner beziehen dann ihre gesamten Einstellungen von diesem Server. Das dazu verwendete Protokoll heißt Dynamic Host Configuration Protocol oder eben kurz DHCP.
Die Vorteile einer zentralen Verwaltung aller Einstellungen liegen auf der Hand. Ab einer bestimmten Größe eines Netzes ist die Verwaltungsarbeit bei Änderungen der Netzstruktur kaum noch zu übersehen, wenn die Einstellungen auf jedem Rechner einzeln vorgenommen werden müssen. Zumal es sich bei den Einstellungen keineswegs nur um die IP-Adresse handelt. Ein DHCP Server kann folgende Netzwerkparameter verwalten:
- IP-Adressen
- Rechnername
- Netzmaske
- Broadcast Adresse
- Gateway
- DNS-Nameserver
- TTL
- NetBIOS Nameserver
- Wins Server
- Boot-Image für plattenlose Workstations
- POP3 oder SMTP Server
Zudem kommt die Tatsache, dass mit dem Einsatz von DHCP in einem großen Netz die Installation neuer Rechner im Netz zu einem Kinderspiel wird, und so auch für Nicht-Spezialisten durchführbar ist, ohne dass es dabei zu Konflikten mit anderen Rechnern kommen kann.
Prinzipielle Funktionsweise eines DHCP Server unter Linux
Die Kommunikation in einem lokalen Netz (meist Ethernet) erfolgt über die feste Hardware-Adresse (MAC-Adresse) der Netzwerkkarten. Aus der Sicht des OSI-Schichtenmodells kommunizieren die Netzwerkkarten auf der Sicherungsschicht ausschließlich mit dieser MAC-Adresse. Ein Rechner, der von sich selbst nicht weiß, welche IP-Adresse er hat, kann jetzt über einen Rundruf (Broadcast) an die Adresse 255.255.255.255 eine Nachfrage starten, welcher Rechner für ihn die entsprechenden Informationen bereithält. Diese Anfrage läuft über UDP – in der Regel auf Port 67 und 68.
Der zuständige DHCP-Server wird – wie jeder andere Rechner im Netz auch – diese Anfrage erhalten, die ja auch die MAC-Adresse des nachfragenden Rechners enthält. Er bestimmt jetzt die entsprechenden Angaben (IP-Adresse, Netmask usw.) und schickt sie an den Client zurück. Der kann jetzt seine Konfiguration vervollständigen und somit alle weiteren Dienste im Netz nutzen.
Dynamische und statische Konfiguration von DHCP Adressen
Der DHCP-Server kann jedem Rechner entweder eine dynamische (zufällige) IP-Adresse zuweisen, oder er bestimmt grundsätzlich eine statische Adresse anhand der MAC-Adresse des Clients. Welche Form jeweils gewählt wird, hängt mit den Aufgaben und Anforderungen des Clients zusammen:
Dynamische Adressen werden zumeist an Rechner vergeben, die ausschließlich als Workstation dienen und keine Dienste für andere Rechner im Netz anbieten. Dadurch kommt es zu keinen Konflikten beim Zugriff auf Server, denn Server haben immer die selbe Adressen.
Dynamische Adressen haben außerdem den Vorteil, dass in einem Netz mit sehr vielen Rechnern, die nicht gleichzeitig aktiv sind, die Möglichkeit besteht, einen knappen IP-Adressenbestand auf die gerade aktiven Rechner zu verteilen.
Statische Adressen bekommen die Rechner, die anderen Rechnern im Netz Dienste anbieten. Würden sich deren IP-Adressen dauernd ändern (durch dynamische Vergabe), so müsste jedes mal der Nameserver um konfiguriert werden, wenn ein entsprechender Server hochfährt.
Statische Adressvergabe erfordert es, dass der DHCP-Server die MAC-Adresse des Rechners kennt, der eine bestimmte statische IP-Adresse zugewiesen bekommen soll. Denn bei der Vergabe der IP-Adressen durch den DHCP-Server sind die MAC-Adressen das einzige Unterscheidungsmerkmal.
Die folgenden Beschreibungen beziehen sich auf den ISC-DHCP Server unter Linux (ISC steht für Internet Software Consortium) der praktisch jeder Distribution beiliegt. Im Zweifelsfall ist die neueste Version dieses Servers im Quellcode abrufbar.