8.1 Perché serve IPv6?
IPv4 ha circa 4,3 miliardi di indirizzi. Nel 2011 la IANA ha distribuito gli ultimi blocchi /8 ai registri regionali, e nel corso degli anni successivi tutti i RIR hanno esaurito i propri pool. Il NAT ha guadagnato tempo, ma è una toppa, non una soluzione. IPv6 risolve il problema alla radice.
8.2 Formato dell’Indirizzo IPv6
Un indirizzo IPv6 è lungo 128 bit, scritto come 8 gruppi di 4 cifre esadecimali (16 bit ciascuno), separati da due punti (:). Ogni cifra esadecimale rappresenta 4 bit.
Regole di abbreviazione
Gli indirizzi IPv6 sono lunghi, ma due regole permettono di accorciarli significativamente:
All’interno di ogni gruppo, gli zeri iniziali possono essere omessi. 0db8 diventa db8, 0000 diventa 0, 0370 diventa 370.
Una (e una sola) sequenza consecutiva di gruppi 0000 può essere sostituita con ::. Si può usare :: una sola volta nell’indirizzo.
Se un indirizzo ha due sequenze separate di zeri, puoi comprimere solo la più lunga. Esempio: 2001:0000:0000:00a1:0000:0000:0000:0001 → 2001:0:0:a1::1 (il :: comprime i 3 gruppi finali di zeri, non i 2 iniziali). Se usassi :: due volte, sarebbe ambiguo: non sapresti quanti zeri reinserire in ciascun punto.
Esercizi di abbreviazione
| Indirizzo completo | Abbreviato |
|---|---|
2001:0db8:0000:0000:0000:0000:0000:0001 | 2001:db8::1 |
fe80:0000:0000:0000:020c:29ff:fe8d:4a52 | fe80::20c:29ff:fe8d:4a52 |
0000:0000:0000:0000:0000:0000:0000:0001 | ::1 (loopback!) |
0000:0000:0000:0000:0000:0000:0000:0000 | :: (non specificato) |
ff02:0000:0000:0000:0000:0000:0000:0001 | ff02::1 (multicast all-nodes) |
8.3 Struttura: Prefisso e Interface ID
Come in IPv4, un indirizzo IPv6 si divide in due parti. Ma qui il confine è quasi sempre a /64: i primi 64 bit sono il prefisso di rete, gli ultimi 64 bit identificano l’interfaccia.
EUI-64: derivato automaticamente dal MAC address dell’interfaccia (48 bit → 64 bit inserendo FF:FE al centro e invertendo il bit U/L). Esempio: MAC 00:0C:29:8D:4A:52 → Interface ID 020C:29FF:FE8D:4A52.
Privacy Extensions: genera un Interface ID casuale per proteggere la privacy (il MAC non viene esposto). Attivo di default su Windows e macOS moderni.
Manuale: configurato dall’amministratore, tipicamente per server e router (es. ::1, ::2).
8.4 Tipi di Indirizzi IPv6
IPv6 elimina il broadcast (sostituito dal multicast) e introduce nuovi tipi di indirizzo:
| Tipo | Prefisso | Equivalente IPv4 | Descrizione |
|---|---|---|---|
| Global Unicast | 2000::/3 | IP pubblico | Instradabile su Internet. Assegnato dai RIR. Inizia con 2 o 3. |
| Link-Local | fe80::/10 | 169.254.x.x (APIPA) | Valido solo sul link locale. Generato automaticamente su ogni interfaccia. Essenziale per il funzionamento IPv6. |
| Unique Local | fc00::/7 (fd00::/8) | 10.x.x.x, 172.16.x.x, 192.168.x.x | “Privato” IPv6. Non instradato su Internet. Per reti interne. |
| Multicast | ff00::/8 | 224.x.x.x | Inviato a un gruppo di interfacce. Sostituisce il broadcast. |
| Loopback | ::1 | 127.0.0.1 | Indirizzo del dispositivo stesso. |
| Non specificato | :: | 0.0.0.0 | Indica assenza di indirizzo (usato nelle richieste DHCP/SLAAC). |
In IPv4 l’indirizzo 255.255.255.255 o il broadcast diretto raggiungono tutti gli host. In IPv6 non esiste il broadcast: è sostituito dal multicast. L’indirizzo ff02::1 (all-nodes) raggiunge tutti i dispositivi sul link locale — funzione simile al broadcast, ma più efficiente perché solo i dispositivi “iscritti” al gruppo processano il pacchetto.
8.5 Autoconfigurazione: SLAAC
Una delle innovazioni più importanti di IPv6 è la possibilità di autoconfigurarsi senza un server DHCP. Il meccanismo si chiama SLAAC (Stateless Address Autoconfiguration).
fe80::...) basato sul MAC o casuale.ff02::2 (all-routers): “c’è un router qui?”2001:db8:1::/64), il gateway, i flag di configurazione.SLAAC (stateless): il router annuncia il prefisso, l’host si autoconfigura. Semplice, nessun server necessario. Non assegna DNS (serve RA con opzione RDNSS oppure DHCPv6 stateless).
DHCPv6 stateless: SLAAC per l’IP + DHCPv6 solo per informazioni aggiuntive (DNS, dominio).
DHCPv6 stateful: il server assegna tutto (IP, DNS, opzioni). Simile al DHCP di IPv4. Usato quando serve controllo centralizzato.
8.6 Header IPv6 vs IPv4
L’header IPv6 è stato completamente ridisegnato per essere più semplice e più veloce da processare per i router.
- Dimensione: 20-60 byte (variabile)
- 13 campi + opzioni
- Checksum header (ricalcolato ad ogni hop)
- Frammentazione possibile nei router
- Campo Options variabile
- IHL (lunghezza header variabile)
- Dimensione: 40 byte (fisso!)
- 8 campi — molto più semplice
- Nessun checksum (affidato a L2 e L4)
- Frammentazione solo al mittente
- Opzioni in extension headers separati
- Flow Label per QoS nativo
Next Header — indica cosa viene dopo l’header: TCP (6), UDP (17), ICMPv6 (58), o un extension header. Sostituisce il campo “Protocol” di IPv4.
Hop Limit — equivalente del TTL di IPv4. Decrementato di 1 ad ogni router. Se arriva a 0, il pacchetto viene scartato.
Flow Label — identifica un flusso di pacchetti per trattamento QoS differenziato. Novità di IPv6 (IPv4 non l’aveva).
8.7 Transizione da IPv4 a IPv6
IPv4 e IPv6 sono incompatibili: un pacchetto IPv6 non può viaggiare su una rete IPv4 e viceversa. La transizione è graduale e usa tre strategie principali:
Ogni dispositivo ha sia un indirizzo IPv4 che IPv6. Sceglie quale usare in base alla destinazione. È la strategia più diffusa oggi.
Il tuo PC ha già entrambi: prova ipconfig / ip addr!
I pacchetti IPv6 vengono incapsulati dentro pacchetti IPv4 per attraversare reti che non supportano IPv6. Esempio: 6to4, Teredo, ISATAP.
Come mettere una lettera in una busta con indirizzo diverso per attraversare un paese straniero.
Un dispositivo intermedio traduce tra IPv4 e IPv6 al volo. Usato quando un host IPv6-only deve comunicare con un server IPv4-only.
Un interprete simultaneo tra due lingue diverse.
IPv6 esiste dal 1998, ma nel 2025 circa il 45% del traffico globale è IPv6 (Google stats). Le ragioni della lentezza: il NAT ha “funzionato” abbastanza bene, aggiornare milioni di dispositivi e configurazioni costa, molte applicazioni legacy supportano solo IPv4, e la formazione degli amministratori è graduale. Ma la tendenza è chiara: i grandi operatori (Google, Facebook, Apple, mobile carriers) sono già al 90%+ IPv6.
8.8 Confronto IPv4 vs IPv6
| Caratteristica | IPv4 | IPv6 |
|---|---|---|
| Lunghezza indirizzo | 32 bit (4 ottetti decimali) | 128 bit (8 gruppi esadecimali) |
| Spazio indirizzi | ~4,3 × 10⁹ | ~3,4 × 10³⁸ |
| Notazione | Decimale puntata (192.168.1.1) | Esadecimale con : (2001:db8::1) |
| Header | Variabile (20-60 byte), 13 campi | Fisso (40 byte), 8 campi |
| Checksum header | Sì (ricalcolato ad ogni hop) | No (eliminato → più veloce) |
| Frammentazione | Anche nei router intermedi | Solo al mittente |
| Broadcast | Sì (255.255.255.255) | No — sostituito dal multicast |
| Configurazione | Manuale o DHCP | SLAAC (automatica) + opzionale DHCPv6 |
| NAT | Necessario (IP privati) | Non necessario |
| QoS | Campo ToS (poco usato) | Flow Label + Traffic Class (nativo) |
| Sicurezza | IPsec opzionale | IPsec integrato nello standard |
| Protocollo ausiliario | ARP (indirizzo MAC) | NDP (Neighbor Discovery Protocol) |
8.9 NDP e ICMPv6
In IPv4, ARP (Address Resolution Protocol) traduce IP → MAC. In IPv6, ARP non esiste più: è sostituito da NDP (Neighbor Discovery Protocol), che usa messaggi ICMPv6.
| Funzione | IPv4 | IPv6 (NDP/ICMPv6) |
|---|---|---|
| Risoluzione IP → MAC | ARP Request/Reply (broadcast) | Neighbor Solicitation/Advertisement (multicast) |
| Scoperta router | DHCP o configurazione manuale | Router Solicitation / Router Advertisement |
| Verifica unicità IP | Gratuitous ARP | DAD (Duplicate Address Detection) |
| Redirect | ICMP Redirect | ICMPv6 Redirect |
| MTU discovery | ICMP “Fragmentation Needed” | ICMPv6 “Packet Too Big” |
Il broadcast di IPv4 raggiunge tutti i dispositivi sulla rete, anche quelli che non sono interessati (spreco di CPU). Il multicast di IPv6 raggiunge solo i dispositivi iscritti a quel gruppo. Esempio: un Neighbor Solicitation per trovare il MAC di 2001:db8::5 viene inviato all’indirizzo multicast solicited-node corrispondente, non a tutti.
8.10 Riepilogo del Modulo
🧪 Verifica di Autovalutazione
Soluzioni
Domanda 01 — Bit, gruppi e base
2001:db8::.Domanda 02 — Abbreviazione
2001:db8:0:0:0:ff00:42:8329.Passo 2 (sequenza di zeri):
2001:db8::ff00:42:8329.I tre gruppi
:0:0:0: diventano ::.Domanda 03 — Espansione di fe80::1
fe80::1 = fe80:0000:0000:0000:0000:0000:0000:0001. Il :: rappresenta 6 gruppi di 0000 (perché l’indirizzo deve avere 8 gruppi totali: fe80 + 6 zeri + 0001 = 8).Domanda 04 — Perché :: una sola volta
:: comparisse due volte, sarebbe ambiguo: non sapresti quanti gruppi di zeri inserire in ciascun punto. Esempio: 2001::1::5 potrebbe essere 2001:0:0:0:1:0:0:5 o 2001:0:0:1:0:0:0:5 o molte altre combinazioni. Con un solo ::, il numero di gruppi mancanti è calcolabile: 8 − (gruppi espliciti) = gruppi da reinserire.Domanda 05 — Global Unicast vs Link-Local
2 o 3): è l’equivalente dell’IP pubblico IPv4. Instradabile su Internet, assegnato dai RIR. Link-Local (fe80::/10): valido solo sul segmento di rete locale. Non instradato dai router. Generato automaticamente su ogni interfaccia IPv6. Usato per la comunicazione locale (NDP, SLAAC).