IPv6 è la versione più recente del protocollo Internet. Ufficializzato originariamente il 6 giugno 2012, è il risultato dello sforzo dell’IETF per creare la “nuova generazione di IP” (IPng: Internet Protocol next generation), le cui linee guida sono state descritte da Scott Bradner e Allison Marken, nel 1994, in la RFC 1752. La sua specifica principale si trova nella RFC 2460.
Il protocollo viene distribuito gradualmente su Internet e dovrebbe funzionare fianco a fianco con IPv4, in una situazione tecnicamente chiamata “dual stack” o “dual stack”, per qualche tempo. A lungo termine, IPv6 è destinato a sostituire IPv4, che supporta solo circa 4 miliardi (scala corta)/miliardo (scala lunga) (4 × 109) indirizzi IP, contro circa 340 undecillion (scala corta)/sestilion (scala lunga) (3,4×1038) di indirizzi del nuovo protocollo.
L’argomento è così rilevante che alcuni governi hanno sostenuto questa attuazione. Il governo degli Stati Uniti, ad esempio, nel 2005 ha stabilito che tutte le sue agenzie federali devono dimostrare di essere in grado di operare con il protocollo IPv6 entro giugno 2008. Nel luglio 2008 è stata rilasciata una nuova revisione delle raccomandazioni per l’adozione di IPv6. presso le agenzie federali, fissando una data di luglio 2010 per garantire il supporto IPv6.
Motivazioni per la distribuzione di IPv6
Esaurimento IPv4 e necessità di più indirizzi Internet
Il motivo principale per la distribuzione di IPv6 su Internet è la necessità di più indirizzi, poiché la disponibilità di indirizzi IPv4 gratuiti è terminata.
Per comprendere le ragioni di questo esaurimento, è importante considerare che Internet non è stata progettata per un uso commerciale. All’inizio degli anni ’80 era considerata una rete prevalentemente accademica, con alcune centinaia di computer interconnessi. Nonostante questo, si può affermare che l’IP versione 4, lo spazio degli indirizzi a 32 bit non è piccolo: 4.294.967.296 indirizzi.
Tuttavia, già all’inizio del suo utilizzo commerciale, nel 1993, si riteneva che lo spazio degli indirizzi di Internet potesse esaurirsi in un periodo di 2 o 3 anni. Ma non per il numero limitato di indirizzi, ma per la politica di allocazione iniziale, che non era favorevole ad un uso razionale di queste risorse. Questo spazio era diviso in tre classi principali (sebbene attualmente ci siano, a rigor di termini, cinque classi), vale a dire:
- Classe A: con 128 segmenti/reti, assegnabili individualmente alle entità che ne avevano bisogno, con circa 16 milioni di indirizzi ciascuno. Questa classe è stata classificata come /8, poiché i primi 8 bit rappresentavano la rete, o segmento, mentre il resto poteva essere utilizzato liberamente. Utilizzava lo spazio tra gli indirizzi 00000000.*.*.* (0.*.*.*) e 01111111.*.*.* (127.*.*.*).
- Classe B: con circa 16mila segmenti da 64mila indirizzi ciascuno. Questa classe è stata valutata /16. Utilizzava lo spazio tra gli indirizzi 10000000.0000000.*.* (128.0.*.*) e 10111111.11111111.*.* (191.255.*.*).
- Classe C: con circa 2 milioni di segmenti da 256 indirizzi ciascuno. Questa classe è stata classificata come /24. Utilizzava lo spazio tra gli indirizzi 11000000.0000000.00000000.* (192.0.0.*) e 110111111.11111111.11111111.* (213.255.255.*).
I restanti 32/8 blocchi sono stati riservati al Multicast e all’Internet Assigned Numbers Authority (IANA), l’ente che controlla l’allocazione globale dei numeri su Internet.
Lo spazio riservato alla classe A servirebbe solo 128 entità, tuttavia occupava la metà degli indirizzi disponibili. Tuttavia, società ed entità come HP, GE, DEC, MIT, DISA, Apple, AT&T, IBM, USPS, tra gli altri, hanno ricevuto allocazioni di questo tipo.
Le previsioni iniziali, tuttavia, di un esaurimento quasi immediato delle risorse, non si sono concretizzate a causa dello sviluppo di una serie di tecnologie, che hanno funzionato come soluzione palliativa al problema determinato dalla crescita accelerata:
- CIDR ( Classless Inter Domain Routing ), o routing senza classi, descritto da RFC 1519. Con CIDR è stato abolito lo schema delle classi, che permetteva di assegnare blocchi di indirizzi di dimensioni arbitrarie, a seconda delle necessità, portando un uso più razionale dello spazio.
- L’uso di NAT ( Network Address Translation ) e RFC 1918, che specifica gli indirizzi privati, non validi su Internet, nelle reti aziendali. NAT consente, con un solo indirizzo valido, a un’intera rete basata su indirizzi privati, di avere una connessione, seppur limitata, ad Internet.
- Il Dynamic Host Configuration Protocol ( DHCP ), descritto da RFC 2131 . Questo protocollo ha consentito ai provider di riutilizzare gli indirizzi Internet forniti ai propri clienti per connessioni non permanenti.
La combinazione di queste tecnologie ha ridotto la domanda di nuovi numeri IP, così che l’esaurimento previsto per gli anni ’90 è stato posticipato agli anni 2010. Tuttavia, l’adozione mondiale di IPv6 è lenta: secondo Google, l’adozione di IPv6 nel mondo era del 2% nel 2014, 5% nel 2015, 8% nel 2016, 14% nel 2017, 20% nel 2018, 25% nel 2019, 30 % nel 2020, 33% nel 2021 e 35% nel 2022; secondo APNIC, l’adozione mondiale di IPv6 è stata del 2% nel 2014, 3% nel 2015, 5% nel 2016, 9% nel 2017, 16% nel 2018, 19% nel 2019, 24% nel 2020, 27% nel 2021 e 29% nel 2022.
Altri fattori motivanti
Il fattore principale che guida l’implementazione di IPv6 è la sua necessità nell’infrastruttura Internet. È un problema di continuità aziendale, per i fornitori e una miriade di altre aziende e istituzioni.
Tuttavia, ci sono altri fattori che motivano la sua attuazione:
- Internet of Things: Si immagina che, in un futuro in cui l’informatica sia onnipresente, la tecnologia sarà presente in diversi dispositivi attualmente non ancora intelligenti, che potranno interagire autonomamente tra loro: computer invisibili collegati a Internet, integrati in gli oggetti usati quotidianamente, che rendono la vita ancora più liquida. Si può immaginare elettrodomestici connessi, automobili, edifici intelligenti, apparecchiature di monitoraggio medico, ecc. Decine, forse anche centinaia o migliaia di dispositivi saranno collegati in ogni casa e ufficio. IPv6, con indirizzi abbondanti, fissi e validi, è necessario per rendere questo futuro una realtà.
- Espansione delle reti: diversi fattori motivano un’espansione sempre più accelerata di Internet: inclusione digitale, reti mobili (3G, 4G, 5G), ecc. Sono necessari più IP.
- Qualità del servizio: La convergenza delle future reti di telecomunicazioni al livello di rete comune, IPv6, favorirà la maturazione di servizi oggi incipienti, come VoIP, streaming video in tempo reale , ecc., e ne farà apparire di nuovi. IPv6 ha migliorato il supporto per diverse classi di servizio, a seconda dei requisiti e delle priorità del servizio in questione.
- Mobilità: la mobilità è un fattore molto importante nella società odierna. IPv6 supporta la mobilità degli utenti, possono essere contattati su qualsiasi rete tramite il loro indirizzo IPv6 di origine.
Novità nelle specifiche IPv6
- Spazio degli indirizzi . Gli indirizzi IPv6 sono lunghi 128 bit.
- Autoconfigurazione degli indirizzi . Supporto per l’allocazione automatica degli indirizzi in una rete IPv6, il server DHCP a cui siamo abituati in IPv4 può essere omesso.
- Indirizzamento gerarchico . Semplifica le tabelle di routing dei router di rete, riducendo così il loro carico di elaborazione.
- Formato intestazione . Totalmente rimodellato rispetto a IPv4: più semplificato ed efficiente.
- Intestazioni di estensione . Possibilità di salvare informazioni aggiuntive.
- Supporto di qualità differenziato . Le applicazioni audio e video iniziano a stabilire connessioni appropriate tenendo conto delle loro esigenze in termini di qualità del servizio (QoS).
- Capacità di estensione . Consente di aggiungere nuove specifiche in modo semplice.
- crittografia . Diverse estensioni in IPv6 consentono, fin dall’inizio, il supporto per opzioni di sicurezza come l’autenticazione, l’integrità dei dati e la riservatezza.
Formato datagramma IPv6
Un datagramma IPv6 è costituito da un’intestazione di base, illustrata nella figura seguente, seguita da zero o più intestazioni di estensione, seguite dal blocco di dati.
Formato dell’intestazione della base del datagramma IPv6:
- Ha meno informazioni rispetto all’intestazione IPv4. Ad esempio, il checksum è stato rimosso dall’intestazione, poiché questa versione considera affidabile la gestione degli errori di livello inferiore.
- Il campo Traffic Class (8 bit) viene utilizzato per indicare la classe di servizio a cui appartiene il pacchetto, consentendo così trattamenti diversi a pacchetti provenienti da applicazioni con requisiti differenti. Questo campo funge da base per il funzionamento del meccanismo della qualità del servizio (QoS) nella rete.
- Il campo Flow Label (20 bit) viene utilizzato con nuove applicazioni che richiedono buone prestazioni. Consente di associare datagrammi che fanno parte della comunicazione tra due applicazioni. Utilizzato per inviare datagrammi lungo un percorso predefinito.
- Il campo Payload Length (16 bit) rappresenta, come suggerisce il nome, il volume di dati in byte che trasporta il pacchetto.
- Il campo Intestazione successiva (8 bit) punta alla prima intestazione di estensione. Utilizzato per specificare il tipo di informazioni che segue l’intestazione corrente.
- Il campo Hop Limit (8 bit) ha il numero di hop trasmessi prima di scartare il datagramma, cioè questo campo indica il numero massimo di hop (passanti attraverso i router) del datagramma prima di essere scartato. Questo campo sovrascrive il TTL IPv4.
- Il campo Indirizzo di origine (128 bit) indica l’indirizzo di origine del pacchetto.
- Il campo Indirizzo di destinazione (128 bit) indica l’indirizzo di destinazione del pacchetto.
Frammentazione e determinazione del corso
In IPv6, l’ host che invia il datagramma è responsabile della frammentazione, non i router intermedi come nel caso di IPv4. In IPv6, i router intermedi scartano datagrammi più grandi dell’MTU di rete. L’MTU sarà l’MTU massimo supportato dalle diverse reti tra la sorgente e la destinazione. Per questo l’ host invia pacchetti ICMP di varie dimensioni; quando un pacchetto arriva all’host di destinazione , tutti i dati da trasmettere vengono frammentati nella dimensione di questo pacchetto che ha raggiunto la destinazione.
Il processo di discovery dell’MTU deve essere dinamico, perché il percorso può cambiare durante la trasmissione dei datagrammi.
In IPv6, un prefisso non frammentato del datagramma originale viene copiato in ogni frammento. Le informazioni sulla frammentazione vengono archiviate in un’intestazione di estensione separata. Ogni frammento inizia con un componente non frammentabile seguito da un’intestazione di frammento.
Intestazioni multiple
Una delle novità di IPv6 è la possibilità di utilizzare più header concatenati. Queste intestazioni aggiuntive consentono una maggiore efficienza, poiché le dimensioni dell’intestazione possono essere regolate secondo necessità e una maggiore flessibilità, poiché è sempre possibile aggiungere nuove intestazioni per soddisfare nuove specifiche.
Le specifiche attuali consigliano il seguente ordine:
- IPv6
- Intestazione delle opzioni hop-by-hop
- Intestazione dell’opzione di destinazione
- Intestazione di instradamento
- Intestazione del frammento
- Intestazione del payload di sicurezza dell’autenticazione
- Intestazione delle opzioni di destinazione
- Intestazione del livello superiore
Blocchi e allocazioni
La responsabilità dell’allocazione e della gestione del pool di indirizzi IPv6 è stata delegata alla IANA nel dicembre 1995. Da allora, la IANA ha distribuito i blocchi necessari ai RIR per la successiva delega ad altre entità.
Prefisso | Allocazione | Dati | Osservazione |
---|---|---|---|
0000::/8 | Riservato dall’IETF | ||
0100::/8 | Riservato dall’IETF | ||
0200::/7 | Riservato dall’IETF | Ammortato nel dicembre 2004 | |
0400::/6 | Riservato dall’IETF | ||
0800::/5 | Riservato dall’IETF | ||
1000::/4 | Riservato dall’IETF | ||
2000::/3 | Unicast globale | ||
2001:0000::/23 | IANA | 01/07/1999 | |
2001:0200::/23 | APNIC | 01/07/1999 | |
2001:0400::/23 | ARINO | 01/07/1999 | |
2001:0600::/23 | MATURO NCC | 01/07/1999 | |
2001:0800::/22 | MATURO NCC | 02/11/2002 | |
2001:0c00::/23 | APNIC | 05/02/2002 | |
2001:0e00::/23 | APNIC | 01/01/2003 | |
2001:1200::/23 | LACNIC | 01/11/2002 | |
2001:1400::/22 | MATURO NCC | 01/07/2003 | |
2001:1800::/23 | ARINO | 01/04/2003 | |
2001:1a00::/23 | MATURO NCC | 01/01/2004 | |
2001:1c00::/22 | MATURO NCC | 05/04/2004 | |
2001:2000::/19 | MATURO NCC | 03/12/2013 | |
2001:4000::/23 | MATURO NCC | 06/11/2004 | |
2001:4200::/23 | AFRICA | 01/06/2004 | |
2001:4400::/23 | APNIC | 06/11/2004 | |
2001:4600::/23 | MATURO NCC | 17/08/2004 | |
2001:4800::/23 | ARINO | 24/08/2004 | |
2001:4a00::/23 | MATURO NCC | 15/10/2004 | |
2001:4c00::/23 | MATURO NCC | 17/12/2004 | |
2001:5000::/20 | MATURO NCC | 09/10/2004 | |
2001:8000::/19 | APNIC | 30/01/2004 | |
2001: a000 :: / 20 | APNIC | 30/11/2004 | |
2001:b000::/20 | APNIC | 03/08/2006 | |
2002:0000::/16 | 6to4 | 01/02/2001 | |
2003:0000::/18 | MATURO NCC | 01/12/2005 | |
2400:0000::/12 | APNIC | 10/03/2006 | |
2600:0000::/12 | ARINO | 10/03/2006 | |
2610:0000::/23 | ARINO | 17/11/2005 | |
2620:0000::/23 | ARINO | 09/12/2006 | |
2630:0000::/12 | ARINO | 06/11/2019 | |
2800:0000::/12 | LACNIC | 10/03/2006 | |
2a00: 0000 :: / 12 | MATURO NCC | 10/03/2006 | |
2a10:0000::/12 | MATURO NCC | 05/09/2019 | |
2c00:0000::/12 | AFRICA | 10/03/2006 | |
2d00:0000::/8 | IANA | 01/07/1999 | |
2e00:0000::/7 | IANA | 01/07/1999 | |
3000:0000::/4 | IANA | 01/07/1999 | |
3ffe::/16 | IANA | 01/04/2008 | |
4000::/3 | Riservato dall’IETF | ||
5f00::/8 | IANA | 01/04/2008 | |
6000::/3 | Riservato dall’IETF | ||
8000::/3 | Riservato dall’IETF | ||
a000 :: / 3 | Riservato dall’IETF | ||
c000::/3 | Riservato dall’IETF | ||
e000::/4 | Riservato dall’IETF | ||
f000 :: / 5 | Riservato dall’IETF | ||
f800 :: / 6 | Riservato dall’IETF | ||
fc00::/7 | Unicast locale unico | ||
fe00::/9 | Riservato dall’IETF | ||
fe80::/10 | Unicast con ambito di collegamento | riservato al protocollo | |
fec0::/10 | Riservato dall’IETF | Deprecato da RFC3879 | |
ff00 :: / 8 | Multicast | Incarichi per questo blocco registrati dalla IANA |
Indirizzamento
L’indirizzamento in IPv6 è di 128 bit (quattro volte quello di IPv4) e include il prefisso di rete e il suffisso host . Tuttavia, non ci sono classi di indirizzi, come in IPv4. Pertanto, il limite del prefisso e del suffisso può trovarsi in qualsiasi punto dell’indirizzo.
Un indirizzo IPv6 standard deve essere costituito da un campo ID provider , ID sottoscrizione , ID subnet e ID nodo . L’ ID del nodo (o identificatore di interfaccia) deve essere lungo 64 bit e può essere formato dall’indirizzo fisico (MAC) in formato EUI 64.
Per ottenere l’ ID del nodo tramite l’indirizzo fisico in formato EUI 64, attenersi alla seguente procedura:
- Dividi l’indirizzo fisico (MAC) a metà in due gruppi di 24 bit.
- Aggiungi il numero esadecimale FFFE (16 bit) tra questi due gruppi di bit.
- Invertire il valore del settimo bit da sinistra a destra del numero formato dal secondo passaggio.
Gli indirizzi IPv6 sono generalmente scritti come otto gruppi di 4 cifre esadecimali. Per esempio,2001:0db8:85a3:08d3:1319:8a2e:0370:7344
Per facilitare la scrittura, gli zeri iniziali e le sequenze di zeri possono essere abbreviati. Per esempio,2001:0db8:85a3:03fa:0000:0000:0000:7344
è lo stesso indirizzo IPv6 dell’esempio precedente:2001:db8:85a3:3fa::7344
Esistono tipi speciali di indirizzi in IPv6:
- unicast : ogni indirizzo corrisponde a un’interfaccia (dispositivo).
- multicast : ogni indirizzo corrisponde a più interfacce. Una copia viene inviata a ciascuna interfaccia.
- anycast : corrisponde a più interfacce che condividono un prefisso comune. Un datagramma viene inviato a uno dei dispositivi, ad esempio quello più vicino.
A differenza di IPv4, IPv6 non dispone di un indirizzo broadcast, che è responsabile dell’indirizzamento di un pacchetto a tutti i nodi nello stesso dominio.
Con IPv6 tutte le LAN devono avere i prefissi /64. Ciò è necessario per il funzionamento dell’autoconfigurazione e di altre funzionalità.
Gli utenti di qualsiasi tipo riceveranno /48 reti dai loro provider, ovvero avranno a disposizione un numero di IP sufficiente per configurare circa 65mila reti, ciascuna con {\displaystyle 2^{64}}indirizzi (18 quintilioni) . Va notato, tuttavia, che alcuni provider stanno valutando la possibilità di fornire reti per utenti domestici con una dimensione /56, consentendo loro di essere suddivise in sole 256/64 reti.
Identificatori di interfaccia (IID)
Gli indirizzi IPv6 sono suddivisi tra rete e identificazione della macchina. Secondo lo standard CIDR, i primi 64 bit sono per la rete e gli ultimi 64 bit per la macchina. Questi ultimi sono gli identificatori di interfaccia (IID). In questo modo sono riservate{\displaystyle 2^{64}}(18.445.744.073.709.551.616) macchine per rete, il che è più che sufficiente per la domanda attuale e futura.
Gli identificatori di interfaccia (IID), utilizzati per distinguere le interfacce all’interno di un collegamento, devono essere univoci all’interno dello stesso prefisso di sottorete. Lo stesso IID può essere utilizzato su più interfacce su un singolo nodo, tuttavia, devono essere associati a sottoreti diverse.
L’IID è normalmente formato dall’indirizzo fisico della macchina (MAC), quindi non è necessario utilizzare DHCPv6, che diventa opzionale se l’amministratore vuole avere un maggiore controllo sulla rete.
L’IID basato su un indirizzo MAC a 48 bit viene creato come segue:
- Innanzitutto aggiungi le cifre esadecimali FF-FE tra il terzo e il quarto byte dell’indirizzo MAC (trasformandolo in un indirizzo a 64 bit).
- Quindi, devi completare il settimo bit, da sinistra a destra, dell’indirizzo MAC (chiamato U/L – Universal/Local bit), ovvero, se è 1, verrà commutato a 0, e se è 0, passerà a 1.
- Se l’interfaccia si basa su un indirizzo MAC a 64 bit, il primo passaggio non è necessario.
Strutture di indirizzi di transizione
Gli indirizzi IPv6 possono essere mappati su IPv4 e sono progettati per router che supportano entrambi i protocolli, consentendo a IPv4 di “tunnel” attraverso un backbone IPv6. Questi indirizzi sono costruiti automaticamente da router che supportano entrambi i protocolli. La coesistenza è possibile attraverso il tunneling in entrambi i segmenti: IPv6 incapsulato in IPv4 e IPv4 incapsulato in IPv6, sebbene il primo sia molto più comune e dipenda dai servizi gratuiti di “Broker”. Il ruolo del “Broker” è proprio quello di essere il gateway verso il mondo IPv6 attraverso la connessione IPv4. Esistono alcuni tipi comuni di tunneling come TunTap e 6to4.:
Per questo, i 128 bit di IPv6 sono suddivisi come segue:
- Campo a 80 bit impostato su ‘0’ (zero), 0000:0000:0000:0000:0000 …
- Campo a 16 bit impostato su ‘1’ (uno), … FFFF …
- Indirizzo IPv4 a 32 bit
Indirizzi IPv6 mappati su IPv4:::FFFF:<endereço IPv4>
Altre strutture di indirizzi IPv6
Esistono altre strutture di indirizzi IPv6:
- Indirizzi ISP : formato progettato per consentire ai singoli utenti di un ISP di connettersi a Internet.
- Indirizzi del sito – per l’uso su una rete locale.
Adozione IPv6 in tutto il mondo
Anche con la previsione e il pieno esaurimento degli indirizzi IPv4 in diverse parti del mondo, l’adozione di IPv6 avviene in modo discrepante nei paesi del mondo. Google è solo una delle aziende che raccoglie continuamente statistiche sull’adozione di IPv6 su Internet, fornendo un grafico della percentuale di utenti che accedono a Google tramite IPv6 e una mappa dell’adozione del protocollo da parte dei genitori.
Il Paese con il maggior numero di utenti Google che hanno adottato IPv6 è il Belgio, con il 52% di loro che ha accesso al protocollo. Akamai, un’altra azienda che fornisce statistiche relative all’adozione di IPv6, indica l’India come il paese con il maggior numero di implementazioni, con il 62,4% di adozione. In entrambi i siti, le percentuali di adozione più basse si registrano in diversi paesi delle regioni del Medio Oriente, del Nord e dell’Africa occidentale, molti contando allo 0%.
Sebbene l’implementazione di IPv6 sia una tendenza dovuta all’esaurimento di IPv4, non è obbligo degli ISP nella maggior parte dei paesi supportare questo protocollo Internet. La Bielorussia è stato il primo paese a prendere una posizione legislativa, determinando che dal 1 gennaio 2020 tutti i fornitori sarebbero tenuti a supportare il protocollo IPv6 e fornire indirizzi IPv6 a tutti i loro clienti. Secondo l’analisi di Google, la percentuale di utenti bielorussi che si affidano a IPv6 per accedere al sito è solo del 4,67%.
Attualmente, la maggior parte dei server Web e dei data center si basa su IPv4 insieme a IPv6. Tuttavia, la tendenza è che, con il continuo aumento dell’adozione del protocollo più recente, si sceglie di utilizzare solo questo, consentendo una riduzione dei costi operativi, una riduzione della complessità e l’eliminazione dei vettori di minaccia legati al lavoro con due protocolli . L’Office of Budget Management (OMB) degli Stati Uniti pianifica un piano di implementazione IPv6 per l’anno 2021, con l’obiettivo che, entro la fine del 2025, l’80% delle reti federali abilitate per IP utilizzerà solo il protocollo IPv6.