DHCP

Inhaltsverzeichnis

24.1. Konfigurieren eines DHCP-Servers mit YaST
24.2. DHCP-Softwarepakete
24.3. Der DHCP-Server dhcpd
24.4. Weiterführende Informationen

Zusammenfassung

Das DHCP (Dynamic Host Configuration Protocol) dient dazu, Einstellungen in einem Netzwerk zentral (von einem Server) aus zuzuweisen. Einstellungen müssen also nicht dezentral an einzelnen Arbeitsplatzcomputern konfiguriert werden. Ein für DHCP konfigurierter Host verfügt nicht über eine eigene statische Adresse. Er konfiguriert sich stattdessen vollständig und automatisch nach den Vorgaben des DHCP-Servers. Wenn Sie auf der Client-Seite den NetworkManager verwenden, brauchen Sie den Client überhaupt nicht zu konfigurieren. Das ist nützlich, wenn Sie in wechselnden Umgebungen arbeiten und nur jeweils eine Schnittstelle aktiv ist. Verwenden Sie den NetworkManager nie auf einem Computer, der einen DHCP-Server ausführt.

Eine Möglichkeit zur Konfiguration von DHCP-Servern besteht darin, jeden Client mithilfe der Hardwareadresse seiner Netzwerkkarte zu identifizieren (die in den meisten Fällen statisch ist) und anschließend diesen Client bei jeder Verbindung zum Server mit identischen Einstellungen zu versorgen. Zum anderen kann DHCP aber auch so konfiguriert werden, dass der Server jedem relevanten Client eine Adresse aus einem dafür vorgesehenen Adresspool dynamisch zuweist. In diesem Fall versucht der DHCP-Server, dem Client bei jeder Anforderung dieselbe Adresse zuzuweisen – auch über einen längeren Zeitraum hinweg. Das ist nur möglich, wenn die Anzahl der Clients im Netzwerk nicht die Anzahl der Adressen übersteigt.

DHCP erleichtert Systemadministratoren das Leben. Alle (selbst umfangreiche) Änderungen der Netzwerkadressen oder der -konfiguration können zentral in der Konfigurationsdatei des DHCP-Servers vorgenommen werden. Dies ist sehr viel komfortabler als das Neukonfigurieren zahlreicher Arbeitsstationen. Außerdem können vor allem neue Computer sehr einfach in das Netzwerk integriert werden, indem sie aus dem Adresspool eine IP-Adresse zugewiesen bekommen. Das Abrufen der entsprechenden Netzwerkeinstellungen von einem DHCP-Server ist auch besonders interessant für Notebooks, die regelmäßig in unterschiedlichen Netzwerken verwendet werden.

In diesem Kapitel wird der DHCP-Server im gleichen Subnetz wie die Workstations (192.168.2.0/24) mit 192.168.2.1 als Gateway ausgeführt. Er hat die feste IP-Adresse 192.168.2.254 und bedient die beiden Adressbereiche 192.168.2.10 bis 192.168.2.20 und 192.168.2.100 bis 192.168.2.200.

Neben IP-Adresse und Netzmaske werden dem Client nicht nur der Computer- und Domänenname, sondern auch das zu verwendende Gateway und die Adressen der Namenserver mitgeteilt. Im Übrigen können auch etliche andere Parameter zentral konfiguriert werden, z. B. ein Zeitserver, von dem die Clients die aktuelle Uhrzeit abrufen können, oder ein Druckserver.

Konfigurieren eines DHCP-Servers mit YaST

Zur Installation eines DNS-Servers starten Sie YaST und wählen Sie Software+Software installieren oder löschen aus. Wählen Sie Filter+Schemata und schließlich DHCP- und DNS-Server aus. Bestätigen Sie die Installation der abhängigen Pakete, um den Installationsvorgang abzuschließen.

[Important]LDAP-Unterstützung

Das DHCP-Modul von YaST kann so eingestellt werden, dass die Serverkonfiguration lokal gespeichert wird (auf dem Host, der den DHCP-Server ausführt) oder so, dass die Konfigurationsdaten von einem LDAP-Server verwaltet werden. Wenn Sie LDAP verwenden möchten, richten Sie die LDAP-Umgebung ein, bevor Sie den DHCP-Server konfigurieren.

Weitere Informationen zu LDAP finden Sie unter Chapter LDAP—A Directory Service (↑Security Guide).

Das DHCP-Modul von YaST (yast2-dhcp-server) ermöglicht die Einrichtung Ihres eigenen DHCP-Servers für das lokale Netzwerk. Das Modul kann im Assistentenmodus oder im Expertenkonfigurationsmodus ausgeführt werden.

Anfängliche Konfiguration (Assistent)

