Indirizzo IPv6

66
Indirizzo IPv6

Prima di spigare cos’è l’indirizzo IPv6 e come funziona spieghiamo perché è stato creato.
Un indirizzo IP è un codice numerico che viene utilizzato dai computer e da tutti i dispositivi connessi a Internet o a una rete per poter comunicare. La maggior parte di questi dispositivi utilizza attualmente un indirizzo IPv4 chiamato semplicemente indirizzo IP (→ cos’è l’indirizzo IP). Il numero di IPv4 disponibili non è infinito ma è pari a 4294967296 indirizzi utilizzabili.
Agli albori di Internet, quando è stato sviluppato l’Internet Protocol, non si prevedeva che la rete sarebbe diventata il primo mezzo di comunicazione a livello globale. Nessuno avrebbe pensato che un numero così grande di indirizzi IP non sarebbe bastato a coprire la richiesta mondiale.

Questo problema, noto come saturazione degli indirizzi IPv4, ha raggiunto l’apice il 3 febbraio 2011 quando la IANA, l’organismo che si occupa della distribuzione degli indirizzi IP, ha assegnato gli ultimi blocchi di IPv4 disponibili alle 5 organizzazioni mondiali che sovraintendono all’assegnazione nelle rispettive aree geografiche.
Il problema della saturazione degli IPv4 ha portato l’ICANN (Internet Corporation for Assigned Names and Numbers) alla creazione di una nuova versione dell’Internet Protocol denominata IPv6 (Internet Protocol version 6).
Il numero di indirizzi IPv6 unici disponibili e pari a un numero seguito da 38 zeri. Non è infinito ma quasi e sarà sufficiente a coprire la richiesta mondiale.
La transizione dall’IPv4 all’IPv6 sarà graduale ma è già in corso. L’IPv4 potrà essere utilizzato fino al 2025 per consentire l’adeguamento di tutte le infrastrutture.

Caratteristiche dell’IPv6

Il protocollo IPv6 presenta nuove caratteristiche rispetto al suo predecessore.
La caratteristica più rilevante dell’IPv6 è la lunghezza dell’indirizzo di rete che si basa su indirizzi a 128 bit invece dei 32 bit degli IPv4. Inoltre sono state abbandonate le classi di indirizzi IP, consentendo di conseguenza una maggiore flessibilità ed efficienza nell’assegnazione degli indirizzi.
Un’altra importante caratteristica è la capacità di configurazione automatica di alcuni parametri come il default gateway. Un host IPv6 infatti è in grado di configurarsi automaticamente quando connesso a una rete IPv6 utilizzando l’NDP (Neighbor Discovery Protocol), un protocollo impiegato per autoconfigurare gli indirizzi dei nodi sulla rete.
L’IPv6 introduce inoltre la modalità di indirizzamento anycast e supporta in modo nativo il QoS (Quality of service), il modello che da priorità al traffico in rete e ai meccanismi che lo controllano piuttosto che alla qualità del servizio raggiunto.

Com’è composto un indirizzo IPv6

Un indirizzo IPv6 è costituito da 128 bit suddivisi in 8 gruppi di 4 cifre esadecimali di (16 bit ciascuno) divisi da due punti.
Un esempio di indirizzo IPv6 è il seguente: 3ffe:0000:0000:2f3b:02aa:00ff:fe28:0001
I numeri utilizzabili vanno da 0 a 9 mentre le lettere disponibili sono a, b, c, d, e, f, g, h.
Negli indirizzi IPv6 i primi 48 bit identificano la rete, i successivi 16 bit identificano l’host e gli ultimi 64 bit sono ottenuti dal MAC Address.
A differenza dell’IPv4 la formattazione di un indirizzo IPv6 non è fissa ma può essere semplificata seguendo alcune regole di base.

Regola di scrittura 1

La prima regola dice che se un gruppo è composto da una sequenza di quattro zeri possiamo scrivere un solo zero.
In base a questa regola l’indirizzo IPv6:
3ffe:0000:0000:2f3b:02aa:00ff:fe28:0001
può essere scritto anche in questo modo:
3ffe:0:0:2f3b:02aa:00ff:fe28:0001

Regola di scrittura 2

La seconda regola dice che uno o più gruppi consecutivi di zeri possono essere omessi e sostituiti con la notazione ::
La notazione :: è permessa una sola volta. Questo significa che se l’IPv6 è composto da due parti con zeri consecutivi dobbiamo scriverne una per esteso.
In base a questa regola l’indirizzo IPv6:
3ffe:0000:0000:2f3b:02aa:00ff:fe28:0001
può essere scritto anche in questo modo:
3ffe::2f3b:02aa:00ff:fe28:0001

Altri esempi:
ff02:0:0:0:0:0:0:1 può anche essere scritto come ff02::1
0:0:0:0:0:0:0:1 può anche essere scritto come ::1
0:0:0:0:0:0:0:0 può anche essere scritto come ::

Regola di scrittura 3

La terza regola dice che gli zero iniziali di un gruppo possono essere omessi.
In base a questa regola l’indirizzo IPv6:
3ffe:0000:0000:2f3b:02aa:00ff:fe28:0001
può essere scritto anche in questo modo:
3ffe:0000:0000:2f3b:2aa:ff:fe28:1

Seguendo le tre regole contemporaneamente l’indirizzo IPv6:
3ffe:0000:0000:2f3b:02aa:00ff:fe28:0001
può essere scritto così:
3ffe::2f3b:2aa:ff:fe28:1

Tipi di indirizzi IPv6

Il protocollo IPv6 prevede l’esistenza di tre diversi tipi di indirizzi IP. Vediamo quali sono.

Indirizzi IPv6 unicast

È un indirizzo IP che identifica una sola interfaccia di rete e quindi un unico destinatario.
Un pacchetto di dati inviato con un indirizzo IPv6 unicast può essere destinato a un solo computer.

Indirizzi IPv6 multicast

È un indirizzo IP che identifica un insieme di interfacce di rete e quindi un insieme di destinatari.
Un pacchetto di dati inviato con un indirizzo IPv6 multicast può essere destinato simultaneamente a più computer senza la necessità di dover duplicare e indirizzare le informazioni singolarmente.

Indirizzi IPv6 anycast

Un indirizzo IPv6 anycast è un indirizzo che può corrispondere a un insieme di interfacce di rete.
Un pacchetto di dati inviato con un indirizzo IPv6 anycast può essere inviato a uno o più destinatari ma soltanto un host viene scelto per ricevere i dati, solitamente quello più vicino in termini di distanza di routing.

Cos’è l’indirizzo IPv6 di loopback

L’indirizzo IPv6 0.0.0.0.0.0.0.1 oppure ::1 è l’indirizzo di loopback.
Questo indirizzo è l’equivalente dell’IPv4 127.0.0.0 e si chiama così perché viene riservato per il loopback degli host. In pratica è usato per indirizzare il traffico verso il localhost cioè verso se stessi.
È l’indirizzo IP della rete interna del computer e può essere paragonato all’indirizzo di casa. Viene utilizzato dai software per comunicare con il sistema sul quale sono in esecuzione ma anche per effettuare test e verificare la comunicazione tra processi nel computer locale.