FIAE – Anwendungsentwicklung

LF 3 · Clients ins Netz · 10/42 · 52 Min. angesetzt – Langform, jedes Wort zählt

DHCP: vom Schrei bis zum Lease

Dieses Kapitel erklärt DHCP vollständig hier. Kein Verweis auf später. Wenn du keine Ahnung hast, reicht der Text, um den Dienst zu verstehen, ihn auf Windows und Linux zu erkennen und einen toten Lease zu finden.

DHCP heißt Dynamic Host Configuration Protocol. Der Client bittet um Konfiguration, ein Server antwortet. Die Konfiguration ist mindestens: IPv4-Adresse, Subnetzmaske, Default-Gateway, DNS-Server, Gültigkeitsdauer. Zusätzlich können Domainname, Zeitserver und PXE-Angaben kommen. DHCP erlaubt den Zugang nicht im Sinne einer Firewall. Es füllt die Felder, ohne die der Client stumm bleibt.

Warum der Client schreien muss

Ohne Adresse kennt der Client niemanden persönlich. Unicast setzt Nummern voraus. Also Broadcast: Ethernet-Ziel ff:ff:ff:ff:ff:ff, IP-Ziel 255.255.255.255, UDP-Zielport 67, Quellport 68, Quell-IP oft 0.0.0.0. Jeder DHCP-Server im selben Segment darf antworten. Ein Router leitet den Schrei nicht weiter. Sitzt der Server in einem anderen VLAN, braucht es ein Relais.

DORA

Discover sucht Server. Offer bietet Adresse und Optionen. Request verlangt genau dieses Angebot. Ack macht den Lease gültig. Nak schickt an den Start. Decline: die Adresse lebt schon, gesehen per ARP.

Lease

Zeitlich begrenztes Nutzungsrecht. Nach etwa 50 Prozent (T1) Verlängerung beim gebenden Server. Nach etwa 87,5 Prozent (T2) Frage an andere Server. Läuft die Zeit ab, muss die Adresse weg.

Scope

Pool plus Optionen für ein Netz. Der Server wählt ihn nach dem Netz der Frage: lokal über das Empfangsinterface, über Relais über giaddr.

giaddr

Adresse des Router-Interfaces, an dem der Discover ankam. Daran erkennt der Server das Quellnetz. Ohne giaddr liegt der Lease oft im falschen Scope.

Option

Zusatz im Paket. 3 = Router (Gateway). 6 = DNS-Server. 15 = Domain-Name. 51 = Lease-Zeit. 66/67 = PXE. Falsche Option 6: Ping auf 9.9.9.9 geht, der Name stirbt.

Reservierung

Diese MAC oder Client-ID bekommt immer dieselbe IP. Gehört in die Betriebsdoku, nicht nur in die GUI.

Windows

DHCP ist eine Server-Rolle. In der Domäne muss der Server autorisiert sein, sonst gibt er typisch keine Leases aus – Bremse gegen den wilden Stockwerk-Router. Scope: Netz, Maske, Start, Ende, Ausschluss für Gateway und Drucker, Lease-Dauer, Optionen, aktivieren.

Get-DhcpServerv4Scope
Get-DhcpServerv4Lease -ScopeId 10.20.30.0
Get-DhcpServerv4OptionValue -ScopeId 10.20.30.0
ipconfig /all
ipconfig /release
ipconfig /renew

ipconfig /all zeigt den gebenden Server, die Lease-Zeiten, das Suffix. Im Protokoll Microsoft-Windows-DHCP-Client stehen Timeout, Nak, APIPA. Eine statische Adresse mitten im Pool erzeugt Decline und sporadische Doppel.

Linux

isc-dhcp-server liest /etc/dhcp/dhcpd.conf. Kea spricht JSON. dnsmasq mischt oft DHCP und DNS auf kleinen Kästen. Der Dienst muss an dem Interface lauschen, an dem die Clients hängen, oder Relais nutzen.

subnet 10.20.30.0 netmask 255.255.255.0 {
  range 10.20.30.50 10.20.30.200;
  option routers 10.20.30.1;
  option domain-name-servers 10.20.30.10;
  default-lease-time 28800;
}
sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf
sudo systemctl restart isc-dhcp-server
journalctl -u isc-dhcp-server -e
sudo ss -ulnp | grep :67
sudo tcpdump -ni eth0 port 67 or port 68

dhcpd.leases ist der Zustand, nicht die Konfiguration. systemctl kann active zeigen, während AppArmor oder die Firewall Port 67 zu hat – dann kommt im tcpdump nichts an.

Tote Leases

  1. Link, VLAN, Dose, SSID.
  2. Offers sichtbar? tcpdump auf 67/68.
  3. giaddr gesetzt, wenn Relais im Spiel ist?
  4. Scope aktiv, Pool nicht voll, Reservierung korrekt?
  5. Option 3 und 6 auf lebenden Adressen?
  6. APIPA 169.254.0.0/16 heißt: kein Ack. Dokumentierter Fehlschlag.

Prüfung

Welche DHCP-Phase folgt auf Offer?