Beim ersten Starten des Moduls werden Sie von einem Assistenten aufgefordert, einige grundlegende Entscheidungen hinsichtlich der Serveradministration zu treffen. Nach Abschluss der anfänglichen Konfiguration ist eine grundlegende Serverkonfiguration verfügbar, die für einfache Szenarien ausreichend ist. Komplexere Konfigurationsaufgaben können im Expertenmodus ausgeführt werden.

Kartenauswahl

Im ersten Schritt ermittelt YaST die in Ihr System eingebundenen Netzwerkschnittstellen und zeigt sie anschließend in einer Liste an. Wählen Sie in dieser Liste die Schnittstelle aus, die der DHCP-Server überwachen soll, und klicken Sie auf Auswählen. Wählen Sie anschließend die Option Firewall für gewählte Schnittstelle öffnen, um die Firewall für diese Schnittstelle zu öffnen, und klicken Sie auf Weiter. Weitere Informationen hierzu finden Sie unter Abbildung 24.1, „DHCP-Server: Kartenauswahl“.

Abbildung 24.1. DHCP-Server: Kartenauswahl

DHCP-Server: Kartenauswahl

Globale Einstellungen

Geben Sie anhand des Kontrollkästchens an, ob Ihre DHCP-Einstellungen automatisch von einem LDAP-Server gespeichert werden sollen. In den Eingabefeldern legen Sie die Netzwerkinformationen fest, die jeder von diesem DHCP-Server verwaltete Client erhalten soll. Diese sind: Domänenname, Adresse eines Zeitservers, Adressen der primären und sekundären Namenserver, Adressen eines Druck- und WINS-Servers (für gemischte Netzwerkumgebungen mit Windows- und Linux-Clients), Gateway-Adressen und Leasing-Zeit. Weitere Informationen hierzu finden Sie unter Abbildung 24.2, „DHCP-Server: Globale Einstellungen“.

Abbildung 24.2. DHCP-Server: Globale Einstellungen

DHCP-Server: Globale Einstellungen

Dynamisches DHCP

In diesem Schritt konfigurieren Sie die Vergabe der dynamischen IP-Adressen an Clients. Hierzu legen Sie einen Bereich von IP-Adressen fest, in dem die zu vergebenden Adressen der DHCP-Clients liegen dürfen. Alle zu vergebenden Adressen müssen unter eine gemeinsame Netzmaske fallen. Legen Sie abschließend die Leasing-Zeit fest, für die ein Client seine IP-Adresse behalten darf, ohne eine Verlängerung der Leasing-Zeit beantragen zu müssen. Legen Sie optional auch die maximale Leasing-Zeit fest, innerhalb derer eine bestimmte IP-Adresse auf dem Server für einen bestimmten Client reserviert bleibt. Weitere Informationen hierzu finden Sie unter Abbildung 24.3, „DHCP-Server: Dynamisches DHCP“.

Abbildung 24.3. DHCP-Server: Dynamisches DHCP

DHCP-Server: Dynamisches DHCP

Fertigstellen der Konfiguration und Auswahl des Startmodus

Nachdem Sie den dritten Teil des Konfigurationsassistenten abgeschlossen haben, gelangen Sie in ein letztes Dialogfeld, das sich mit den Startoptionen des DHCP-Servers befasst. Hier können Sie festlegen, ob der DHCP-Server automatisch beim Booten des Systems oder bei Bedarf (z. B. zu Testzwecken) manuell gestartet werden soll. Klicken Sie auf Verlassen, um die Konfiguration des Servers abzuschließen. Weitere Informationen hierzu finden Sie unter Abbildung 24.4, „DHCP-Server: Start“.

Abbildung 24.4. DHCP-Server: Start

DHCP-Server: Start

DHCP-Softwarepakete

Für openSUSE stehen sowohl der DHCP-Server als auch die DHCP-Clients bereit. Der vom Internet Systems Consortium (ISC) herausgegebene DHCP-Server dhcpd stellt die Serverfunktionalität zur Verfügung. Wählen Sie auf der Client-Seite zwischen zwei verschiedenen DHCP-Client-Programmen: DHCP-Client (auch von ISC) und DHCP-Client-Daemon im Paket dhcpcd.

openSUSE installiert standardmäßig dhcpcd. Das Programm ist sehr einfach in der Handhabung und wird beim Booten des Computers automatisch gestartet, um nach einem DHCP-Server zu suchen. Es kommt ohne eine Konfigurationsdatei aus und funktioniert im Normalfall ohne weitere Konfiguration. Verwenden Sie für komplexere Situationen das Programm dhcp-client von ISC, das sich über die Konfigurationsdatei /etc/dhclient.conf steuern lässt.

Der DHCP-Server dhcpd

