17.3.1 Gli indirizzi

Innanzi tutto un indirizzo IPv6 viene memorizzato su 128 bit, il che permette di avere un totale di 2128 indirizzi possibili (circa 3,4 × 1038).

Generalemente un indirizzo IPv6 viene scritto con la seguente notazione

 
nnnn:nnnn:nnnn:nnnn:nnnn:nnnn:nnnn:nnnn[/prefix-length]  
dove ogni nnnn è un numero di 4 cifre esadecimali che rappresentano 16 bit e prefix-length è un numero decimale che indica il numero di bit che compongono la parte rete dell’indirizzo indicato (analogamente a quanto avviene per IPv4).

Sebbene venga usata la rappresentazione esadecimale, gli indirizzi IPv6 sono sempre abbastanza lunghi, pertanto è uso comune omettere le cifre iniziali di ogni gruppo di 4 cifre esadecimali uguali a zero ed inoltre possono essere omessi i gruppi contigui di cifre esadecimali nulli, ma ciò può essere fatto soltanto una volta per ogni indirizzo poiché altrimenti si potrebbe generare ambiguità. Ad esempio l’indirizzo IPv6

 
1080:0000:0000:0000:00b7:08ae:0000:20c6:e3f2  
può essere scritto anche come

 
1080:0:0:0:b7:8ae:0:20c6:e3f2  
oppure in forma più stringata

 
1080::b7:8ae:0:20c6:e3f2  
Si noti che nell’esempio proposto, il gruppo di cifre nullo compreso tra 8ae e 20c6 non può essere omesso, poiché è già stato omesso l’insieme formato dai tre gruppi contigui compresi tra 1080 e b7 (tra i due insiemi di cifre nulle eliminabili conviene eliminare quello maggiore, per rendere l’indirizzo più piccolo).

È possibile utilizzare una speciale sintassi per specificare gli ultimi 32 bit dell’indirizzo IPv6 (gli ultimi due gruppi di cifre esadecimali), nel caso in cui essi rappresentino un indirizzo IPv4. Per tali bit si può usare la decimal dotted notation vista nella sez. 17.2.1. Ad esempio

 
nnnn:nnnn:nnnn:nnnn:nnnn:nnnn:192.74.124.143  
Gli indirizzi IPv6 si suddividono in tre tipologie principali:

Il tipo di indirizzo viene indicato dai primi bit dell’indirizzo stesso, secondo lo schema riportato nella tab. 17.13 (gli indirizzi di tipo anycast non sono contenuti in tale tabella perché sono assegnati a indirizzi al di fuori da quelli di tipo unicast). Questa suddivisione definisce per il momento soltanto il 15% dello spazio degli indirizzi IPv6.
Prefisso-(bin)--Prefisso-(Hex)--Tipo----------------------Frazione-|
00000000-------0000-00FF------Riservato-------------------1/256----|
00000001       0100-01FF      Non assegnato               1/256    |
0000001       0200-03FF      Unicast-Riservato per NSAP   1/128    |
0000010       0400-05FF      Unicast-Riservato per IPX    1/128    |
000000000111       00680000--007FFFFF      NNoonn asasssegegnnaattoo               1/1/13228    |
0001          1000-1FFF      Non assegnato               1/16     |
001           2000-3FFF      Unicast-Aggregatable global   1/8      |
010011           46000000--57FFFFFF      UNnoincasasts-egAnsastegonato dai provider 1/1/88      |
100           8000-9FFF      Non assegnato               1/8      |
101           A000-BFFF      Non assegnato               1/8      |
110           C000-DFFF      Non assegnato               1/8      |
111111010         EF000000--EFF7FFFF      NNoonn asasssegegnnaattoo               1/1/1362     |
111110        F800-FBFF      Non assegnato               1/64     |
1111110       FC00-FDFF      Non assegnato               1/128    |
111111100      FE00-FE7F      Non assegnato               1/512    |
11111111111110101101     FFEE8C00--FFEEBFFF      UUnniicacasstt--LSiitnke-- llooccaall           1/1/11002244   |
11111111-------FF00-FFFF------Multicast-------------------1/256----|

Tabella 17.13: I tipi di indirizzi IPv6.

17.3.1.1 Indirizzi aggregatable global

Gli indirizzi unicast aggregatable global sono utilizzati per le comunicazioni su Internet e vengono utilizzati come gli indirizzi IPv4 con il CIDR. Essi hanno il seguente formato


pict
Figura 17.9: Il formato degli indirizzi IPv6 unicast aggregatable global.

dove

I campi TLA ID e NLA ID sono appannaggio degli organismi che gestiscono l’assegnamento degli indirizzi a livello mondiale, mentre i campo SLA ID e INTERFACE ID sono appannaggio dei provider che forniscono il servizio ai clienti (subscriber) e dei clienti stessi.
17.3.1.2 Indirizzi per uso locale

Gli indirizzi unicast per uso locale (site-local o link-local) sono instradabili soltanto localmente, cioè all’interno della stessa subnet o comunque all’interno del subscriber (i router non devono instradare pacchetti ricevuti con un indirizzo mittente o di destinazione di questo tipo) e possono essere univoci a livello locale o globale. Gli indirizzi unicast di tipo link-local sono stati concepiti per essere utilizzati per scopi di configurazione automatica della scheda o per la scoperta del vicinato. Il formato degli indirizzi di tipo link local e site local è riportato rispettivamente nelle fig. 17.10 e 17.11.


