Thema DHCP: Dynamische Hostkonfiguration mit ISC-DHCP-Server
Abschnitt 1: DHCP-Server Installieren und Konfigurieren
Installation des ISC-DHCP-Servers
Der **ISC-DHCP-SERVER** ist sehr schlank und tut genau, was er soll. Darum sind auch nur zwei Dateien zu erstellen bzw. zu bearbeiten, dann darf er schon arbeiten.
apt install isc-dhcp-server -y
Schnittstelle identifizieren
Wir brauchen zuerst wieder die Schnittstellen, auf denen wir den DHCP-Server betreiben wollen. Auf der WAN-Schnittstelle macht es jedenfalls keinen Sinn. Die Abfrage dazu erfolgt wieder mit:
ip a
Dort notieren Sie sich die Schnittstellen (z.B. `ens19`, `ens20`, `enp2s0` usw.).
Abschnitt 2: Konfiguration der DHCP-Optionen (`/etc/dhcp/dhcpd.conf`)
Öffnen Sie die zentrale Konfigurationsdatei:
nano /etc/dhcp/dhcpd.conf
Die Datei enthält eine Menge Kommentare, die als Hilfe dienen sollen. Wir aktivieren hier erstmal nur die grundlegenden globalen Optionen:
- `default-lease-time 57600;` (16 Stunden)
- `max-lease-time 86400;` (24 Stunden)
- `ddns-update-style none;` (Keine dynamische DNS-Aktualisierung)
# Ausschnitt aus dhcpd.conf
default-lease-time 57600;
max-lease-time 86400;
# The ddns-updates-style parameter controls whether or not the server will
# attempt to do a DNS update when a lease is confirmed.
ddns-update-style none;
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;
[...] // Viele Kommentare und Beispiele
Subnetz-Definition hinzufügen
Unsere Einstellungen für unser internes Netzwerk tragen wir am Schluss ein (Beispiel für `192.168.0.0/24`):
subnet 192.168.0.0 netmask 255.255.255.0 {
interface ens19; // Optional, aber nützlich zur Klarstellung
range 192.168.0.20 192.168.0.254;
option domain-name-servers 192.168.0.1;
option domain-name "domain.com";
option domain-search "domain.com";
option broadcast-address 192.168.0.255;
option subnet-mask 255.255.255.0;
option routers 192.168.0.1;
}
**Tipp:** Vergeben Sie die Adressen erst ab `192.168.0.20`. Somit haben Sie noch Platz für weitere Server mit statischen IPs (z.B. bis .19), die nicht per DHCP angebunden werden.
Dann speichern und schließen Sie die Datei:
STRG + O
STRG + X
Abschnitt 3: Schnittstelle zuweisen (`/etc/default/isc-dhcp-server`)
Nun zur zweiten Datei, die sagt, auf welcher Schnittstelle der DHCP-Server lauschen soll.
nano /etc/default/isc-dhcp-server
Suchen Sie die Zeile `INTERFACESv4` und tragen Sie dort die Schnittstelle ein, die Sie zuvor mit `ip a` identifiziert haben (hier exemplarisch `ens19`):
# [...]
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACESv4="ens19"
INTERFACESv6=""
Dann speichern und schließen und den DHCP-Server neu starten.
STRG + O
STRG + X
systemctl restart isc-dhcp-server.service
Statusprüfung
Nun können wir den Status vom Dienst anzeigen und DHCP selbst befragen, ob alles in Ordnung ist.
systemctl status isc-dhcp-server.service
Die Ausgabe sollte `Active: active (running)` zeigen und die verwendete Schnittstelle auflisten:
[...]
Active: active (running) since Fri 2025-07-11 16:35:58 CEST; 4s ago
[...]
└─651716 dhcpd -user dhcpd -group dhcpd -f -4 -pf /run/dhcp-server/dhcpd.pid -cf /etc/dhcp/dhcpd.conf ens19
Eine weitere Prüfung der Konfigurationsdatei mit der Schnittstelle:
root@server01:~# dhcpd -t ens19
Internet Systems Consortium DHCP Server 4.4.3-P1
Copyright 2004-2022 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Config file: /etc/dhcp/dhcpd.conf
Database file: /var/lib/dhcp/dhcpd.leases
PID file: /var/run/dhcpd.pid