Das Kernstück des DHCP-Systems ist der dhcpd-Daemon. Dieser Server least Adressen und überwacht deren Nutzung gemäß den Vorgaben in der Konfigurationsdatei /etc/dhcpd.conf. Über die dort definierten Parameter und Werte stehen dem Systemadministrator eine Vielzahl von Möglichkeiten zur Verfügung, das Verhalten des Programms anforderungsgemäß zu beeinflussen. Sehen Sie sich die einfache Beispieldatei /etc/dhcpd.conf in Beispiel 24.1, „Die Konfigurationsdatei "/etc/dhcpd.conf"“ an.

Beispiel 24.1. Die Konfigurationsdatei "/etc/dhcpd.conf"

default-lease-time 600;         # 10 minutes
max-lease-time 7200;            # 2  hours

option domain-name "example.com";
option domain-name-servers 192.168.1.116;
option broadcast-address 192.168.2.255;
option routers 192.168.2.1;
option subnet-mask 255.255.255.0;

subnet 192.168.2.0 netmask 255.255.255.0
 {
  range 192.168.2.10 192.168.2.20;
  range 192.168.2.100 192.168.2.200;
 }

Diese einfache Konfigurationsdatei reicht bereits aus, damit der DHCP-Server im Netzwerk IP-Adressen zuweisen kann. Bitte achten Sie insbesondere auf die Semikolons am Ende jeder Zeile, ohne die dhcpd nicht startet.

Die Beispieldatei lässt sich in drei Abschnitte unterteilen. Im ersten Abschnitt wird definiert, wie viele Sekunden eine IP-Adresse standardmäßig an einen anfragenden Client geleast wird, bevor dieser eine Verlängerung anfordern sollte (default-lease-time). Hier wird auch festgelegt, wie lange ein Computer maximal eine vom DHCP-Server vergebene IP-Adresse behalten darf, ohne für diese eine Verlängerung anfordern zu müssen (max-lease-time).

Im zweiten Abschnitt werden einige grundsätzliche Netzwerkparameter global festgelegt:

  • Die Zeile option domain-name enthält die Standarddomäne des Netzwerks.

  • Mit dem Eintrag option domain-name-servers können Sie bis zu drei Werte für die DNS-Server angeben, die zur Auflösung von IP-Adressen in Hostnamen (und umgekehrt) verwendet werden sollen. Idealerweise sollten Sie vor dem Einrichten von DHCP einen Namenserver auf dem Computer oder im Netzwerk konfigurieren. Dieser Namenserver sollte für jede dynamische Adresse jeweils einen Hostnamen und umgekehrt bereithalten. Weitere Informationen zum Konfigurieren eines eigenen Namenservers finden Sie in Kapitel 23, Domain Name System (DNS).

  • Die Zeile option broadcast-address definiert die Broadcast-Adresse, die der anfragende Client verwenden soll.

  • Mit option routers wird festgelegt, wohin der Server Datenpakete schicken soll, die (aufgrund der Adresse von Quell- und Zielhost sowie der Subnetzmaske) nicht im lokalen Netzwerk zugestellt werden können. Gerade bei kleineren Netzwerken ist dieser Router auch meist mit dem Internet-Gateway identisch.

  • Mit option subnet-mask wird die den Clients zugewiesene Netzmaske angegeben.

Im letzten Abschnitt der Datei werden ein Netzwerk und eine Subnetzmaske angegeben. Abschließend muss noch ein Adressbereich gewählt werden, aus dem der DHCP-Daemon IP-Adressen an anfragende Clients vergeben darf. In Beispiel 24.1, „Die Konfigurationsdatei "/etc/dhcpd.conf"“ können Clients Adressen zwischen 192.168.2.10 und 192.168.2.20 sowie 192.168.2.100 und 192.168.2.200 zugewiesen werden.

Nachdem Sie diese wenigen Zeilen bearbeitet haben, können Sie den DHCP-Daemon bereits mit dem Befehl rcdhcpd start aktivieren. Der DHCP-Daemon ist sofort einsatzbereit. Mit dem Befehl rcdhcpd check-syntax können Sie eine kurze Überprüfung der Konfigurationsdatei vornehmen. Sollte wider Erwarten ein Problem mit der Konfiguration auftreten (z. B. der Server schlägt fehl oder gibt beim Starten done nicht zurück), finden Sie in der zentralen Systemprotokolldatei /var/log/messages meist ebenso Informationen dazu wie auf Konsole  10 ( Strg +Alt +F10).

Auf einem openSUSE-Standardsystem wird der DHCP-Dämon aus Sicherheitsgründen in einer chroot-Umgebung gestartet. Damit der Daemon die Konfigurationsdateien finden kann, müssen diese in die chroot-Umgebung kopiert werden. In der Regel müssen Sie dazu nur den Befehl rcdhcpd start eingeben, um die Dateien automatisch zu kopieren.

