Login
Newsletter
Werbung

Mi, 11. August 2004, 00:00

Einrichtung eines DHCP-Servers

DHCP, was ist das?

Dieser Artikel beschreibt, wie man einen DHCP-Server unter Linux installiert und konfiguriert. Genaugenommen gibt es keinen DHCP-Server speziell für Linux, so daß der Artikel fast genauso für UNIX allgemein gilt.

Streng nach Vorschrift: Das Protokoll

DHCP ist ein Protokoll, mit dem die Netzwerk-Konfiguration eines Rechners (des DHCP-Clients) automatisch durch einen DHCP-Server festgelegt werden kann. Dies funktioniert für IP-Adresse, Gateway, DNS-Server, NetBEUI, WinS und so weiter, für uns ist allerdings nur der IP-Anteil von Interesse. Obwohl man das noch nicht sonderlich betonen muß, beschränken wir uns noch auf IPv4, das aktuell verwendete IP-Protokoll.

Eines der bemerkenswerten Features von DHCP ist, daß es dem Client eine IP-Adresse zuweisen kann. Diese Adresse kann so konfiguriert werden, daß ein Client immer die gleiche Adresse bekommt. In großen Netzen kann das aber unpraktikabel sein; es geht auch schief, wenn es wenige Adressen, aber viele Clients gibt, von denen immer nur ein Teil am Laufen ist. Daher kann DHCP vorgegebene Bereiche von Adressen verwalten und dem Client eine freie Adresse aus einem dieser Bereiche zuweisen. Der Client hat dann bei jedem Start eine andere IP-Adresse, doch ist das meist ohne Bedeutung. Die meisten werden dieses Feature von ihrem Internet-Zugang her kennen, wo man auch bei jeder Einwahl eine andere IP-Adresse erhält.

Ein weiteres Feature von DHCP ist, daß die vergebene IP-Adresse eine Gültigkeitsdauer hat. Diese kann bei wenigen Stunden liegen, in manchen Netzen auch bei einem Jahr, um möglichst immer dieselbe Adresse an einen Client zu vergeben. Beim Booten holt sich der Client immer eine Adresse vom Server. Ist der Client noch am Laufen, wenn die Gültigkeit abläuft (so etwas soll besonders bei Linux-Clients vorkommen), dann versucht der Client automatisch, sie zu verlängern. Der Benutzer merkt davon nichts.

Stets zu Diensten: Der DHCP-Server

Vielleicht haben Sie schon einmal in die Datei /etc/services geschaut. Dort findet man die Zeilen

bootps 67/udp # bootp
bootps 67/tcp # bootstrap protocol server
bootpc 68/udp
bootpc 68/tcp # bootstrap client

Dies sind Einträge für den DHCP-Server, der auf Port 67 lauscht und auf Port 68 sendet. Diese Zeilen müssen vorhanden sein, wenn man den DHCP-Server einsetzen will. Die Zeilen gelten übrigens auch für das BOOTP-Protokoll, den Vorläufer von DHCP. DHCP ist abwärtskompatibel zu BOOTP, d.h. ein DHCP-Server kann auch BOOTP-Clients versorgen.

Es versteht sich fast von selbst, daß ein DHCP-Server eine feste IP-Adresse besitzen sollte, also selbst kein DHCP-Client sein kann. Auch darf es nur einen DHCP-Server pro Subnetz geben, oder ein DHCP-Relay (wird am Schluß besprochen), aber nicht beides.

Es gibt, soweit mir bekannt, nur eine freie DHCP-Server-Implementation für Linux: die von ISC. Aktuell ist Version 3 (hier findet man auch Information über die neuen Features), doch auch Version 2 ist noch verwendbar, wenn man die neuen Features nicht braucht. Man sollte dann aber auf jeden Fall den aktuellsten Patchlevel (derzeit: 2.0pl5) einsetzen.

Auch ohne Klempner: Installation

Im folgenden beschreibe ich die Installation des DHCP-Servers vom ISC (Internet Software Consortium). Sollte der Server nicht in Ihrer Distribution enthalten sein oder eine neuere Version erschienen sein, kann der Quellcode vom ISC-Server heruntergeladen werden.

Den Quellcode zu übersetzen und installieren ist eine Kleinigkeit. Der bekannte Dreisatz sollte genügen:

./configure
make
make install

Ordnung ins Chaos: Konfiguration

Die Konfiguration des Servers erfolgt mit der Konfigurationsdatei /etc/dhcpd.conf. Will man eine alternative Konfiguration testen, so kann man das mit dem Aufruf

dhcpd -cf Konfigurationsdatei

tun. Die Syntax der Konfigurationsdatei ist ähnlich der des DNS-Servers BIND. Das verwundert nicht, da beide Server aus demselben Hause stammen.

Ein Wort sagt mehr als 1000 Bilder: Dokumentation

Neben den Manual Pages dhcpd(1) und dhcpd.conf(5) gibt es auch ein DHCP-Mini-HOWTO des Linux Documentation Project. Im Grunde genügt das schon. Es gibt natürlich auch Bücher zu dem Thema, ich habe jedoch keines davon verwendet.

Wegweiser im Dschungel: Grafische Konfigurationstools

Hans-Joachim Baader

Es gibt einige grafische oder auch textbasierte (dhcp-conf) Konfigurationsprogramme für den DHCP-Server. Diese entlasten einen zwar generell von der genauen Kenntnis der Syntax der Konfigurationsdatei, bieten aber darüber hinaus keine Vorteile. Denn es liegt in der Natur des Servers, daß hauptsächlich Daten, für die es keine vorgegebene Auswahl gibt, eingegeben werden müssen. Mit etwas gutem Willen könnten aber alle diese Programme verbessert werden. Zum Beispiel könnte für diverse IP-Adressen eine sinnvolle Vorgabe eingetragen werden. Außerdem hat keines der mir bekannten Programme eine Online-Hilfe.

Mindestens vier Programme beherrschen die DHCP-Konfiguration: dhcp-conf, webmin, kcmdhcp und linuxconf. Auf dhcp-conf werde ich hier nicht weiter eingehen, da es nicht mehr kann als kcmdhcp und webmin auch. Es ist allerdings ein Konsolen-Programm, was bei Servern, die kein X11 installiert haben, hilfreich sein kann. Von linuxconf hatte ich nur eine ältere Version greifbar, die noch kein DHCP konnte.

kcmdhcp

kcmdhcp ist eine Control-Panel-Anwendung für KDE 1. Es ist mir nicht bekannt, ob das Programm noch gewartet wird, denn die Homepage existiert nicht mehr. In KDE 2 und folgenden existiert es nicht mehr.

Das Aussehen des Programms ist fantasielos vom DHCP-Manager von Windows abgekupfert und dementsprechend unübersichtlich. Das Programm kann keine DHCP-Konfiguration einlesen, die nicht mit kcmdhcp erstellt wurde. In der Bedienung gibt es noch erhebliche Mängel. So findet keine Plausibilitätsprüfung statt, und eine existierende Konfigurationsdatei wird ohne Rückfrage überschrieben. Dieses Programm ist unbrauchbar.

Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung