VMware ESXi and vSphere Cluster Management
DHCP unter Linux: Dynamische IP-Adressen, Leases und Client-Konfiguration
DHCP unter Linux verständlich erklärt: DORA-Ablauf, IP-Adresspools, Leases, Reservierungen, Client-Konfiguration, Diagnose und Sicherheit.
DHCP steht für Dynamic Host Configuration Protocol. Das Protokoll versorgt Geräte automatisch mit einer IPv4-Adresse und weiteren Netzwerkeinstellungen. Dieser Beitrag erklärt den Ablauf, Leases, DHCP-Reservierungen sowie die Konfiguration und Diagnose eines DHCP-Clients unter Linux.
Was ist DHCP?
DHCP ist ein Client-Server-Protokoll zur automatischen Vergabe von Netzwerkkonfiguration. Statt jedes Gerät manuell mit IP-Adresse, Subnetzmaske, Gateway und DNS-Server einzurichten, stellt ein zentraler DHCP-Server diese Werte bereit.
Bei einer statischen Konfiguration werden die Werte direkt am Gerät oder in dessen Netzwerkprofil eingetragen. Das kann für Server, Router oder andere dauerhaft erreichbare Systeme sinnvoll sein, verursacht bei vielen Geräten aber höheren Verwaltungsaufwand. DHCP bietet dagegen:
- geringeren Konfigurationsaufwand bei vielen Clients,
- einheitliche Einstellungen im Netzwerk,
- weniger Adresskonflikte durch zentrale Vergabe,
- einfachere Änderungen an Gateway, DNS oder Suchdomain.
DHCP ersetzt keine Netzplanung. Der Server muss weiterhin wissen, welches Subnetz und welcher Adressbereich verwendet werden dürfen.
DHCP-Client, DHCP-Server und IP-Adresspool
Ein DHCP-Client ist ein Gerät oder Betriebssystem, das eine Netzwerkkonfiguration von einem DHCP-Server anfordert. Dazu gehören beispielsweise Linux-PCs, Laptops, Smartphones, Drucker, virtuelle Maschinen und viele Netzwerkgeräte.
Ein DHCP-Server verwaltet einen oder mehrere Adressbereiche, beantwortet Anfragen und vergibt zusammen mit der Adresse weitere DHCP-Optionen. Ein Linux-System kann beide Rollen übernehmen: Es kann selbst als DHCP-Client eine Adresse anfordern oder als DHCP-Server andere Geräte versorgen.
Der IP-Adresspool ist der Bereich dynamisch vergebbarer Adressen. In einem Netz 192.168.10.0/24 könnte beispielsweise der Bereich 192.168.10.100 bis 192.168.10.200 für normale Clients vorgesehen sein. Adressen für Router, Server oder Drucker sollten außerhalb dieses Pools liegen oder als Reservierungen sauber verwaltet werden.
Welche Einstellungen überträgt DHCP?
| Wert | Beispiel | Funktion für den Client |
|---|---|---|
| IPv4-Adresse | 192.168.10.42 | Adresse des Geräts im IP-Netz |
| Subnetzmaske oder Präfix | 255.255.255.0 beziehungsweise /24 | Trennt Netz- und Hostanteil der Adresse |
| Standard-Gateway | 192.168.10.1 | Router für Ziele außerhalb des lokalen Netzes |
| DNS-Server | 192.168.10.1 oder ein anderer Resolver | Löst Hostnamen in IP-Adressen auf |
| DNS-Suchdomain | firma.example | Ergänzt bei Bedarf kurze Hostnamen |
| Lease-Dauer | 8 Stunden | Legt fest, wie lange die Zuweisung gültig ist |
| Weitere Optionen | Zeitserver, Routen, PXE-Parameter | Ergänzen die Netzwerkkonfiguration für spezielle Anwendungen |
Eine DNS-Suchdomain ist nicht dasselbe wie ein DNS-Server. Der DNS-Server beantwortet Namensanfragen; die Suchdomain kann aus einem kurzen Namen wie drucker automatisch drucker.firma.example machen.
Der DHCP-Ablauf: DORA
Bei einer erstmaligen IPv4-Adressvergabe wird häufig die Abfolge DORA verwendet: DHCPDISCOVER, DHCPOFFER, DHCPREQUEST und DHCPACK.
Zu Beginn besitzt der Client möglicherweise noch keine gültige IPv4-Adresse und kennt die Adresse des DHCP-Servers nicht. Deshalb sendet er ein IPv4-Broadcast an 255.255.255.255. Diese eingeschränkte Broadcast-Adresse erreicht die Teilnehmer der lokalen Broadcast-Domain. DHCP-Broadcasts bleiben normalerweise auf dem lokalen Layer-2-Netz beziehungsweise VLAN.
| Schritt | Nachricht | Sender | Empfänger beziehungsweise Übertragungsart | Zweck |
|---|---|---|---|---|
| 1 | DHCPDISCOVER | Client | Broadcast, häufig an 255.255.255.255 | Sucht erreichbare DHCP-Server |
| 2 | DHCPOFFER | DHCP-Server | Antwort an den Client, je nach Zustand als Broadcast oder direkt | Bietet eine Adresse, Lease-Dauer und weitere Optionen an |
| 3 | DHCPREQUEST | Client | Broadcast oder geeignete direkte Übertragung | Fordert ein ausgewähltes Angebot an |
| 4 | DHCPACK | DHCP-Server | Bestätigung an den Client | Bestätigt die Lease und schließt die Konfiguration ab |
Mehrere DHCP-Server können auf ein DHCPDISCOVER mit eigenen DHCPOFFER-Nachrichten antworten. Der Client wählt ein Angebot nach seinen Regeln aus und teilt die Auswahl mit DHCPREQUEST mit. Die Server erkennen dadurch, welches Angebot angenommen wurde.
Mit DHCPNAK kann ein Server eine angeforderte Konfiguration ablehnen oder für ungültig erklären, etwa wenn der Client in ein anderes Subnetz gewechselt ist. Der Client muss dann typischerweise erneut nach einer gültigen Konfiguration suchen.
Beispiel: Ein neuer Linux-Laptop
Ein Laptop wird mit dem Büronetz verbunden. Seine Netzwerkschnittstelle sendet ein DHCPDISCOVER. Der DHCP-Server bietet beispielsweise 192.168.10.42/24 an. Zusätzlich erhält der Laptop das Gateway 192.168.10.1, einen DNS-Server, die Suchdomain firma.example und eine Lease-Dauer.
Nach DHCPREQUEST bestätigt der Server die Zuweisung mit DHCPACK. Die Adresse ist nicht dauerhaft garantiert, sondern nur für die Lease-Dauer gültig. Der Client versucht deshalb rechtzeitig, sie zu verlängern.
Leases und Erneuerung
Eine Lease ist eine zeitlich begrenzte Zuweisung einer IP-Adresse und der zugehörigen Einstellungen. Die Lease-Zeit verhindert, dass nicht mehr aktive Geräte Adressen unbegrenzt blockieren.
Während der Lease versucht der Client, die Zuweisung zu verlängern. Zwei wichtige Zeitpunkte sind:
- T1: Der Client beginnt normalerweise, beim ursprünglichen DHCP-Server eine Erneuerung anzufordern.
- T2: Wenn der ursprüngliche Server nicht antwortet, beginnt der Client eine erneute Suche nach verfügbaren DHCP-Servern, häufig über Broadcast.
Ist der ursprüngliche Server bei T1 nicht erreichbar, kann der Client die bisherige Konfiguration zunächst weiterverwenden. Bei T2 versucht er, die Lease über andere erreichbare Server zu erneuern. Läuft die Lease ohne erfolgreiche Erneuerung ab, darf der Client die Adresse nicht weiterverwenden. Er entfernt sie normalerweise und startet eine neue DHCP-Suche. Dadurch kann vorübergehend die Netzwerkverbindung ausfallen.
Kehrt ein Laptop nach mehreren Tagen zurück, kann eine noch gültige Lease verlängert werden. Ist sie abgelaufen oder für das aktuelle Netz ungültig, erhält der Laptop eine neue Zuweisung.
MAC-Adresse, Client-Identifier und Reservierungen
Eine MAC-Adresse ist die Adresse einer Netzwerkschnittstelle auf der Sicherungsschicht, also typischerweise auf OSI-Schicht 2. Eine IP-Adresse gehört zur Vermittlungsschicht, Schicht 3. Die MAC-Adresse identifiziert eine Schnittstelle innerhalb eines lokalen Netzes; die IP-Adresse dient der logischen Kommunikation und dem Routing.
Ein DHCP-Server kann Clients anhand der MAC-Adresse oder eines DHCP-Client-Identifiers wiedererkennen. Eine DHCP-Reservierung ordnet einem bestimmten Client eine fest vorgesehene IP-Adresse zu. Der Client bleibt dabei grundsätzlich DHCP-Client, erhält aber bei jeder passenden Anfrage dieselbe Adresse.
| Methode | Verwaltungsort | Geeignete Einsatzfälle | Vorteile | Risiken oder Einschränkungen |
|---|---|---|---|---|
| Dynamische Zuweisung | DHCP-Server | Laptops, Arbeitsplätze, Gastgeräte | Wenig manueller Aufwand, gute Pool-Auslastung | Adresse kann sich ändern |
| DHCP-Reservierung | DHCP-Server | Drucker, Kameras, ausgewählte Infrastruktur | Feste Adresse bei zentraler Verwaltung | Abhängigkeit von korrekter MAC-Adresse oder Client-ID |
| Statische IP | Gerät oder Netzwerkprofil | Server, Router, spezielle Systeme | Unabhängig von DHCP erreichbar | Mehr Pflegeaufwand und Gefahr von Konflikten |
MAC-Adressen sind veränderbar beziehungsweise fälschbar. Eine DHCP-Reservierung anhand der MAC-Adresse ist daher eine Verwaltungsfunktion, aber keine starke Sicherheitsgrenze. Für Zugriffsschutz sind zusätzliche Maßnahmen wie Authentifizierung, Switch-Schutz oder Netzwerksegmentierung erforderlich.
DHCP unter Linux konfigurieren
Die verwendete Schnittstelle ermitteln
Linux benennt Schnittstellen beispielsweise als enp1s0, eth0 oder wlan0. Zuerst werden vorhandene Schnittstellen, Adressen und Routen geprüft:
ip link show
ip address show
ip route show
Die Schnittstelle mit einem aktiven Link und einer passenden Adresse ist für die weitere Prüfung relevant.
NetworkManager
NetworkManager verwaltet auf vielen Desktop-Distributionen und auch auf manchen Servern Netzwerkverbindungen. Status und Profile lassen sich mit nmcli anzeigen:
nmcli device status
nmcli connection show
nmcli device show <schnittstelle>
Eine bestehende NetworkManager-Verbindung kann auf automatischen IPv4-Bezug umgestellt werden:
nmcli connection modify <verbindung> ipv4.method auto
nmcli connection up <verbindung>
Der konkrete Verbindungsname muss an das System angepasst werden. Wenn DNS ebenfalls automatisch von DHCP kommen soll, dürfen keine widersprüchlichen manuellen DNS-Einstellungen im Profil hinterlegt sein.
systemd-networkd
systemd-networkd ist ein schlanker Netzwerkdienst, der häufig auf Servern oder minimalen Installationen eingesetzt wird. Eine beispielhafte Client-Konfiguration lautet:
[Match]
Name=enp1s0
[Network]
DHCP=yes
Dateiname, Speicherort und Schnittstellenname sind systemabhängig. Nach einer Änderung muss die Verbindung oder der Dienst neu geladen beziehungsweise neu gestartet werden.
Netplan und klassische DHCP-Clients
Netplan beschreibt Netzwerkkonfiguration deklarativ und erzeugt daraus je nach System eine Konfiguration für NetworkManager oder systemd-networkd. Die eigentliche DHCP-Verarbeitung übernimmt dann der ausgewählte Backend-Dienst.
Klassische DHCP-Clients wie dhclient können eine Lease direkt anfordern. Sie sollten aber nicht gleichzeitig mit einem anderen Dienst dieselbe Schnittstelle verwalten:
sudo dhclient -r <schnittstelle>
sudo dhclient -v <schnittstelle>
Der erste Befehl gibt eine vorhandene Lease frei, der zweite fordert eine neue an. Diese Befehle sind nur sinnvoll, wenn dhclient installiert ist und kein Konflikt mit NetworkManager, systemd-networkd oder einem anderen Netzwerkdienst entsteht.
DHCP-Konfiguration und Linux-Diagnose prüfen
| Werkzeug | Zweck | Typischer Einsatz |
|---|---|---|
ip | Adressen, Schnittstellen und Routing anzeigen | ip address show, ip route show |
nmcli | NetworkManager und Verbindungsprofile prüfen | nmcli device status |
resolvectl | DNS-Server und systemd-resolved prüfen | resolvectl status |
/etc/resolv.conf | Aktuelle Resolver-Konfiguration ansehen | cat /etc/resolv.conf |
journalctl | System- und Dienstprotokolle auswerten | DHCP-Fehler und Verbindungswechsel suchen |
tcpdump | DHCP-Pakete beobachten | Broadcasts, Angebote und Serveradressen analysieren |
resolvectl status
cat /etc/resolv.conf
journalctl -b | grep -i dhcp
journalctl -u NetworkManager -b
journalctl -u systemd-networkd -b
Für einen Paketmitschnitt wird die konkrete Schnittstelle eingesetzt:
sudo tcpdump -ni <schnittstelle> 'port 67 or port 68'
UDP-Port 67 wird üblicherweise vom DHCP-Server verwendet, UDP-Port 68 vom DHCP-Client. Ein Mitschnitt kann zeigen, ob ein DHCPDISCOVER gesendet wird, welcher Server antwortet und welche Optionen übertragen werden.
DHCP über mehrere Subnetze: DHCP-Relay
DHCP-Broadcasts werden normalerweise nicht von Routern in andere IP-Subnetze weitergeleitet. Ein Client in einem anderen VLAN erreicht den DHCP-Server daher nicht automatisch.
Ein DHCP-Relay nimmt DHCP-Anfragen in einem Subnetz entgegen und leitet sie als Weiterleitungsanfrage an einen DHCP-Server in einem anderen Subnetz. Die Relay-Komponente ergänzt Informationen zum ursprünglichen Netz, damit der Server den passenden Adresspool auswählen kann.
Ohne Relay benötigt jedes versorgte Broadcast-Netz typischerweise einen erreichbaren DHCP-Server oder eine andere geeignete Infrastruktur.
Abgrenzung zu DNS, ARP und statischer IP-Konfiguration
- DHCP verteilt Netzwerkkonfiguration wie IP-Adresse, Gateway und DNS-Server.
- DNS übersetzt Namen wie
server.examplein IP-Adressen und umgekehrt. - ARP ermittelt im IPv4-LAN die MAC-Adresse zu einer bekannten IPv4-Adresse.
- Statische IP-Konfiguration setzt Netzwerkwerte manuell oder über ein festes Profil, ohne dass sie für den normalen Betrieb von DHCP bezogen werden müssen.
Bei IPv6 gibt es neben DHCPv6 auch Router Advertisements. Router Advertisements können Präfixe und Standardrouter bekanntgeben; DHCPv6 kann weitere Konfigurationswerte liefern. Diese Mechanismen sind nicht einfach identisch mit dem IPv4-DORA-Ablauf.
Typische Fehler und ihre Diagnose
Keine IPv4-Adresse
Mögliche Ursachen sind ein nicht erreichbarer DHCP-Server, ein falsches VLAN, eine fehlerhafte physische Verbindung, ein erschöpfter Adresspool oder ein deaktivierter beziehungsweise konkurrierender DHCP-Client.
- Link-Status mit
ip link showprüfen. - Adressen und Routen mit
ip address showundip route showkontrollieren. - Protokolle von NetworkManager oder systemd-networkd auswerten.
- Mit
tcpdumpfeststellen, ob DHCP-Anfragen und Antworten sichtbar sind.
IP-Adresse vorhanden, aber externe Ziele nicht erreichbar
Dann fehlen möglicherweise die Standardroute oder das korrekte Standard-Gateway. ip route show sollte eine passende Standardroute anzeigen. Das Gateway kann, sofern ICMP erlaubt ist, gezielt getestet werden. Ein Vergleich mit einem funktionierenden Client im selben Netz hilft bei der Eingrenzung.
IP-Verbindungen funktionieren, aber Namen werden nicht aufgelöst
Prüfe mit resolvectl status oder cat /etc/resolv.conf, ob ein DNS-Server eingetragen ist. Eine manuelle DNS-Einstellung kann die vom DHCP-Server gelieferten Werte überschreiben. Zusätzlich kann der DNS-Server selbst nicht erreichbar sein.
Unerwartete Adresse oder unerwartetes Gateway
Mehrere DHCP-Server, ein Rogue-DHCP-Server, ein falsches VLAN oder ein anderes Netzwerksegment können die Ursache sein. Ein Paketmitschnitt zeigt den Absender der DHCPOFFER-Nachricht. Die zugehörige MAC-Adresse sollte mit der dokumentierten Netzwerkinfrastruktur abgeglichen werden.
Reservierte Adresse wird nicht vergeben
Kontrolliere die tatsächlich verwendete MAC-Adresse mit ip link show. Der Client kann eine andere Schnittstelle oder einen abweichenden Client-Identifier verwenden. Außerdem müssen die Serverkonfiguration und Lease-Daten aktualisiert sein. Danach kann eine Lease-Freigabe mit anschließendem erneuten Anfordern helfen.
Betrieb und Sicherheit
In einem verwalteten Netzwerk sollten nur autorisierte DHCP-Server aktiv sein. Ein Rogue-DHCP-Server ist ein nicht autorisierter Dienst, der Clients beispielsweise ein falsches Gateway oder einen manipulierten DNS-Server anbietet. Dadurch können Verbindungen ausfallen oder Datenverkehr umgeleitet werden.
- DHCP-Server und ihre Zuständigkeit dokumentieren.
- Adresspools so planen, dass statische Adressen und dynamische Bereiche nicht kollidieren.
- Reservierungen für Geräte mit planbarer Adresse zentral verwalten.
- Leases und Änderungen an der Serverkonfiguration protokollieren.
- Switch-Funktionen wie DHCP-Snooping einsetzen, sofern die Infrastruktur sie unterstützt.
- VLANs und Relay-Konfigurationen kontrollieren, damit DHCP nur in vorgesehenen Netzen wirkt.
Eine Reservierung vereinfacht die Verwaltung eines Druckers oder Servers, ist aber nicht automatisch eine Sicherheitsmaßnahme. Besonders MAC-basierte Zuordnungen dürfen nicht als verlässliche Authentifizierung betrachtet werden.
Prüfungsrelevante Zusammenfassung
- DHCP automatisiert die Vergabe von IP-Adressen und weiteren Netzwerkeinstellungen im Client-Server-Modell.
- Der IP-Adresspool definiert, welche Adressen dynamisch vergeben werden dürfen.
- DORA bedeutet:
DHCPDISCOVER,DHCPOFFER,DHCPREQUEST,DHCPACK. - Der anfängliche IPv4-Broadcast verwendet häufig
255.255.255.255, weil der Client den Server und seine eigene Adresse noch nicht kennt. - Eine Lease ist zeitlich begrenzt. T1 startet die Erneuerung beim ursprünglichen Server, T2 die erneute Suche nach Servern.
- DHCPNAK weist eine angeforderte oder nicht mehr gültige Konfiguration zurück.
- MAC-Adressen gehören zu Schicht 2, IP-Adressen zu Schicht 3 und MAC-Adressen sind keine starke Sicherheitsgrenze.
- DHCP-Broadcasts überschreiten normalerweise keine Routergrenze; dafür wird ein DHCP-Relay benötigt.
- Unter Linux muss klar sein, ob NetworkManager, systemd-networkd, Netplan oder ein klassischer DHCP-Client die Schnittstelle verwaltet.
Für die weiterführende Einordnung verwandter Grundlagen siehe DHCP und dynamische TCP/IP-Nummern.