Vai al contenuto
ipaddress.ro

IPv6 spiegato

128 bit, scritti in esadecimale, con spazio per ogni dispositivo che si collegherà mai. Ecco come leggerli.

Cerca un indirizzo IPv6

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:

  1. Togli gli zeri iniziali di ogni gruppo: 0db8 → db8, 0042 → 42, 0000 → 0.
  2. 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

2001
routing
0db8
routing
0000
routing
0000
subnet
0000
interfaccia
ff00
interfaccia
0042
interfaccia
8329
interfaccia

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 pratica fd00::/8): l’equivalente IPv6 degli indirizzi privati (RFC 4193).
  • Multicast ff00::/8: IPv6 non ha broadcast; i gruppi multicast ne prendono il posto.
  • Loopback ::1 e 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::/32 e 3fff::/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:

BloccoScopoRiferimentoRaggiungibile globalmente
::/128Unspecified AddressRFC 4291No
::1/128Loopback AddressRFC 4291No
::ffff:0:0/96IPv4-mapped AddressRFC 4291No
64:ff9b::/96IPv4-IPv6 Translation (NAT64)RFC 6052Sì
64:ff9b:1::/48Local-use IPv4/IPv6 TranslationRFC 8215No
100::/64Discard-Only Address BlockRFC 6666No
2001::/32TEREDORFC 4380No
2001:2::/48BenchmarkingRFC 5180No
2001:db8::/32DocumentationRFC 3849No
2001:10::/28Deprecated (ORCHID)RFC 4843No
2001:20::/28ORCHIDv2RFC 7343Sì
2002::/166to4RFC 3056No
3fff::/20DocumentationRFC 9637No
5f00::/16Segment Routing (SRv6) SIDsRFC 9602No
fc00::/7Unique-LocalRFC 4193No
fe80::/10Link-Local UnicastRFC 4291No
ff00::/8MulticastRFC 4291No

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.