RFC 2131 · RFC 2132 · RFC 792

📡DHCP & ICMP

Zwei Helfer, ohne die IPv4 im Alltag kaum benutzbar wäre: DHCP verteilt Adressen, Maske, Gateway und DNS; ICMP meldet Fehler und liefert die Werkzeuge ping und traceroute.

🤝DHCP: DORA in vier Nachrichten

DHCP läuft über UDP – Server auf Port 67, Client auf Port 68. Weil der Client anfangs keine Adresse hat, beginnt alles mit Broadcasts.
Nachricht 1/4
💻 Client
02:00:00:0a:01:17
📶 DHCP-Server
10.1.1.1
Discover · Offer · Request · Ack = „DORA“

DHCPDISCOVER (Client → Server)

Der Client hat noch keine Adresse: Quelle 0.0.0.0, Ziel ist der Limited Broadcast. Er sucht jeden DHCP-Server im Segment.

UDP Quelle → Ziel
0.0.0.0:68 → 255.255.255.255:67
MAC Quelle → Ziel
02:00:00:0a:01:17 → ff:ff:ff:ff:ff:ff
ciaddr (Client-IP)
0.0.0.0
yiaddr („your“ IP)
0.0.0.0
OptionNameWert
53Message Type1 = DHCPDISCOVER
55Parameter Request List1, 3, 6, 15, 51
12Host Namelaptop
Lease 86.400 s
Die Adresse ist nur geliehen. Nach Ablauf ohne Verlängerung muss der Client sie aufgeben.
T1 = 43.200 s (50 %)
RENEWING: Der Client fragt seinen Server per Unicast (DHCPREQUEST) nach Verlängerung.
T2 = 75.600 s (87,5 %)
REBINDING: Antwortet der Server nicht, fragt der Client per Broadcast jeden erreichbaren Server.

Antwortet gar kein DHCP-Server, vergeben sich viele Systeme selbst eine Link-Local-Adresse aus 169.254.0.0/16 (RFC 3927, „APIPA“) – ein typisches Zeichen für „kein DHCP erreichbar“.

🛰️traceroute: der TTL-Trick

Jede Sonde darf einen Hop weiter. Der Router, bei dem TTL 0 wird, verrät sich mit einer ICMP-Fehlermeldung.
Sonde 1/5
💻Laptop10.1.1.23
TTL 1
🔀Hop 110.1.1.1
🔀Hop 2203.0.113.9
🔀Hop 3192.0.2.1
🔀Hop 4198.51.100.1
🖥️Ziel198.51.100.80
Sonde mit TTL 1
10.1.1.1 (Router) zieht 1 ab, erhält 0, verwirft das Paket und schickt ICMP Typ 11 Code 0 – Time Exceeded zurück. Die Absenderadresse dieser ICMP-Meldung verrät den Hop.
$ traceroute -n 198.51.100.80 traceroute to 198.51.100.80 (198.51.100.80), 30 hops max, 60 byte packets 1 10.1.1.1 0.512 ms 0.487 ms 0.466 ms

Laufzeiten sind Beispielwerte. Jede Zeile = 3 Sonden mit gleichem TTL. Linux: UDP an Ports ab 33434; 60 Byte = 20 IP + 8 UDP + 32 Daten. Das Ziel hat hier TTL-Startwert 64; ein ping-Echo kommt daher mit TTL 60 an.

📨Wichtige ICMP-Nachrichten

TypCodeNameWofür
00Echo ReplyAntwort auf ping
30Destination Unreachable – Net Unreachablekeine Route zum Netz
31Destination Unreachable – Host UnreachableHost antwortet nicht auf ARP
33Destination Unreachable – Port Unreachablekein Dienst auf dem UDP-Port (Ende von traceroute)
34Destination Unreachable – Fragmentation NeededDF gesetzt, Paket zu groß (Path-MTU-Discovery)
51Redirect – for Hostbesserer Next Hop im selben Netz
80Echo Requestping
110Time Exceeded – TTL exceeded in transitTTL auf 0 → Grundlage von traceroute
ICMP nicht pauschal sperren
Wer alles ICMP blockiert, bricht Path-MTU-Discovery (Typ 3 Code 4) und erschwert die Fehlersuche. Echo Request darf man filtern, die Fehlermeldungen sollten durch.
ping sagt nicht alles
Kein Echo Reply heißt nicht, dass der Host aus ist – viele Firewalls verwerfen ping. Umgekehrt beweist ein Reply nicht, dass ein Dienst läuft.