Perché esiste IPv6
IPv6 (RFC 8200) è stato progettato negli anni '90, quando era ormai chiaro che i 4,3 miliardi di indirizzi IPv4 sarebbero finiti. Un indirizzo IPv6 ha 128 bit: 2¹²⁸, circa 3,4 × 10³⁸ indirizzi. Il punto non è il numero enorme in sé, ma il fatto che ogni rete può avere tutto lo spazio che le serve e ogni dispositivo può tornare ad avere un indirizzo raggiungibile globalmente, senza NAT.
IPv6 non è un aggiornamento di IPv4: i due protocolli funzionano affiancati (dual-stack). Non tutte le connessioni hanno IPv6: dipende dal provider, dall’abbonamento e dal router.
La scrittura: gruppi esadecimali
Un indirizzo IPv6 si scrive come otto gruppi di quattro cifre esadecimali, separati da due punti:
2001:0db8:0000:0000:0000:ff00:0042:8329
Ogni gruppo è di 16 bit. Le cifre esadecimali vanno da 0 a 9 e da a a f; maiuscole e minuscole si equivalgono, ma la convenzione è usare le minuscole.
Regole di compressione
Le lunghe sequenze di zeri sono frequenti, quindi esistono due regole per accorciare l’indirizzo (RFC 4291), e la RFC 5952 stabilisce l’unico modo corretto di applicarle:
- Togli gli zeri iniziali di ogni gruppo:
0db8→db8,0042→42,0000→0. - Sostituisci una sequenza di gruppi a zero con
::: la più lunga, la prima se due hanno la stessa lunghezza, e solo se comprende almeno due gruppi.::può comparire una sola volta, altrimenti l’indirizzo diventa ambiguo.
Così 2001:0db8:0000:0000:0000:ff00:0042:8329 diventa 2001:db8::ff00:42:8329. L’indirizzo di loopback 0:0:0:0:0:0:0:1 si scrive ::1 e l’indirizzo non specificato è semplicemente ::.
Prova qualsiasi indirizzo nello strumento qui sotto: mostra la forma estesa e quella canonica una accanto all’altra.
Forma estesa
Forma compressa
2001:db8::ff00:42:8329
Tipo di indirizzo: Uso speciale · Documentation (2001:db8::/32)
Prefissi e /64
IPv6 usa la notazione CIDR come IPv4. Un tipico indirizzo global unicast si divide in:
- Prefisso di routing (di solito /48 o /56): assegnato a una sede dal provider.
- ID di subnet: i bit fino a /64, che numerano le reti della sede. Un /48 contiene 65.536 subnet.
- Identificatore di interfaccia (gli ultimi 64 bit): identifica il dispositivo nella sua rete.
Una singola rete locale è quasi sempre un /64. La configurazione automatica degli indirizzi (SLAAC) si basa su questo: i dispositivi scelgono da soli il proprio identificatore di interfaccia, oggi casuale per motivi di privacy (RFC 8981), e lo cambiano periodicamente.
Tipi di indirizzi che incontrerai
- Global unicast
2000::/3: indirizzi pubblici e instradabili. - Link-local
fe80::/10: ogni interfaccia IPv6 ne ha uno; vale solo sul collegamento locale e serve per il neighbor discovery e i protocolli di routing. - Unique local
fc00::/7(in praticafd00::/8): l’equivalente IPv6 degli indirizzi privati (RFC 4193). - Multicast
ff00::/8: IPv6 non ha broadcast; i gruppi multicast ne prendono il posto. - Loopback
::1e indirizzo non specificato::. - IPv4-mapped
::ffff:0:0/96: così i programmi IPv6 rappresentano gli interlocutori IPv4, per esempio::ffff:192.0.2.1. - Documentazione
2001:db8::/32e3fff::/20: per esempi come quelli di questa pagina.
Blocchi IPv6 a uso speciale
L’elenco completo dei blocchi IPv6 riservati, generato dal registro IANA usato dalla classificazione di questo sito:
| Blocco | Scopo | Riferimento | Raggiungibile globalmente |
|---|---|---|---|
| ::/128 | Unspecified Address | RFC 4291 | No |
| ::1/128 | Loopback Address | RFC 4291 | No |
| ::ffff:0:0/96 | IPv4-mapped Address | RFC 4291 | No |
| 64:ff9b::/96 | IPv4-IPv6 Translation (NAT64) | RFC 6052 | Sì |
| 64:ff9b:1::/48 | Local-use IPv4/IPv6 Translation | RFC 8215 | No |
| 100::/64 | Discard-Only Address Block | RFC 6666 | No |
| 2001::/32 | TEREDO | RFC 4380 | No |
| 2001:2::/48 | Benchmarking | RFC 5180 | No |
| 2001:db8::/32 | Documentation | RFC 3849 | No |
| 2001:10::/28 | Deprecated (ORCHID) | RFC 4843 | No |
| 2001:20::/28 | ORCHIDv2 | RFC 7343 | Sì |
| 2002::/16 | 6to4 | RFC 3056 | No |
| 3fff::/20 | Documentation | RFC 9637 | No |
| 5f00::/16 | Segment Routing (SRv6) SIDs | RFC 9602 | No |
| fc00::/7 | Unique-Local | RFC 4193 | No |
| fe80::/10 | Link-Local Unicast | RFC 4291 | No |
| ff00::/8 | Multicast | RFC 4291 | No |
Dual-stack e come il sito trova entrambi gli indirizzi
Un browser si collega con una sola famiglia di indirizzi alla volta. Quando funzionano entrambe, di solito preferisce IPv6 (Happy Eyeballs, RFC 8305). Per mostrare entrambi gli indirizzi, ipaddress.ro fa contattare al browser due nomi host aggiuntivi: uno con solo un record IPv4 (A) e uno con solo un record IPv6 (AAAA). Ciò che vede ciascuno è il tuo indirizzo per quella famiglia. Se la richiesta IPv6 fallisce, la tua connessione non ha IPv6 funzionante.
Domande frequenti
- Come faccio a sapere se ho IPv6?
- Apri la home o il test IPv6 di questo sito. Se compare un indirizzo IPv6, come indirizzo principale o nella riga IPv6, la tua connessione supporta IPv6.
- IPv6 è più veloce di IPv4?
- Non di per sé, ma può esserlo: il traffico IPv6 evita spesso il CGNAT dell'operatore, eliminando un passaggio e un collo di bottiglia che deve tenere traccia di ogni connessione.
- Con IPv6 serve ancora un firewall?
- Sì. Senza NAT i dispositivi hanno indirizzi instradabili globalmente; un firewall stateful che blocca il traffico in ingresso non richiesto offre la protezione che il NAT dava indirettamente.
- Perché il mio indirizzo IPv6 cambia continuamente?
- Le estensioni per la privacy (RFC 8981) generano identificatori di interfaccia temporanei che vengono sostituiti, così l'indirizzo non può essere usato per seguire il dispositivo da una rete all'altra. Il prefisso /64 di solito resta lo stesso.