Approfondimento tecnico

IPv6 in pratica: notazione, prefissi e dual stack

Un indirizzo IPv6 è un numero a 128 bit scritto come otto gruppi di quattro cifre esadecimali. La forma estesa 2a01:04f8:0c17:0b8f:0000:0000:0000:0001 si abbrevia in 2a01:4f8:c17:b8f::1 secondo due regole precise.

Le regole di scrittura

  • Gli zeri iniziali di ogni gruppo si omettono: 04f8 diventa 4f8
  • Una sola sequenza di gruppi tutti a zero si sostituisce con ::, e può comparire una volta sola nell'indirizzo, altrimenti sarebbe ambigua
  • Le lettere si scrivono minuscole (RFC 5952), anche se maiuscole sono tecnicamente valide
  • Nelle URL l'indirizzo va fra parentesi quadre, perché i due punti servono già a separare la porta: http://[2a01:4f8::1]:8080/

Come è composto

A differenza di IPv4, dove la maschera può cadere ovunque, in IPv6 la divisione è di fatto standardizzata: i primi 64 bit identificano la rete, gli ultimi 64 il dispositivo al suo interno.

Struttura di un indirizzo IPv6: prefisso di instradamento, identificativo di sottorete e interfaccia rete — 64 bit interfaccia — 64 bit 2a01:4f8:c17 :b8f ::1 assegnato all'operatore sottorete dispositivo un /64 contiene più indirizzi dell'intero spazio IPv4, elevato al quadrato
La divisione a 64 bit non è un obbligo di protocollo, ma è la prassi: sotto quella soglia l'autoconfigurazione smette di funzionare.

Tipi di indirizzo

  • 2000::/3global unicast: gli indirizzi pubblici, quelli instradabili su Internet
  • fe80::/10link-local: validi solo sul segmento di rete, ogni interfaccia ne ha sempre uno
  • fc00::/7unique local: l'equivalente concettuale del 192.168 di IPv4, per reti interne
  • ff00::/8multicast: IPv6 non ha il broadcast, il suo ruolo è svolto da gruppi multicast
  • ::1 — loopback, l'equivalente di 127.0.0.1

Come un dispositivo ottiene l'indirizzo

IPv6 può fare a meno del DHCP. Con SLAAC il router annuncia periodicamente il prefisso della rete (Router Advertisement) e ogni dispositivo si costruisce da solo la parte finale dell'indirizzo. In origine quella parte derivava dall'indirizzo MAC della scheda, il che rendeva il dispositivo riconoscibile ovunque si collegasse: per questo oggi i sistemi usano le privacy extensions (RFC 4941), che generano identificativi casuali e li ruotano nel tempo.

Alle connessioni domestiche l'operatore non assegna un singolo indirizzo ma un prefisso delegato — tipicamente un /56 o un /64 — dal quale il router ricava gli indirizzi per tutti i dispositivi. È il motivo per cui in IPv6 non serve il NAT.

Convivenza con IPv4

Il modo normale di convivere è il dual stack: entrambi i protocolli attivi contemporaneamente sulla stessa interfaccia. La scelta di quale usare per una data connessione spetta al sistema operativo, che applica Happy Eyeballs (RFC 8305): tenta entrambi quasi in parallelo e tiene quello che risponde prima, così un IPv6 mal configurato non blocca la navigazione ma la rallenta soltanto di poco.

Dove l'IPv4 pubblico scarseggia esistono meccanismi di transizione — NAT64 con DNS64, 464XLAT sulle reti mobili, tunnel come 6rd — che permettono a un dispositivo con solo IPv6 di raggiungere servizi ancora solo IPv4.

Verificare e diagnosticare

  • ip -6 addr · ipconfig — indirizzi IPv6 delle interfacce locali
  • ping -6 mioip.org · ping6 — raggiungibilità in IPv6
  • curl -6 https://… e curl -4 https://… — forza il protocollo e mostra quale funziona
  • dig AAAA dominio — verifica se un dominio è pubblicato in IPv6
  • traceroute6 — il percorso seguito dai pacchetti IPv6

Un dettaglio che genera confusione: una notazione come ::ffff:93.45.201.7 non è un vero indirizzo IPv6, ma un IPv4 rappresentato in forma IPv6 (IPv4-mapped). Se la vedi al posto di un indirizzo IPv6 vero, la connessione IPv6 non c'è.

Vuoi vedere il tuo indirizzo IP in questo momento?

Mostra il mio IP