pict
Figura 17.10: Il formato degli indirizzi IPv6 unicast link-local.


pict
Figura 17.11: Il formato degli indirizzi IPv6 unicast site-local.

Per tali tipi di indirizzi, l’identificatore dell’interfaccia (interface ID) deve essere univoco nel dominio nel quale viene utilizzato (nella maggior parte dei casi viene utilizzato il MAC address dell’interfaccia di rete). Il subnet ID identifica univocamente una rete all’interno di un sito.

Queste tipologie di indirizzi permettono il collegamento di rete tra più interfacce che non si affacciano su Internet, ma rimangono all’interno di una rete privata (analogamente alle classi private degli indirizzi IPv4).

17.3.1.3 Indirizzi particolari

IPv4-compatible IPv6 Esistono particolari indirizzi IPv6 detti “compatibili IPv4”. Il formato di tali indirizzi è riportato nella fig. 17.12.


pict
Figura 17.12: Il formato degli indirizzi IPv6 compatibili con IPv4.

Questo tipo di indirizzi viene utilizzato da interfacce che si allacciano a router che a loro volta si affacciano ad un’infrastruttura di rete che utilizza IPv4. Esiste un meccanismo che riconosce tale tipologia di indirizzi e permette di effettuare sui router un tunneling automatico dei pacchetti IPv6 in pacchetti IPv4.

Per quanto illustrato precedentemente, tali indirizzi sono rappresentabili con la forma

 
::ddd.ddd.ddd.ddd  
dove ddd.ddd.ddd.ddd è l’indirizzo IP considerato espresso in decimal dotted notation.

[da completare ...]

IPv4-mapped IPv6 Sono definiti anche altri particolari indirizzi IPv6 detti “indirizzi IPv4 mappati su IPv6”. Il loro formato è riportato nella fig. 17.13.


pict
Figura 17.13: Il formato degli indirizzi IPv4 mappati su IPv6.

Questo tipo di indirizzi viene utilizzato per indicare con un indirizzo IPv6, interfacce di rete che non supportano IPv6, ma solo IPv4.

Per quanto illustrato precedentemente, tali indirizzi sono rappresentabili con la forma

 
::FFFF:ddd.ddd.ddd.ddd  
dove ddd.ddd.ddd.ddd è l’indirizzo IP considerato espresso in decimal dotted notation.

Unspecified address L’indirizzo 0:0:0:0:0:0:0:0 è detto unspecified address e non può essere assegnato a nessuna interfaccia. Esso indica un’interfaccia inesistente ed è utilizzato come indirizzo mittente nei pacchetti IPv6 inviati da un’interfaccia che si sta configurando, quando ancora non ha impostato il proprio indirizzo.

Per quanto illustrato precedentemente, tale indirizzo è rappresentabile con la forma

 
::  

Indirizzo di loopback L’indirizzo 0:0:0:0:0:0:0:1 costituisce l’indirizzo di loopback e non può essere assegnato a nessuna interfaccia: il sistema lo assegna all’interfaccia virtuale di loopback (ovvero all’interfaccia stessa). Analogamente a quanto avviene per IPv4, un pacchetto inviato a tale indirizzo non esce dal sistema, ma percorre lo stack TCP/IP fino al livello network e quindi risale fino a ritornare al livello application.

Per quanto illustrato precedentemente, tale indirizzo è rappresentabile con la forma

 
::1  

17.3.1.4 Indirizzi anycast

Gli indirizzi IPv6 anycast sono identici a quelli unicast. Un indirizzo è anycast quando viene assegnato a più di un’interfaccia (chiaramente l’interfaccia a cui tale indirizzo viene assegnato, deve essere opportunamente configurata per metterla a conoscenza del fatto che le è stato assegnato un indirizzo anycast). Gli indirizzi anycast possono essere utilizzati per gestire più sistemi in mirror, garantendo al fruitore del servizio di connettersi a quello a lui più “vicino”.

Per gli indirizzi anycast valgono comunque le seguenti restrizioni:

17.3.1.5 Indirizzi multicast

Gli indirizzi IPv6 multicast identificano un gruppo di interfacce ed hanno il formato riportato nella fig. 17.14.


pict
Figura 17.14: Il formato degli indirizzi IPv6 multicast.

dove

Ad esempio, se un datagram viene inviato all’indirizzo FF01:0:0:0:0:0:0:101 (101H è il gruppo assegnato (permanente) ai server NTP), significa che viene considerato l’insieme delle interfacce dei server NTP che compongono il gruppo all’interno del node a cui appartiene l’interfaccia mittente. Se invece viene inviato all’indirizzo FF02:0:0:0:0:0:0:101, viene considerato l’insieme delle interfacce dei server NTP che compongono il gruppo all’interno del link a cui appartiene l’interfaccia mittente. Nel caso in cui il datagram venga inviato all’indirizzo FF0E:0:0:0:0:0:0:101, viene considerato l’insieme delle interfacce dei server NTP su Internet.

Se un datagram IPv6 viene inviato all’indirizzo FF11:0:0:0:0:0:0:101, significa che viene considerato l’insieme delle interfacce che compongono il gruppo all’interno del node a cui appartiene l’interfaccia mittente, ma il gruppo 101H non identifica necessariamente i server NTP, poiché in tal caso si tratta di un gruppo non permanente e può essere gestito direttamente dall’amministratore della rete locale.

Un indirizzo di questo tipo non può essere l’indirizzo mittente di un datagram IPv6.