IPv6 è la versione dell'Internet Protocol designata come successore dell'IPv4. Tale protocollo introduce alcuni nuovi servizi e semplifica molto la configurazione e la gestione delle reti IP.

La sua caratteristica più importante è l'ampio spazio di indirizzamento: IPv6 riserva per gli indirizzi IP e gestisce (circa ) indirizzi; IPv4 riserva per l'indirizzamento e gestisce (circa ) indirizzi.

Quantificando con un esempio, per ogni metro quadrato di superficie terrestre, ci sono indirizzi IPv6 unici (cioè miliardi di miliardi o 655 triliardi), ma solo IPv4 (cioè solo 7 IPv4 ogni chilometro quadrato). Per dare un'idea delle grandezze in uso, se si paragona l'indirizzo singolo a un Quark (grandezza nell'ordine di 1 attometro), con IPv4 si raggiungerebbe il diametro dell'elica del DNA (di pochi nanometri), mentre con IPv6 si raggiungerebbe il centro della Via lattea dalla Terra (tre decine di millenni-luce). L'adozione su vasta scala di IPv6 e quindi del formato per gli indirizzi IP risolverebbe indefinitamente il problema dell'esaurimento degli indirizzi IPv4.

Storia L'ICANN rese disponibile il protocollo IPv6 sui root nameserver dal 20 luglio 2004, ma solo dal 4 febbraio 2008 iniziò l'inserimento dei primi indirizzi IPv6 nel sistema di risoluzione dei nomi. Il 3 febbraio 2011 la IANA ha assegnato gli ultimi blocchi di indirizzo IPv4 ai cinque RIR (un blocco /8 ciascuno), anche se il protocollo IPv4 verrà utilizzato fino al 2025 circa, per dare il tempo necessario ad adeguarsi.

Tappe Nel 1999 viene implementato il primo tunnel IPv6 da Ivano Guardini presso lo CSELT, autore anche dell'RFC 3053. Nel 2003 Nihon Keizai Shimbun (come citato dallo staff di CNET Asia, nel 2003) ha segnalato che il Giappone, la Cina e la Corea del Sud hanno annunciato di essere determinati a diventare le principali nazioni nello sviluppo e utilizzo della tecnologia di Internet, partendo con lo sviluppo di IPv6 e terminando nel 2005 con la sua completa adozione. Il 20 luglio 2004 l'ICANN ha annunciato l'integrazione della nuova versione del protocollo Internet nei root server che gestiscono il traffico in rete. Entusiasta Vinton Cerf, padre del TCP/IP e presidente dell'ICANN che afferma: «Maggiore stabilità per il grande network». L'ICANN ha inoltre annunciato che i nameserver dei record IPv6 di tipo AAAA per i domini nazionali ccTLD (country code Top Level Domain) del Giappone (.jp) e Corea del Sud (.kr) sono diventati visibili nei file di zona dei root server di DNS con il numero di serie 2004072000. È stato previsto che i record IPv6 per la Francia (.fr) verranno aggiunti presto. Ciò ha reso IPv6 pubblicamente operativo. L'8 giugno 2011 è stato organizzato il World IPv6 Day in cui le maggiori aziende hanno utilizzato il nuovo protocollo per un giorno e non si sono registrati particolari problemi durante questo test. Il 6 giugno 2012 è stato organizzato il World IPv6 Launch in occasione del quale alcune delle maggiori aziende operanti su web sono migrate definitivamente al nuovo protocollo.

Descrizione

Il motivo più pressante dietro l'adozione del protocollo IPv6 è stato l'insufficienza di spazio per l'indirizzamento dei dispositivi in rete, in particolar modo nei paesi altamente popolati dell'Asia come l'India e la Cina.

Oltre a rispondere a questa esigenza l'IPv6 incorpora alcuni protocolli che prima erano separati, come l'ARP, ed è in grado di configurare automaticamente alcuni parametri di configurazione della rete, come per esempio il default gateway. Inoltre supporta nativamente la qualità di servizio e introduce l'indirizzamento anycast, che permette a un computer in rete di raggiungere automaticamente il più vicino server disponibile di un dato tipo (un DNS, per esempio) anche senza conoscerne a priori l'indirizzo.

Per quanto riguarda i grandi gestori di telecomunicazioni, le principali migliorie sono: header di lunghezza fissa (); pacchetti non frammentabili dai router; eliminazione del campo checksum, già presente negli altri strati dello stack protocollare e perciò ridondante. Queste tre novità alleggeriscono molto il lavoro dei router, migliorando l'instradamento e il throughput (numero di pacchetti o bit instradati al secondo, solitamente misurato in bps). Insieme all'IPv6 inoltre viene definito anche l'ICMPv6, molto simile all'ICMPv4 ma che ingloba il vecchio protocollo IGMP, assumendosi anche il compito di gestire le connessioni multicast.

IPv6 è la seconda versione dell'Internet Protocol a essere ampiamente sviluppata e costituirà la base per la futura espansione di Internet.

Caratteristiche L'indirizzamento in IPv6

Il cambiamento più rilevante nel passaggio dall'IPv4 all'IPv6 è la lunghezza dell'indirizzo di rete. L'indirizzo IPv6, come definito nel RFC 2373 e nel RFC 2374 è lungo , cioè 32 cifre esadecimali, che sono normalmente utilizzate nella scrittura dell'indirizzo come descritto più avanti.

Questo cambiamento porta il numero di indirizzi esprimibili dall'IPv6 a .

Una delle critiche allo spazio di indirizzamento di è che potrebbe essere ampiamente sovradimensionato. Bisogna considerare che la ragione di un indirizzamento così ampio non è da associare alla volontà di assicurare un numero sufficiente di indirizzi, quanto al tentativo di porre rimedio alla frammentazione dello spazio di indirizzamento IPv4, conseguenza, tra le altre cose, della limitazione dello spazio di indirizzamento e della poca possibilità di prevedere a medio-lungo termine la richiesta di indirizzi. È infatti possibile che un singolo operatore di telecomunicazione abbia assegnati numerosi blocchi di indirizzi non contigui.

Come per IPv4 anche IPv6 prevede che l'instradamento sia realizzato sulla base di prefissi (oggetto delle rotte) di lunghezza variabile. Normalmente tali prefissi sono non più lunghi di , in modo da consentire l'impiego dei meno significativi con il solo ruolo di identificare un terminale. Questo vale anche per l'accesso a Internet di una normale abitazione, a cui verrebbero assegnati almeno () indirizzi pubblici, mentre per realtà che dispongono di una struttura di rete articolata in più segmenti di LAN occorre assegnare un arco di indirizzi ancora più grande (ad esempio un prefisso di , vedi RFC 6177). I primi dell'indirizzo IPv6 descrivono genericamente il tipo di computer e l'uso che questo fa della connessione (telefono VoIP, PDA, data server, telefonia mobile ecc.)

Questa caratteristica svincola virtualmente il protocollo IPv6 dalla topologia della rete fisica, permettendo per esempio di avere lo stesso indirizzo IPv6 a prescindere dal particolare Internet service provider (ISP) che si sta usando (il cosiddetto IP personale) rendendo quindi l'indirizzo IPv6 simile a un numero di telefono. Queste nuove caratteristiche complicano però il routing IPv6 che deve tenere conto di mappe di instradamento più complesse rispetto all'IPv4; proprio le nuove proprietà dell'indirizzamento rappresentano anche i potenziali talloni d'Achille del protocollo.

Notazione per gli indirizzi IPv6 Gli indirizzi IPv6 sono composti di e sono rappresentati come 8 gruppi, separati da due punti, di quattro cifre esadecimali (ovvero otto word di ciascuna) in cui le lettere vengono scritte in forma minuscola. Per esempio 2001:0db8:85a3:0000:1319:8a2e:0370:7344 rappresenta un indirizzo IPv6 valido.

Se uno dei gruppi – come nell'esempio – è composto da una sequenza di quattro zeri può essere contratto a un solo zero: 2001:0db8:85a3:0:1319:8a2e:0370:7344

Inoltre, una sequenza di zeri contigui (e una soltanto) della RFC 5952 composta da due o più gruppi può essere contratta con la semplice sequenza :: ovvero 2001:0db8:0000:0000:0000:8a2e:0370:7344 corrisponde a 2001:0db8:0:0:0:8a2e:0370:7344 o ancora più sinteticamente a 2001:0db8::8a2e:0370:7344

Seguendo le regole prima menzionate, se più sequenze simili si susseguono, è possibile ometterle tutte; di seguito vengono riportate varie rappresentazioni dello stesso indirizzo: 2001:0db8:0000:0000:0000:0000:1428:57ab 2001:0db8:0000:0000::1428:57ab 2001:0db8:0:0:0:0:1428:57ab 2001:0db8:0::0:1428:57ab 2001:0db8::1428:57ab Tuttavia 2001:0db8::25de::cade non è un indirizzo valido, poiché non è possibile definire quante sequenze siano presenti nelle due lacune.

Inoltre possono essere omessi anche gli zeri iniziali di ogni gruppo: 2001:0db8:02de::0e13 corrisponde a 2001:db8:2de::e13

Gli ultimi 32 bit possono essere scritti in decimale (nella notazione dotted decimal): ::ffff:192.168.89.9 è uguale a ::ffff:c0a8:5909 ma diverso da: ::192.168.89.9 o da: ::c0a8:5909 rendendo così la sintassi IPv6 retrocompatibile con quella IPv4 con evidenti benefici.

La forma di scrittura ::ffff:1.2.3.4 è chiamata IPv4-mapped address.

Il formato ::1.2.3.4 è un IPv4-compatible address, tuttavia l'uso di questo formato è sconsigliato in quanto esso è stato deprecato

Gli indirizzi IPv4 sono facilmente trasformabili in formato IPv6. Ad esempio, se l'indirizzo decimale IPv4 è 135.75.43.52 (in esadecimale, 874B2B34), può essere convertito in 0000:0000:0000:0000:0000:FFFF:874b:2b34 [oppure in notazione ibrida 0000:0000:0000:0000:0000:FFFF:135.75.43.52] o più brevemente ::ffff:874b:2b34. Anche in questo caso è possibile l'uso della notazione ibrida (IPv4-compatible address), usando la forma ::ffff:135.75.43.52.

Indirizzi speciali È stato definito un certo numero di indirizzi con significati particolari. La tabella seguente ne elenca alcuni nella notazione CIDR.

::/128 - l'indirizzo composto da tutti zeri, detto unspecified address, viene utilizzato per indicare l'assenza di indirizzo e viene utilizzato esclusivamente a livello software, corrisponde a 0.0.0.0 in IPv4; ::1/128 - l'indirizzo di loopback è un indirizzo associato al dispositivo di rete che ripete come eco tutti i pacchetti che gli sono indirizzati. Corrisponde a 127.0.0.1 in IPv4; ::/96 - è utilizzato per interconnettere le due tecnologie IPv4/IPv6 nelle reti ibride. Gli indirizzi IPv4 compatibili sono stati deprecati in favore degli indirizzi IPv4-Mapped address; ::ffff:0:0/96 - l'indirizzo IPv4-mapped address è utilizzato nei dispositivi dual stack; fe80::/10 - il prefisso link-local specifica che l'indirizzo è valido esclusivamente sullo specifico link fisico; fec0::/10 - il prefisso site-local specifica che l'indirizzo è valido esclusivamente all'interno dell'organizzazione locale. Il suo uso è stato sconsigliato nel settembre del 2004 con il RFC 3879 e i sistemi futuri non ne dovrebbero implementare il supporto; fc00::/7 - il prefisso unique local addresses (ULA) è valido esclusivamente all'interno dell'organizzazione. Il suo uso è analogo alle classi private della versione IPv4 (gli IP ULA non vengono ruotati su internet). Sostituiscono gli indirizzi site-local deprecati. Non esiste nessuna registrazione formale degli indirizzi privati presso organizzazioni RIR anche se esistono siti non istituzionali che tengono traccia dei vari ULA per evitare sovrapposizioni; ff00::/8 - il prefisso di multicast è utilizzato per gli indirizzi di multicast.

Il pacchetto IPv6 Il pacchetto IPv6, come ogni altro pacchetto di un altro strato protocollare, si compone di due parti principali: l'header e il payload.

L'header è costituito dai primi del pacchetto e contiene otto campi, cinque in meno rispetto all'IPv4. I campi sono inseriti col byte più significativo messo per primo (notazione big-endian) e all'interno dei singoli byte il bit più significativo è il primo (quello di indice 0).

+ Bit 0–3 4–11 12–15 16–23 24–31 0-31 Version Traffic class Flow label 32-63 Payload length Next header Hop limit 64-191 Source address () 192-319 Destination address ()

Version [] - Indica la versione del datagramma IP: per IPv6, ha valore 6 (da qui il nome IPv6).