ICMP, ping, traceroute e DHCP
Il sistema di diagnostica di IP: messaggi di errore, misura della raggiungibilità, scoperta del percorso e configurazione automatica degli indirizzi da ARP a SLAAC.
1. ICMP — Internet Control Message Protocol
IP è un protocollo di consegna best-effort: non garantisce che i pacchetti arrivino, non li riordina, non segnala gli errori al mittente. Come fa allora un router a comunicare che non riesce a instradare un pacchetto? Come fa un host a scoprire se la destinazione è raggiungibile?
Ci pensa ICMP (RFC 792). ICMP è il sistema di notifica degli errori e diagnostica di IP. Non trasporta dati utente, ma è essenziale per la gestione della rete.
ICMP (Internet Control Message Protocol) è incapsulato direttamente in IP con numero di protocollo 1. Ogni messaggio ICMP ha campo Type (tipo), Code (sottotipo), checksum a 16 bit e dati specifici per tipo.
Formato del messaggio ICMP
I messaggi ICMP principali
| Type | Code | Nome | Uso |
|---|---|---|---|
| 0 | 0 | Echo Reply | Risposta a un ping |
| 3 | 0 | Destination Unreachable — Net | Router non trova rotta verso rete |
| 3 | 1 | Destination Unreachable — Host | Rete ok, host non risponde |
| 3 | 2 | Destination Unreachable — Protocol | Protocollo L4 non supportato |
| 3 | 3 | Destination Unreachable — Port | Porta UDP/TCP non in ascolto |
| 3 | 4 | Fragmentation Needed | PMTU Discovery — segnala MTU del link, DF settato |
| 5 | 0-3 | Redirect | Suggerisce gateway migliore |
| 8 | 0 | Echo Request | Richiesta ping: "sei raggiungibile?" |
| 11 | 0 | Time Exceeded — TTL Exceeded | TTL=0 → router scarta, base traceroute |
| 11 | 1 | Time Exceeded — Reassembly | Timeout riassemblatura frammenti |
| 12 | 0-2 | Parameter Problem | Header IP malformato |
I messaggi ICMP di errore (tipo 3,5,11,12) includono sempre i primi 8 byte del payload originale che ha causato l'errore: header IP originale + prime 8 byte = header TCP/UDP → porte e seq number per identificare il pacchetto incriminato.
2. ping — Echo Request / Echo Reply
ping è lo strumento di diagnostica più usato. Invia ICMP Echo Request (Type 8) e attende Echo Reply (Type 0), misurando RTT e packet loss.
icmp_seq: numero sequenziale inviatottl=118: TTL residuo. TTL iniziale di Google 128 → 128-118=10 hop percorsi (approx)time: RTT andata+ritorno0% packet loss: affidabilità link
-c N → N pacchetti (Linux)-n N → N pacchetti (Windows)-s SIZE → dimensione payload-t TTL → imposta TTL-f → flood ping (root)-M do → Don't Fragment (PMTUD)
✓ Destinazione raggiungibile
✓ Latenza approssimativa
✓ Perdita pacchetti
✗ Non dice se servizio è attivo (porta chiusa ≠ host giù)
✗ Inutile se firewall blocca ICMP
3. traceroute — scoprire il percorso
traceroute (Linux/macOS) o tracert (Windows) mostra i router intermedi (hop) con RTT per ciascun hop.
Come funziona: il trucco del TTL
- Invia pacchetto con TTL=1. Primo router scarta (TTL=0) e risponde ICMP Time Exceeded. Registra IP e RTT.
- Invia con TTL=2. Secondo router risponde. E così via.
- Quando raggiunge destinazione, questa risponde Echo Reply (o Port Unreachable) e traceroute termina.
Linux/macOS usa di default pacchetti UDP porte alte (33434+). Destinazione risponde ICMP Port Unreachable (Type 3). Con -I usa ICMP Echo. Windows (tracert) usa sempre ICMP Echo Request, come ping con TTL incrementale.
4. ICMPv6 e integrazione con NDP
In IPv6, ICMP si chiama ICMPv6 (RFC 4443), Protocol Number 58. Non è solo un aggiornamento: ICMPv6 è fondamentale per IPv6, include NDP (visti in L06) e MLD. Bloccarlo completamente in firewall rompe la rete.
| Type ICMPv6 | Nome | Equiv. ICMPv4 |
|---|---|---|
| 1 | Destination Unreachable | Type 3 |
| 2 | Packet Too Big | Type 3 Code 4 — PMTUD in IPv6 (no frammentazione router) |
| 3 | Time Exceeded | Type 11 |
| 128 | Echo Request | Type 8 |
| 129 | Echo Reply | Type 0 |
| 133-137 | NDP: RS, RA, NS, NA, Redirect | — sostituto ARP in IPv6 |
NDP usa solicited-node multicast FF02::1:FFxx:xxxx invece di broadcast ARP: più efficiente, meno interruzioni per host non interessati. Ricorda da L06: DAD utilizza NS con src :: .
5. DHCP — Configurazione dinamica degli indirizzi
Configurare manualmente IP, mask, gateway e DNS su ogni device sarebbe ingestibile. DHCP (Dynamic Host Configuration Protocol) automatizza tutto.
DHCP (RFC 2131) è client-server a livello applicazione su UDP porte 67 server / 68 client: assegna IP, subnet mask, default gateway, DNS e altre opzioni.
6. Processo DORA e opzioni DHCP
La negoziazione avviene in 4 messaggi DORA:
Possono esserci più server DHCP. Il client sceglie la prima offerta, ma avvisa tutti in broadcast: gli altri revocano proposte e rilasciano IP riservati.
Lease limitato (es. 86400s). Rinnovo a T/2 unicast al server. Se fallisce, ritenta a T*7/8 in broadcast. A scadenza IP rilasciato e DORA riparte.
Le opzioni DHCP più importanti
| Option | Nome | Contenuto tipico |
|---|---|---|
1 | Subnet Mask | 255.255.255.0 |
3 | Router (Default Gateway) | 192.168.1.1 |
6 | Domain Name Server | 8.8.8.8, 8.8.4.4 |
15 | Domain Name | local o azienda.it |
51 | Lease Time | 86400 (24 ore) |
53 | DHCP Message Type | 1=Discover,2=Offer,3=Request,4=Decline,5=ACK,6=NAK,7=Release |
54 | Server Identifier | IP del server offerente |
82 | Relay Agent Information | Aggiunto dal relay agent |
DHCP Relay Agent
DHCP usa broadcast per Discover. I router non inoltrano broadcast. Come si fa con più subnet?
Il DHCP Relay Agent (ip helper-address in Cisco) intercetta broadcast DHCP, li incapsula in unicast e li inoltra al server centrale. Risposta torna al relay che consegna al client.
7. DHCP vs DHCPv6 vs SLAAC
| Meccanismo | Protocollo | Config automatica | Server? |
|---|---|---|---|
| DHCP | IPv4 | IP, mask, GW, DNS, opzioni | Sì |
| SLAAC | IPv6 | IP (prefisso RA + EUI-64), default GW | No (NDP/RA) |
| DHCPv6 Stateful | IPv6 | IP, DNS, opzioni (come DHCP) | Sì |
| DHCPv6 Stateless | IPv6 | Solo DNS + opzioni extra (IP da SLAAC) | Sì (solo opzioni) |
I flag nel Router Advertisement (M-bit: Managed address config e O-bit: Other config) indicano se usare SLAAC, DHCPv6 stateful o stateless.
Nelle reti aziendali IPv6 moderne si usa spesso SLAAC + DHCPv6 stateless: l'host ottiene IP autonomamente (nessun server per IP), ma riceve DNS e opzioni via DHCPv6. Riduce dipendenza dal server, mantenendo centralizzazione opzioni critiche.
8. Riepilogo e concetti chiave
ip helper-address.📚 Prossimo passo — Progettazione LAN, modello gerarchico e STP
Dopo i protocolli di diagnostica e configurazione, vedremo come progettare una LAN enterprise: modello a tre livelli, ridondanza e Spanning Tree Protocol per evitare loop L2.