Clients mit statischen IP-Adressen

DHCP lässt sich auch verwenden, um einem bestimmten Client eine vordefinierte statische Adresse zuzuweisen. Solche expliziten Adresszuweisungen haben Vorrang vor dynamischen Adressen aus dem Pool. Im Unterschied zu den dynamischen verfallen die statischen Adressinformationen nie, z. B. wenn nicht mehr genügend freie Adressen zur Verfügung stehen und deshalb eine Neuverteilung unter den Clients erforderlich ist.

Zur Identifizierung eines mit einer statischen Adresse konfigurierten Clients verwendet dhcpd die Hardware-Adresse. Dies ist eine global eindeutige, fest definierte Zahl aus sechs Oktettpaaren, über die jedes Netzwerkgerät verfügt, z. B. 00:30:6E:08:EC:80. Werden die entsprechenden Zeilen, wie z. B. in Beispiel 24.2, „Ergänzungen zur Konfigurationsdatei“ zur Konfigurationsdatei von Beispiel 24.1, „Die Konfigurationsdatei "/etc/dhcpd.conf"“ hinzugefügt, weist der DHCP-Daemon dem entsprechenden Client immer dieselben Daten zu.

Beispiel 24.2. Ergänzungen zur Konfigurationsdatei

host jupiter {
hardware ethernet 00:30:6E:08:EC:80;
fixed-address 192.168.2.100;
}

Der Name des entsprechenden Clients (host Hostname, hier jupiter) wird in die erste Zeile, und die MAC-Adresse wird in die zweite Zeile eingegeben. Auf Linux-Hosts kann die MAC-Adresse mit dem Befehl iplink show gefolgt vom Netzwerkgerät (z. B. eth0) ermittelt werden. Die Ausgabe sollte in etwa wie folgt aussehen:

link/ether 00:30:6E:08:EC:80

Im vorherigen Beispiel wird also dem Client, dessen Netzwerkkarte die MAC-Adresse 00:30:6E:08:EC:80 hat, automatisch die IP-Adresse 192.168.2.100 und der Hostname jupiter zugewiesen. Als Hardwaretyp kommt heutzutage in aller Regel ethernet zum Einsatz, wobei durchaus auch das vor allem bei IBM-Systemen häufig zu findende token-ring unterstützt wird.

Die openSUSE-Version

Aus Sicherheitsgründen enthält bei der openSUSE-Version der DHCP-Server von ISC den non-root/chroot-Patch von Ari Edelkind. Damit kann dhcpd mit der Benutzer-ID nobody und in einer chroot-Umgebung (/var/lib/dhcp) ausgeführt werden. Um dies zu ermöglichen, muss sich die Konfigurationsdatei dhcpd.conf im Verzeichnis /var/lib/dhcp/etc befinden. Sie wird vom Init-Skript beim Start automatisch dorthin kopiert.

Dieses Verhalten lässt sich über Einträge in der Datei /etc/sysconfig/dhcpd steuern. Um den dhcpd ohne chroot-Umgebung laufen zu lassen, setzen Sie die Variable DHCPD_RUN_CHROOTED in der Datei /etc/sysconfig/dhcpd auf "no".

Damit der dhcpd auch in der chroot-Umgebung Hostnamen auflösen kann, müssen außerdem einige weitere Konfigurationsdateien kopiert werden:

  • /etc/localtime

  • /etc/host.conf

  • /etc/hosts

  • /etc/resolv.conf

Diese Dateien werden beim Starten des Init-Skripts in das Verzeichnis /var/lib/dhcp/etc/ kopiert. Berüchsichtigen Sie die Kopien bei Aktualisierungen, die benötigt werden, wenn sie durch ein Skript wie /etc/ppp/ip-up dynamisch modifiziert werden. Falls in der Konfigurationsdatei anstelle von Hostnamen nur IP-Adressen verwendet werden, sind jedoch keine Probleme zu erwarten.

Wenn in Ihrer Konfiguration weitere Dateien in die chroot-Umgebung kopiert werden müssen, können Sie diese mit der Variablen DHCPD_CONF_INCLUDE_FILES in der Datei /etc/sysconfig/dhcpd festlegen. Damit der dhcp-Daemon aus der chroot-Umgebung heraus auch nach einem Neustart des Syslog-ng-Daemons weiter protokollieren kann, befindet sich der zusätzliche Eintrag SYSLOGD_ADDITIONAL_SOCKET_DHCP in der Datei /etc/sysconfig/syslog.

Weiterführende Informationen

Weitere Informationen zu DHCP finden Sie auf der Website des Internet Systems Consortium (http://www.isc.org/products/DHCP/). Weitere Informationen finden Sie zudem auf den man-Seiten dhcpd, dhcpd.conf, dhcpd.leases und dhcp-options.