Se si utilizza Internet o quasi qualsiasi rete di computer è probabile che, ad oggi, si sta utilizzando il protocollo IPv4. La pubblicazione ufficiale di IPv4 risale al 1981 a cura dell’Internet Engineering Task Force (IETF), quando ancora Internet era in uno stato embrionale. La sua progettazione tuttavia non prese in considerazione l’espansione mondiale del web e questo portò a una serie di problemi:
- La scarsità di indirizzi IPv4: Gli indirizzi IPv4 utilizzano uno spazio di indirizzamento a 32 bit classificato in classi A, B, e C. Con 32 bit è possibile creare circa 4 miliardi di indirizzi IPv4, ma bisogna tener presente che non vengono usati tutti, perché alcuni sono riservati a un particolare utilizzo (ad esempio gli indirizzi 0.0.0.0, 127.0.0.1, 255.255.255.255, 192.0.34.166 e la classe 192.168.0.1/16). Nonostante il numero sembri esorbitante, gli indirizzi ip stanno per esaurirsi.
- Problemi relativi alla sicurezza: nel 1981, le minacce alla sicurezza delle rete attuali non erano minimamente prevedibili. Per ovviare a questo problema, sono stati definiti protocolli IP completi per la sicurezza della rete (Internet Protocol Security o IPSec) e per la protezione dei dati tuttavia non sono protocolli built-in e molti di loro sono proprietari e commerciali.
- Problemi relativi alla configurazione dell’indirizzo: i nuovi dispositivi utilizzano indirizzi IP (statici o dinamici), per cui si dovrebbe rendere la configurazione quanto più semplice possibile.
- QoS: Quality of Service (QoS) è disponibile in IPv4 e si basa sugli 8 bit del campo Type of Service (TOS) e sull’identificazione del payload (i dati utili trasmessi). Tuttavia il campo ha funzionalità limitate e l’identificazione del payload non è possibile quando il pacchetto è crittografato. A causa di ciò anche la qualità del servizio è influenzato.
Perché IPv6 e non IPv5?
Nel 1980, il protocollo IPv5 è stato utilizzato come protocollo sperimentale.Tuttavia non è mai stato distribuito ed è stato definito come protocollo di streaming. Così l’immediato successore di IPv4 è IPv6.
Differenze tra IPV4 e IPV6
La seguente tabella elenca le principali differenze tra IPv4 e IPv6.
IPv4 | IPv6 |
---|---|
Gli indirizzi IPv4 hanno lunghezza pari a 32 bit | Gli indirizzi IPv6 hanno lunghezza pari a 128 bit |
Gli indirizzi IPv4 sono numeri binari rappresentati in decimali | Gli indirizzi IPv6 sono numeri binari rappresentati in esadecimale |
Supporto IPSec solo opzionale | Supporto IPSec built-in |
La frammentazione è fatta dal mittente e inoltrata router | La frammentazione è fatta solo dal mittente |
Nessuna identificazione del flusso di pacchetti | Identificazione del flusso di pacchetti è disponibile all’interno del intestazione IPv6 utilizzando il campo Flow Label |
E’ presente un campo Checksum | Nessun campo Checksum presente |
Campi Opzioni sono disponibili in IPv4 | Non ci sono campi di opzione, ma sono disponibili IPv6 Extension |
Address Resolution Protocol (ARP) è disponibile per mappare indirizzi IPv4 a indirizzi MAC | Address Resolution Protocol (ARP) viene sostituito con una funzione di Neighbor Discovery Protocol (NDP) |
Internet Group Management Protocol (IGMP) viene utilizzato per gestire l’appartenenza ai gruppi multicast | IGMP viene sostituito con dei messaggi Multicast Listener Discovery (MLD) |
I messaggi broadcast sono disponibili | I messaggi broadcast non sono disponibili. Viene invece usato un Link-local scope per il multicast (FF02 :: 1) |
Configurazione manuale (statico) di indirizzi IPv4 o DHCP (dinamica) necessaria per configurare gli indirizzi IPv4 | Configurazione automatica degli indirizzi |
IPv6 Datagram Header VS IPv4
- Version: La dimensione del campo è di 4 bit. Indica la versione di IP ed è impostato sul valore 6 (non per niente si chiama IPv6…).
- Traffic Class: La dimensione del campo è di 8 bit. E’ simile al campo IPv4 Type of Service (TOS). Indica la classe di priorità del pacchetto IPv6. Permette di gestire le code by priority assegnando ad ogni pacchetto una classe di priorità rispetto ad altri pacchetti provenienti dalla stessa sorgente. Viene usata nel controllo della congestione.
- Flow Label: La dimensione del campo è di 20 bit. Fornisce supporto aggiuntivo per la consegna del datagram in tempo reale e la QoS. Usata dal mittente per etichettare una sequenza di pacchetti come se fossero nello stesso flusso. Consente di specificare quali etichette abbiano via libera rispetto ad altre. Al momento, questo campo è ancora in fase sperimentale.
- Lunghezza payload: La dimensione del campo è di 16 bit. Indica la lunghezza del payload IPv6 ovvero il numero di byte di tutto ciò che viene dopo l’header, comprese le estensioni dell’intestazione e i dati del protocollo di livello superiore. Tutto ciò che viene dopo l’header viene considerato payload, e quindi conteggiato nella lunghezza del carico. Se il suo valore è 65.535 byte, si tratta di un pacchetto di dimensione massima, anche detto Jumbogram.
- Next Header: Indica quale tipo di intestazione segue l’header di base IPv6. Molto simile al campo protocol dell’header IPv4, del quale usa gli stessi valori (es. TCP , UDP o ICMPv6).
- Hop Limit: La dimensione del campo è di 8 bit. È il limite di salti consentito, praticamente il vecchio Time to live (TTL). Il suo valore viene decrementato di 1 ogni volta che il pacchetto passa da un router: quando arriva a zero, viene scartato. Utilizzato dai protocolli di routing distance vector, come il Routing Information Protocol (RIP) per prevenire loop routing.
- Indirizzo mittente: La dimensione del campo è di 128 bit. Indica l’indirizzo IP del mittente del pacchetto.
- Indirizzo di destinazione: La dimensione del campo è di 128 bit. Indica l’indirizzo IP del destinatario del pacchetto.
La transizione all’IPv6
Nel luglio 2007 è stato presentato un Internet Draft che presenta il piano di transizione per trasformare la rete Internet, basata su protocollo IPv4, in una nuova basata su IPv6. Dal momento che è praticamente certo che molti vecchi calcolatori rimarranno online senza venire aggiornati, e macchine IPv6 ed IPv4 conviveranno sulla rete per decenni, il meccanismo adottato per gestire questo periodo transitorio è il cosiddetto dual stack: ogni sistema operativo che supporta IPv6 comunicherà con le macchine IPv4 grazie a un secondo stack di protocolli IPv4 che opera in parallelo a quello IPv6. Quando il computer si connetterà ad un’altra macchina in Internet, il DNS assieme all’indirizzo di rete comunicherà anche l’informazione riguardo quale stack usare (v4 o v6) e quali protocolli sono supportati dall’altra macchina.
Vantaggi:
- Transizione morbida: possibilità di liquidare gli investimenti già fatti in hardware/software senza dover sostenere nuove spese prima del necessario;
- Piena compatibilità fra vecchie e nuove macchine e applicazioni;
Svantaggi:
- Necessità di supportare in maniera estesa l’IPv4 nella Internet e negli apparati connessi.
- Essere raggiungibili dall’universo IPv4 durante la fase di transizione costringe a mantenere un indirizzo IPv4 o una qualche forma di NAT nei gateway router. Si aggiunge quindi un livello di complessità che rende la teorica disponibilità di indirizzi non immediata.
- Problemi architetturali: in particolare non sarà possibile supportare pienamente il multihoming IPv6.