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.
| Option | Name | Wert |
|---|---|---|
| 53 | Message Type | 1 = DHCPDISCOVER |
| 55 | Parameter Request List | 1, 3, 6, 15, 51 |
| 12 | Host Name | laptop |
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
| Typ | Code | Name | Wofür |
|---|---|---|---|
| 0 | 0 | Echo Reply | Antwort auf ping |
| 3 | 0 | Destination Unreachable – Net Unreachable | keine Route zum Netz |
| 3 | 1 | Destination Unreachable – Host Unreachable | Host antwortet nicht auf ARP |
| 3 | 3 | Destination Unreachable – Port Unreachable | kein Dienst auf dem UDP-Port (Ende von traceroute) |
| 3 | 4 | Destination Unreachable – Fragmentation Needed | DF gesetzt, Paket zu groß (Path-MTU-Discovery) |
| 5 | 1 | Redirect – for Host | besserer Next Hop im selben Netz |
| 8 | 0 | Echo Request | ping |
| 11 | 0 | Time Exceeded – TTL exceeded in transit | TTL 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.