32 DHCP #
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 Clientseite den NetworkManager verwenden, brauchen Sie den Client 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.
Auf IBM Z-Plattformen funktioniert DHCP nur bei Schnittstellen, die die OSA- und OSA Express-Netzwerkkarten verwenden. Nur diese Karten verfügen über eine für die Autokonfigurationsfunktionen von DHCP erforderliche MAC-Adresse.
Zum einen kann ein DHCP-Server so konfiguriert werden, dass er jeden Client anhand der Hardware-Adresse seiner Netzwerkkarte (die in der Regel unveränderlich sein sollte) identifiziert und ständig mit denselben Einstellungen versorgt, sobald der Client eine Verbindung herstellt. 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 Nameserver mitgeteilt. Im Übrigen können auch mehrere Parameter zentral konfiguriert werden, z. B. ein Zeitserver, von dem die Clients die aktuelle Uhrzeit abrufen können, oder ein Druckserver.
32.1 Konfigurieren eines DHCP-Servers mit YaST #
Zur Installation eines DNS-Servers starten Sie YaST, und wählen Sie
› . Wählen Sie › und schließlich aus. Bestätigen Sie die Installation der abhängigen Pakete, um den Installationsvorgang abzuschließen.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. Soll LDAP verwendet werden, richten Sie die LDAP-Umgebung ein, bevor Sie den DHCP-Server konfigurieren.
Weitere Informationen zu LDAP finden Sie im Chapter 5, LDAP with 389 Directory Server.
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.
32.1.1 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. Führen Sie dazu die folgenden Schritte aus:
Wählen Sie in dieser Liste die Schnittstelle aus, die der DHCP-Server überwachen soll, klicken Sie auf Abbildung 32.1, „DHCP-Server: Kartenauswahl“.
und anschließend auf . SieheAnmerkung: DHCP undfirewalld
Beachten Sie, dass die Option
(noch) nichtfirewalld
in SUSE Linux Enterprise Server 15 SP3 unterstützt. Führen Sie folgendes Kommando aus, um den DHCP-Port manuell zu öffnen:tux >
sudo
firewall-cmd --zone=public --permanent --add-service=dhcp
tux >
sudo
firewall-cmd --reload
Abbildung 32.1: DHCP-Server: Kartenauswahl #Geben Sie anhand des Kontrollkästchens an, ob Ihre DHCP-Einstellungen automatisch von einem LDAP-Server gespeichert werden sollen. In den Textfeldern 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. Siehe Abbildung 32.2, „DHCP-Server: globale Einstellungen“.
Abbildung 32.2: DHCP-Server: globale Einstellungen #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, für die eine bestimmte IP-Adresse auf dem Server für einen bestimmten Client reserviert bleibt. Siehe Abbildung 32.3, „DHCP-Server: dynamisches DHCP“.
Abbildung 32.3: DHCP-Server: dynamisches DHCP #Geben Sie an, auf welche Weise der DHCP-Server gestartet werden soll. Legen Sie fest, ob der DHCP-Server automatisch beim Booten des Systems oder bei Bedarf manuell (z. B. zu Testzwecken) gestartet werden soll. Klicken Sie auf Abbildung 32.4, „DHCP-Server: Start“.
, um die Konfiguration des Servers abzuschließen. SieheAbbildung 32.4: DHCP-Server: Start #Statt der Verwendung des dynamischen DHCP, wie in den vorigen Schritten beschrieben, können Sie den Server auch so konfigurieren, dass Adressen in fast statischer Weise zugewiesen werden. Geben Sie in die Textfelder im unteren Teil eine Liste der in dieser Art zu verwaltenden Clients ein. Geben Sie vor allem Abbildung 32.5, „DHCP-Server: Host-Verwaltung“.
und für einen solchen Client an, die und den (Token-Ring oder Ethernet). Ändern Sie die oben angezeigte Liste der Clients mit , und . SieheAbbildung 32.5: DHCP-Server: Host-Verwaltung #
32.1.2 DHCP-Server-Konfiguration (Experten) #
Zusätzlich zu den bisher erwähnten Konfigurationsmethoden gibt es einen Expertenkonfigurationsmodus, mit dem Sie die Einrichtung des DHCP-Servers detailgenau ändern können. Zum Starten der Expertenkonfiguration klicken Sie auf Abbildung 32.4, „DHCP-Server: Start“).
im Dialogfeld (siehe- Chroot-Umgebung und Deklarationen
Im ersten Dialogfeld bearbeiten Sie die vorhandene Konfiguration, indem Sie Abbildung 32.6, „DHCP-Server: Chroot Jail und Deklarationen“. Wenn Sie ausgewählt haben, definieren sie den Typ der hinzuzufügenden Deklaration. Mit können Sie die Protokolldatei des Servers abrufen, die TSIG-Schlüsselverwaltung konfigurieren und die Konfiguration der Firewall gemäß der Einrichtung des DHCP-Servers anpassen.
wählen. Eine wichtige Funktion des Verhaltens eines DHCP-Servers ist, dass er in einer Chroot-Umgebung (oder einem Chroot-Jail) ausgeführt werden kann und so den Server-Host schützt. Sollte der DHCP-Server durch einen Angriff von außen beeinträchtigt werden, bleibt der Angreifer im Chroot-Jail und kann auf den Rest des Systems nicht zugreifen. Im unteren Bereich des Dialogfelds sehen Sie eine Baumstruktur mit den bereits definierten Deklarationen. Diese verändern Sie mit , und . Wenn Sie wählen, werden zusätzliche Experten-Dialogfelder angezeigt. Weitere Informationen hierzu finden Sie imAbbildung 32.6: DHCP-Server: Chroot Jail und Deklarationen #- Auswählen des Deklarationstyps
Die Abbildung 32.7, „DHCP-Server: Auswählen eines Deklarationstyps“).
des DHCP-Servers bestehen aus mehreren Deklarationen. In diesem Dialogfeld legen Sie die Deklarationstypen , , , , und fest. In diesem Beispiel sehen Sie die Auswahl eines neuen Subnetzes (sieheAbbildung 32.7: DHCP-Server: Auswählen eines Deklarationstyps #- Konfiguration des Subnetzes
In diesem Dialogfeld können Sie ein neues Subnetz mit seiner IP-Adresse und Netzmaske angeben. In der Mitte des Dialogfelds ändern Sie die Startoptionen des DHCP-Servers für das ausgewählte Subnetz mit den Optionen
, und . Um einen dynamischen DNS für das Subnetz einzurichten, wählen Sie .Abbildung 32.8: DHCP-Server: Konfigurieren von Subnetzen #- TSIG-Schlüsselverwaltung
Wenn Sie im vorigen Dialogfeld die Konfiguration des dynamischen DNS vorgenommen haben, können Sie jetzt die Schlüsselverwaltung für einen sicheren Zonentransfer konfigurieren. Wenn Sie Abbildung 32.10, „DHCP-Server: Schnittstellenkonfiguration für dynamisches DNS“).
wählen, gelangen Sie zu einem weiteren Dialogfeld, in dem Sie die Schnittstelle für das dynamische DNS konfigurieren können (sieheAbbildung 32.9: DHCP-Server: TSIG-Konfiguration #- Dynamisches DNS: Schnittstellenkonfiguration
Jetzt können Sie das dynamische DNS für das Subnetz aktivieren, indem Sie Abbildung 32.8, „DHCP-Server: Konfigurieren von Subnetzen“). Wenn Sie noch einmal auf klicken, gelangen Sie wieder zum ursprünglichen Dialogfeld für die Expertenkonfiguration.
wählen. Danach aktivieren Sie im Dropdown-Feld die TSIG-Schlüssel für Forward und Reverse Zones. Vergewissern Sie sich dabei, dass die Schlüssel für den DNS- und den DHCP-Server dieselben sind. Mit der Option aktivieren Sie die automatische Aktualisierung und Einstellung der globalen DHCP-Servereinstellungen entsprechend der dynamischen DNS-Umgebung. Nun legen Sie fest, welche Forward und Reverse Zones über das dynamische DNS aktualisiert werden sollen. Dafür geben Sie den primären Namenserver für beide Zonen an. Wenn Sie wählen, gelangen Sie wieder zum Dialogfeld für die Subnetzkonfiguration (sieheAbbildung 32.10: DHCP-Server: Schnittstellenkonfiguration für dynamisches DNS #Anmerkung: Optionignore client-updates
Wenn Sie dynamisches DNS für eine Zone aktivieren, fügt YaST automatisch die Option
ignore client-updates
hinzu, um die Client-Kompatibilität zu erhöhen. Die Option kann deaktiviert werden, wenn sie nicht benötigt wird.- Netzwerkschnittstellenkonfiguration
Wenn Sie die Schnittstellen festlegen möchten, die vom DHCP-Server überwacht werden sollen, und die Firewall-Konfiguration anpassen, wählen Sie im Dialogfeld für die Expertenkonfiguration
› . In der Liste der angezeigten Schnittstellen wählen Sie die gewünschte(n) Schnittstelle(n) für den DHCP-Server aus. Falls Clients in allen Subnetzen mit dem Server kommunizieren müssen und der Server-Host durch eine Firewall geschützt ist, passen Sie die Einstellungen der Firewall entsprechend an.Anmerkung: DHCP undfirewalld
Beachten Sie, dass die Option
(noch) nichtfirewalld
in SUSE Linux Enterprise Server 15 SP3 unterstützt. Führen Sie folgendes Kommando aus, um den DHCP-Port manuell zu öffnen:tux >
sudo
firewall-cmd --zone=public --permanent --add-service=dhcp
tux >
sudo
firewall-cmd --reload
Abbildung 32.11: DHCP-Server: Netzwerkschnittstelle und Firewall #
Nach Abschluss aller Konfigurationsschritte schließen Sie das Dialogfeld mit
. Der Server wird jetzt mit seiner neuen Konfiguration gestartet.32.2 DHCP-Softwarepakete #
Sowohl der DHCP-Server als auch die DHCP-Clients stehen für SUSE Linux Enterprise Server zur Verfügung. Der vom Internet Systems Consortium (ISC) herausgegebene DHCP-Server dhcpd
stellt die Serverfunktionalität zur Verfügung. Auf der Clientseite befinden sich dhcp-client
(ebenfalls von ISC) sowie Werkzeuge aus dem wicked
-Paket.
Standardmäßig werden die wicked
-Werkzeuge mit den Diensten wicked-dhcp4
und wicked-dhcp6
installiert. Beide Services werden automatisch bei jedem Booten des Systems gestartet und übernehmen die Überwachung auf einem DHCP-Server. Sie kommen ohne eine Konfigurationsdatei aus und funktionieren im Normalfall ohne weitere Konfiguration. Für komplexere Situationen greifen Sie auf dhcp-client
von ISC zurück, das sich über die Konfigurationsdateien /etc/dhclient.conf
und /etc/dhclient6.conf
steuern lässt.
32.3 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 32.1, „Die Konfigurationsdatei /etc/dhcpd.conf“ an.
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 Nameserver sollte für jede dynamische Adresse jeweils einen Hostnamen und umgekehrt bereithalten. Weitere Informationen zum Konfigurieren eines eigenen Namenservers finden Sie in Kapitel 31, 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. In der Regel ist gerade bei kleineren Netzwerken 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 32.1, „Die Konfigurationsdatei /etc/dhcpd.conf“ können Clients Adressen zwischen 192.168.2.10
und 192.168.2.20
oder 192.168.2.100
und 192.168.2.200
zugewiesen werden.
Nach dem Bearbeiten dieser wenigen Zeilen sollten Sie bereits in der Lage sein, den DHCP-Daemon mit dem Befehl systemctl start dhcpd
zu 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 (der Server wird beispielsweise mit einem Fehler beendet oder gibt beim Starten nicht done
zurück), finden Sie in der zentralen Systemprotokolldatei, die mit dem Kommando journalctl
abgefragt werden kann, weitere Informationen dazu (siehe Kapitel 17, journalctl
: Abfragen des systemd
-Journals).
Auf einem SUSE Linux Enterprise-Standardsystem wird der DHCP-Daemon 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 systemctl start dhcpd
eingeben und die Dateien werden automatisch kopiert.
32.3.1 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 32.2, „Ergänzungen zur Konfigurationsdatei“ zur Konfigurationsdatei von Beispiel 32.1, „Die Konfigurationsdatei /etc/dhcpd.conf“ hinzugefügt, weist der DHCP-Daemon dem entsprechenden Client immer dieselben Daten zu.
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 ip
link 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.
32.3.2 Die Version von SUSE Linux Enterprise Server #
Aus Sicherheitsgründen enthält bei SUSE Linux Enterprise Server 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
/var/run/netconfig/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-Daemons weiter protokollieren kann, befindet sich der zusätzliche Eintrag SYSLOGD_ADDITIONAL_SOCKET_DHCP
in der Datei /etc/sysconfig/syslog
.
32.4 Weitere Informationen #
Weitere Informationen zu DHCP finden Sie auf der Website des Internet Systems Consortium (https://www.isc.org/dhcp/). Weitere Informationen finden Sie zudem auf den man-Seiten dhcpd
, dhcpd.conf
, dhcpd.leases
und dhcp-options
.