Oggi, 6 giugno 2012, per internet rischia di diventare una data storica, è infatti il giorno in cui molti ISP (Internet Service Providers), produttori di hardware per il networking (router et similia) e molte grandi compagnie del World Wide Web (Google, Facebook, Yahoo! e altri) adottano ufficialmente e permanentemente IPv6 come standard ufficiale di assegnazione degli indirizzi internet.
IPv6 in breve
Non è semplice spiegare in poche semplici parole cosa sia IPv6, e infatti non ci riuscirò.
In sostanza, noi ci colleghiamo alla rete tramite un protocollo chiamato TCP/IP che è diviso in due parti. La prima (TCP), prende il flusso dei dati in trasmissione e li divide in segmenti per poi trasmetterli a destinazione usando la seconda parte, l’Internet Protocol (IP).
Arrivati a destinazione, i dati vengono ripresi in consegna da TCP, che li “riassembla” nel giusto ordine per essere interpretati dall’applicazione che ne fa richiesta (es: un browser).
Questa è una doverosa premessa, perché implica il fatto che qualsiasi applicazione (e quindi l’hardware su cui gira) connessa alla rete, deve necessariamente conoscere il proprio indirizzo all’interno della rete stessa.
La parte IP però, come venne strutturata nel 1981, mostra ora i suoi limiti. Ai tempi si pensò di utilizzare un indirizzo a 32 bit (IPv4) perché offriva un buon numero di indirizzi, ma senza occupare troppo spazio nel “pacchetto” inviato in rete per definire tale indirizzo.
La rete non era certo quella odierna e le velocità nemmeno. Si pensava quindi che un numero vicino ai 4,3 miliardi fosse sufficiente. In realtà, quelli utilizzabili realmente, per varie ragioni, sono circa 3,7 miliardi.
5 anni fa ne erano stati utilizzati 2,4 miliardi e con poco meno di 200 milioni di indirizzi assegnati per anno, le scorte si fanno sempre più limitate.
In realtà, se dovessimo considerare tutti i dispositivi che tutti i giorni si collegano alla rete, gli indirizzi molto probabilmente sarebbero già terminati da un pezzo, ma come chiunque possiede più di un computer collegato alla stessa rete sa, un indirizzo pubblico (fisso o dinamico che sia) può essere condiviso da più dispositivi tramite NAT (Network Address Translation), dove gli indirizzi facenti parte dei blocchi 10.0.0.0, 172.16.0.0 e 192.168.0.0 vengono utilizzati più volte per distribuire il flusso di dati proveniente dall’indirizzo IP pubblico ai vari componenti la rete.
Ma ovviamente questo non risolve il problema, per svariate ragioni. Quella su cui ci si scontra più facilmente è che le connessioni in ingresso non funzionano. Un server dietro NAT, per funzionare, richiede la mappatura sulla porta di comunicazione (come sa bene chi vuole accedere al proprio computer da remoto senza possedere un IP fisso).
Al di là di tutto questo e delle altre motivazioni negative che qui non citiamo, i partecipanti alla Internet Engineering Task Force (IETF), non hanno tenuto molto in considerazione NAT come soluzione. Giustamente, secondo il mio modesto parere, visto che seppur largamente utilizzato, NAT non ha certo contribuito a diminuire il numero di richieste di nuovi indirizzi.
IETF ha invece voluto guardare molto avanti con IPv6, utilizzando indirizzi a 128bit. Il numero possibile di indirizzi diventa quindi di:
340.282.366.920.938.463.463.374.607.431.768.211.456
o per meglio dire 2128 o 3,4 x 1038
Un numero quasi inconcepibile, potete trovare esemplificazioni ovunque in rete (come nella voce di Wikipedia), io non mi ci metto nemmeno. È concepibile invece lo slogan, dati questi numeri: the future is forever.
IPv6 e i nostri Mac
Sui nostri Mac IPv6 è attivo fin dalla versione 10.2 Jaguar del 2002 e sono quindi capaci di mettersi in comunicazione con router configurati con IPv6, ma anche senza di essi rispondono al semplice comando di ping (per IPv6) consentendo quindi una comunicazione interna tramite il protocollo.
Essendo IPv6 parte integrante del sistema operativo, le applicazioni che “girano” su di esso sono strutturate in modo tale da sfruttare il protocollo ove possibile ed è probabile che tutte le applicazioni built-in di Apple supportino IPv6.
Il problema è che molte di queste verificano se si è connessi alla rete o meno e, mentre Safari funziona anche se non c’è connessione IPv4 ma solo IPv6, Messages (iChat) per esempio non lo fa. Se togliamo IPv4, pur essendo in grado di gestire il nuovo protocollo, penserà di non essere connesso a internet e quindi non funzionerà.
Come funziona IPv6
Per comunicare correttamente, due dispositivi che utilizzano IPv6 devono incontrare sul proprio tragitto solo ed esclusivamente router che siano in grado di interpretare IPv6 in modo nativo. Visto che questo non era possibile fino a poco tempo fa, la connettività era basata sul “tunnelling”, dove in sostanza IPv6 veniva inserito all’interno di pacchetti IPv4 in modo da poter essere distribuiti tramite router di vecchio tipo. Questo ha generato una serie di problemi che qui per brevità non analizziamo.
Basti dire che dalla versione 10.6.5 di Snow Leopard, Apple ha introdotto un meccanismo che cerca di capire quale dei due protocolli sia più veloce al momento della connessione e si stabilizza nel suo utilizzo (sempre che IPv6 sia disponibile, ovviamente).
Con Lion questo è stato ulteriormente migliorato, perché il sistema cerca di connettersi utilizzando sia IPv6 che IPv4 e poi si stabilizza sul protocollo più veloce.
Migliorato dal punto di vista dell’utenza, finché non ci sono problemi. Perché qualora ve ne fossero, diventa molto difficile stabilire quale sia tra IPv6 e IPv4 il responsabile in particolare. È auspicabile che Apple introduca la possibilità di preferire IPv6 a IPv4 agli Amministratori di sistema.
Indirizzi temporanei
Come viene generato il nostro indirizzo IPv6? Esiste ovviamente DHCPv6 (l’indirizzo viene assegnato dal router), ma OS X lo supporta solo da Lion in poi. Quello che a noi conviene fare è di lasciare attiva la configurazione automatica e configurare i DNS manualmente se utilizziamo un sistema precedente a Lion (e non disponiamo di un router DHCPv6).
In questo modo il router invia al nostro Mac i primi 64 bit dell’indirizzo, condiviso tra tutti i dispositivi collegati al network. A questo viene aggiunto l’indirizzo MAC (quello identificativo della scheda di rete) per formare così l’indirizzo a 128 bit completo.
Questo però espone il nostro indirizzo MAC alla visibilità da parte di chiunque comunichi con noi, il che potrebbe non essere vantaggioso per chi tiene alla propria privacy.
Quindi alla IETF hanno pensato di utilizzare i cosiddetti Indirizzi temporanei, generati utilizzando un numero casuale e non l’indirizzo MAC. Ogni volta che ci colleghiamo alla rete (o dopo un determinato lasso di tempo) ne viene generato uno nuovo.
OS X Lion genera gli indirizzi temporanei automaticamente, mentre nelle versioni precedenti bisogna inserire questa stringa nel terminale:
sysctl -w net.inet6.ip6.use_tempaddr=1
iOS
Il supporto a IPv6 è stato introdotto in iOS dalla versione 4.0, ma solo dalla 5.0 sono presenti tutte le funzioni che ritroviamo anche su Lion, inclusi gli indirizzi temporanei e DHCPv6.
L’unico problema è che il tutto sembra funzionare su reti WiFi e non in 3G.
Infine…
Cercando di concludere il discorso, Apple sembra essere a un buon punto per quanto riguarda il supporto a IPv6, anche se sicuramente dovrà fare qualche sforzo per renderlo più fruibile e maneggevole da parte degli amministratori di sistema.
Basti pensare alla semplificazione introdotta nell’ultima versione di Airport Utility, dove le configurazioni di IPv6 per le basi Airport sono del tutto sparite (bisogna utilizzare la versione 5.6 per attivare IPv6, qualora fosse disattivato).
Per il momento possiamo stare tranquilli, credo proprio che i primi problemi arriveranno dalle tonnellate di router obsoleti che ornano le mensole delle nostre case.
Basta fare una prova, tra l’altro:
Desidero ringraziare personalmente Roberto Beccherle per lo spunto e la segnalazione dell’articolo su Arstechnica, miniera di informazioni pressoché inesauribile.
Resta ovvio che il linguaggio dell’articolo sia appositamente semplificato, mi scuseranno i puristi della materia.
Paolo 06/06/2012 il 13:36
Grazie
Ariticolo molto interessante
Robertino68 06/06/2012 il 20:06
Però… Thanks :)
OpinionKing 07/06/2012 il 21:25
Ho provato il test ed è fallito….
…. di grazia, dove bisogna mettere mano nell’Utility 5.6 per attivarlo?