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?

WertBeispielFunktion für den Client
IPv4-Adresse192.168.10.42Adresse des Geräts im IP-Netz
Subnetzmaske oder Präfix255.255.255.0 beziehungsweise /24Trennt Netz- und Hostanteil der Adresse
Standard-Gateway192.168.10.1Router für Ziele außerhalb des lokalen Netzes
DNS-Server192.168.10.1 oder ein anderer ResolverLöst Hostnamen in IP-Adressen auf
DNS-Suchdomainfirma.exampleErgänzt bei Bedarf kurze Hostnamen
Lease-Dauer8 StundenLegt fest, wie lange die Zuweisung gültig ist
Weitere OptionenZeitserver, Routen, PXE-ParameterErgä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.

SchrittNachrichtSenderEmpfänger beziehungsweise ÜbertragungsartZweck
1DHCPDISCOVERClientBroadcast, häufig an 255.255.255.255Sucht erreichbare DHCP-Server
2DHCPOFFERDHCP-ServerAntwort an den Client, je nach Zustand als Broadcast oder direktBietet eine Adresse, Lease-Dauer und weitere Optionen an
3DHCPREQUESTClientBroadcast oder geeignete direkte ÜbertragungFordert ein ausgewähltes Angebot an
4DHCPACKDHCP-ServerBestätigung an den ClientBestä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.

MethodeVerwaltungsortGeeignete EinsatzfälleVorteileRisiken oder Einschränkungen
Dynamische ZuweisungDHCP-ServerLaptops, Arbeitsplätze, GastgeräteWenig manueller Aufwand, gute Pool-AuslastungAdresse kann sich ändern
DHCP-ReservierungDHCP-ServerDrucker, Kameras, ausgewählte InfrastrukturFeste Adresse bei zentraler VerwaltungAbhängigkeit von korrekter MAC-Adresse oder Client-ID
Statische IPGerät oder NetzwerkprofilServer, Router, spezielle SystemeUnabhängig von DHCP erreichbarMehr 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

WerkzeugZweckTypischer Einsatz
ipAdressen, Schnittstellen und Routing anzeigenip address show, ip route show
nmcliNetworkManager und Verbindungsprofile prüfennmcli device status
resolvectlDNS-Server und systemd-resolved prüfenresolvectl status
/etc/resolv.confAktuelle Resolver-Konfiguration ansehencat /etc/resolv.conf
journalctlSystem- und Dienstprotokolle auswertenDHCP-Fehler und Verbindungswechsel suchen
tcpdumpDHCP-Pakete beobachtenBroadcasts, 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.example in 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.

  1. Link-Status mit ip link show prüfen.
  2. Adressen und Routen mit ip address show und ip route show kontrollieren.
  3. Protokolle von NetworkManager oder systemd-networkd auswerten.
  4. Mit tcpdump feststellen, 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.