IPv6 nasce con lo scopo di superare i diversi limiti insiti al protocollo IPv4. L’utilizzo di indirizzi di tipo IPv4 introduce alcune problematiche che, anche se oramai assuefatti dall’uso quotidiano, hanno notevoli ripercussioni in termini di prestazioni e sicurezza.
L’Esaurimento degli indirizzi IPv4 è forse il problema più grosso che il mondo del networking sta ormai da tempo affrontando. Nonostante i circa 4,3 miliardi di indirizzi IPv4 disponibili, solo 3,7 miliardi sono quelli usabili numero decisamente insufficiente per gestire il sempre crescente fabbisogno di connettività. L’introduzione della NAT, tecnologia comunemente utilizzata nel mondo IPv4 a causa della carenza di indirizzi e necessaria per condividere lo stesso IP pubblico tra diversi host, spesso introduce problematiche in applicazioni che richiedono una connettività end-to-end.
Nel 1990 IETF per superare le limitazioni derivanti dall’utilizzo del protocollo IPv4 definisce una nuova versione del protocollo IP, la versione 6 o new generation.
L’apparente complessità della rappresentazione dell’indirizzamento IPv6 viene velocemente superata dalle moltiplici semplificazioni ed ottimizzazioni introdotte e che apportano notevoli migliorie a livello funzionale. Vediamo, di seguito, alcune delle principali novità introdotte:
- Aumento del numero di indirizzi l’indirizzo IP passa da 32 bit a 128 bit quindi si passa da circa 4,7 miliardi di indirizzi a 3,4 x 1038 indirizzi, un numero enorme, basti pensare che se con l’IPv4 possiamo avere 0,000007 indirizzi per ogni m2 di superficie terrestre, con l’IPv6 ne abbiamo 655.571 miliardi di miliardi.
- Miglioramento Gestione Pacchetti l’header è stato notevolmente semplificato riducendo il numero di campi. E’ stato Inoltre introdotto un supporto per applicazioni Real-Time.
- NAT non necessario Grazie alla grande quantità di indirizzi IP disponibili non è più necessaria l’implementazione della NAT.
- Sicurezza IPv6 supporta nativamente autenticazione e privacy.
- Header A differenza dell’header IPv4 che è composto da 20 byte (che diventavano 60 byte in caso di utilizzo degli option fields) e 12 campi fondamentali, l’Header IPv6 è composto da 40 byte (in gran parte dovuti all’aumento delle dimensioni dell’indirizzo sorgente e destinatario) ed 8 campi dei quali 3 derivanti dal vecchio Header IPv4.
In giallo sono riportati i campi ereditati da IPv4 ma rinominati.
Version (4 bit) indica la versione del protocollo che per IPv6 è 0110.
Traffic Class (8 bit) Equivalente al DS (Differentiated Service) dell’IPv4 è composto da DSCP (6 bit) + ECN (2 bit).
Flow Label (20 bit) Indica il flusso di pacchetti. Creato per applicazioni critiche (Real time) può essere usato per indicare ai routers di mantenere i medesimi percorsi per i pacchetti con uguale valore di campo in modo da evitare il riordino dei pacchetti a destinazione.
Payload Length (16 bit) Come per IPv4 rappresenta la lunghezza dell’intero pacchetto.
Next Header (8 bit) Identifica generalmente il tipo di protocollo di livello transport che è utilizzato dal payload. Il campo è utilizzato in alternativa per indicare il tipo di extension header che segue. Per esempio il valore 59 indica nessun next header, il valore 58 indica next header di tipo ICMPv6, il valore 50 indica Encapsulation Security Payload (ESP), ecc.
Hop Limit (8 bit) Equivalente al campo TTL dell’IPv4. Il valore di questo campo viene decrementato ogni volta che il pacchetto attraversa un hop. Quando arriva al valore zero il pacchetto viene scartato.
Source Address (128 bit) Indirizzo Sorgente
Destination Address (128 bit) Indirizzo Destinazione