Passa al contenuto principale

2. IPv6 Addressing (Indirizzamento IPv6)

2. IPv6 Addressing (Indirizzamento IPv6)

Gli indirizzi IPv6 sono identificatori a 128 bit per interfacce e insiemi di interfacce (dove «interfaccia» è definita nella sezione 2 di [IPV6]). Esistono tre tipi di indirizzi:

Unicast:
Un identificatore per una singola interfaccia. Un pacchetto inviato a un indirizzo unicast viene consegnato all'interfaccia identificata da quell'indirizzo.

Anycast:
Un identificatore per un insieme di interfacce (tipicamente appartenenti a nodi diversi). Un pacchetto inviato a un indirizzo anycast viene consegnato a una delle interfacce identificate da quell'indirizzo (quella «più vicina», secondo la misura di distanza dei protocolli di routing).

Multicast:
Un identificatore per un insieme di interfacce (tipicamente appartenenti a nodi diversi). Un pacchetto inviato a un indirizzo multicast viene consegnato a tutte le interfacce identificate da quell'indirizzo.

Non ci sono indirizzi broadcast (Broadcast Addresses) in IPv6, la loro funzione è sostituita dagli indirizzi multicast.

In questo documento, i campi negli indirizzi ricevono un nome specifico, ad esempio «subnet». Quando questo nome viene usato con il termine «ID» per identificatore dopo il nome (ad es., «subnet ID»), si riferisce al contenuto del campo nominato. Quando viene usato con il termine «prefix» (prefisso) (ad es., «subnet prefix»), si riferisce a tutta l'indirizzo da sinistra fino a includere questo campo.

In IPv6, tutti zeri e tutti uni sono valori legali per qualsiasi campo, a meno che non sia specificamente escluso. In particolare, i prefissi possono contenere o terminare con campi a valore zero.


2.1. Addressing Model (Modello di indirizzamento)

Gli indirizzi IPv6 di tutti i tipi sono assegnati alle interfacce, non ai nodi. Un indirizzo unicast IPv6 si riferisce a una singola interfaccia. Poiché ogni interfaccia appartiene a un singolo nodo, qualsiasi degli indirizzi unicast delle interfacce di quel nodo può essere utilizzato come identificatore per il nodo.

Tutte le interfacce devono avere almeno un indirizzo unicast link-local (Link-Local Unicast Address) (vedere la sezione 2.8 per gli indirizzi richiesti aggiuntivi). Una singola interfaccia può anche avere più indirizzi IPv6 di qualsiasi tipo (unicast, anycast e multicast) o ambito. Gli indirizzi unicast con un ambito maggiore dell'ambito di collegamento (Link-Scope) non sono necessari per le interfacce che non vengono utilizzate come origine o destinazione di pacchetti IPv6 da o verso non-vicini. Questo è talvolta conveniente per le interfacce punto-punto. C'è un'eccezione a questo modello di indirizzamento:

Un indirizzo unicast o un insieme di indirizzi unicast può essere assegnato a più interfacce fisiche se l'implementazione tratta le interfacce fisiche multiple come un'unica interfaccia quando le presenta al livello Internet. Questo è utile per la condivisione del carico su più interfacce fisiche.

Attualmente, IPv6 continua il modello IPv4 in cui un prefisso di sottorete è associato a un collegamento. Più prefissi di sottorete possono essere assegnati allo stesso collegamento.


2.2. Text Representation of Addresses (Rappresentazione testuale degli indirizzi)

Esistono tre forme convenzionali per rappresentare gli indirizzi IPv6 come stringhe di testo:

Forma 1: Forma preferita

La forma preferita è x:x:x:x:x:x:x:x, dove le 'x' sono da una a quattro cifre esadecimali delle otto parti a 16 bit dell'indirizzo.

Esempi:

ABCD:EF01:2345:6789:ABCD:EF01:2345:6789

2001:DB8:0:0:8:800:200C:417A

Si noti che non è necessario scrivere gli zeri iniziali in un singolo campo, ma deve esserci almeno una cifra in ogni campo (tranne per il caso descritto in 2.).

Forma 2: Compressione degli zeri

A causa di alcuni metodi di allocazione di determinati stili di indirizzi IPv6, sarà comune che gli indirizzi contengano lunghe stringhe di bit zero. Per rendere più facile scrivere indirizzi contenenti bit zero, è disponibile una sintassi speciale per comprimere gli zeri. L'uso di :: indica uno o più gruppi di 16 bit di zeri. Il :: può apparire solo una volta in un indirizzo. Il :: può anche essere usato per comprimere zeri iniziali o finali in un indirizzo.

Esempi:

I seguenti indirizzi:

2001:DB8:0:0:8:800:200C:417A   indirizzo unicast
FF01:0:0:0:0:0:0:101 indirizzo multicast
0:0:0:0:0:0:0:1 indirizzo di loopback
0:0:0:0:0:0:0:0 indirizzo non specificato

possono essere rappresentati come:

2001:DB8::8:800:200C:417A      indirizzo unicast
FF01::101 indirizzo multicast
::1 indirizzo di loopback
:: indirizzo non specificato

Forma 3: Rappresentazione mista IPv4-IPv6

Quando si tratta un ambiente misto di nodi IPv4 e IPv6, è talvolta più conveniente la forma alternativa x:x:x:x:x:x:d.d.d.d, dove le 'x' sono i valori esadecimali delle sei parti a 16 bit di ordine superiore dell'indirizzo, e le 'd' sono i valori decimali delle quattro parti a 8 bit di ordine inferiore dell'indirizzo (rappresentazione IPv4 standard).

Esempi:

0:0:0:0:0:0:13.1.68.3

0:0:0:0:0:FFFF:129.144.52.38

o in forma compressa:

::13.1.68.3

::FFFF:129.144.52.38

2.3. Text Representation of Address Prefixes (Rappresentazione testuale dei prefissi di indirizzo)

La rappresentazione testuale dei prefissi di indirizzo IPv6 è simile al modo in cui i prefissi di indirizzo IPv4 sono scritti nel routing inter-dominio senza classi (CIDR, Classless Inter-Domain Routing) [CIDR]. Un prefisso di indirizzo IPv6 è rappresentato dalla notazione:

ipv6-address/prefix-length

dove:

  • ipv6-address: è un indirizzo IPv6 in una qualsiasi delle notazioni elencate nella sezione 2.2.
  • prefix-length: è un valore decimale che specifica quanti dei bit contigui più a sinistra dell'indirizzo costituiscono il prefisso.

Esempi:

Le seguenti sono rappresentazioni legali del prefisso a 60 bit 20010DB80000CD3 (esadecimale):

2001:0DB8:0000:CD30:0000:0000:0000:0000/60
2001:0DB8::CD30:0:0:0:0/60
2001:0DB8:0:CD30::/60

Le seguenti non sono rappresentazioni legali del prefisso sopra:

2001:0DB8:0:CD3/60    può eliminare gli zeri iniziali, ma non gli zeri
finali, all'interno di qualsiasi blocco a 16 bit dell'indirizzo

2001:0DB8::CD30/60 l'indirizzo a sinistra di "/" si espande a
2001:0DB8:0000:0000:0000:0000:0000:CD30

2001:0DB8::CD3/60 l'indirizzo a sinistra di "/" si espande a
2001:0DB8:0000:0000:0000:0000:0000:0CD3

Quando si scrivono sia un indirizzo di nodo che un prefisso di quell'indirizzo di nodo (ad es., il prefisso di sottorete del nodo), i due possono essere combinati come segue:

indirizzo del nodo:      2001:0DB8:0:CD30:123:4567:89AB:CDEF
il suo numero di sottorete: 2001:0DB8:0:CD30::/60

può essere abbreviato come: 2001:0DB8:0:CD30:123:4567:89AB:CDEF/60

2.4. Address Type Identification (Identificazione del tipo di indirizzo)

Il tipo di un indirizzo IPv6 è identificato dai bit di ordine superiore dell'indirizzo, come segue:

Tipo di indirizzoPrefisso binarioNotazione IPv6Sezione
Unspecified00...0 (128 bit)::/1282.5.2
Loopback00...1 (128 bit)::1/1282.5.3
Multicast11111111FF00::/82.7
Link-Local unicast1111111010FE80::/102.5.6
Global Unicast(tutto il resto)-2.5.4

Gli indirizzi anycast sono presi dallo spazio degli indirizzi unicast (di qualsiasi ambito) e non sono sintatticamente distinguibili dagli indirizzi unicast.

Il formato generale degli indirizzi Global Unicast è descritto nella sezione 2.5.4. Alcuni sottotipi per scopi speciali di indirizzi Global Unicast che contengono indirizzi IPv4 incorporati (per scopi di interoperabilità IPv4-IPv6) sono descritti nella sezione 2.5.5.

Le specifiche future possono ridefinire uno o più sotto-intervalli dello spazio Global Unicast per altri scopi, ma a meno che e fino a quando ciò accada, le implementazioni devono trattare tutti gli indirizzi che non iniziano con nessuno dei prefissi elencati sopra come indirizzi Global Unicast.


2.5. Unicast Addresses (Indirizzi unicast)

Gli indirizzi unicast IPv6 possono essere aggregati con prefissi di lunghezza di bit arbitraria, in modo simile agli indirizzi IPv4 sotto routing inter-dominio senza classi.

Ci sono diversi tipi di indirizzi unicast in IPv6, in particolare Global Unicast, site-local unicast (deprecato, vedere sezione 2.5.7) e Link-Local unicast. Ci sono anche alcuni sottotipi per scopi speciali di indirizzi Global Unicast, come gli indirizzi IPv6 con indirizzi IPv4 incorporati. Altri tipi di indirizzi unicast possono essere definiti in futuro.

I nodi IPv6 possono avere una conoscenza considerevole o scarsa della struttura interna dell'indirizzo IPv6, a seconda del ruolo che il nodo svolge (ad esempio, host rispetto a router). Come minimo, un nodo può considerare che gli indirizzi unicast (inclusi i propri) non abbiano struttura interna:

|                           128 bit                              |
+-----------------------------------------------------------------+
| indirizzo del nodo |
+-----------------------------------------------------------------+

Un host leggermente più sofisticato (ma comunque piuttosto semplice) può inoltre essere consapevole dei prefissi di sottorete per i collegamenti a cui è collegato, dove indirizzi diversi possono avere valori diversi per n:

|          n bit               |           128-n bit            |
+-------------------------------+---------------------------------+
| prefisso di sottorete | ID di interfaccia |
+-------------------------------+---------------------------------+

Sebbene un router molto semplice possa non avere conoscenza della struttura interna degli indirizzi unicast IPv6, i router avranno più generalmente conoscenza di uno o più dei confini gerarchici per il funzionamento dei protocolli di routing. I confini noti differiranno da router a router, a seconda delle posizioni che il router occupa nella gerarchia di routing.

Ad eccezione della conoscenza del confine di sottorete discussa nei paragrafi precedenti, i nodi non dovrebbero fare alcuna ipotesi sulla struttura di un indirizzo IPv6.


2.5.1. Interface Identifiers (Identificatori di interfaccia)

Gli identificatori di interfaccia negli indirizzi unicast IPv6 sono utilizzati per identificare le interfacce su un collegamento. Devono essere unici all'interno di un prefisso di sottorete. Si raccomanda che lo stesso identificatore di interfaccia non sia assegnato a nodi diversi su un collegamento. Possono anche essere unici su un ambito più ampio. In alcuni casi, l'identificatore di un'interfaccia sarà derivato direttamente dall'indirizzo del livello di collegamento di quell'interfaccia. Lo stesso identificatore di interfaccia può essere utilizzato su più interfacce di un singolo nodo, purché siano collegate a sottoreti diverse.

Si noti che l'unicità degli identificatori di interfaccia è indipendente dall'unicità degli indirizzi IPv6. Ad esempio, un indirizzo Global Unicast può essere creato con un identificatore di interfaccia di ambito locale e un indirizzo Link-Local può essere creato con un identificatore di interfaccia di ambito universale.

Per tutti gli indirizzi unicast tranne quelli che iniziano con il valore binario 000, gli ID di interfaccia devono essere lunghi 64 bit e devono essere costruiti nel formato EUI-64 modificato (Modified EUI-64 Format).

Gli identificatori di interfaccia basati sul formato EUI-64 modificato possono avere ambito universale quando derivati da un token universale (ad es., identificatori IEEE 802 MAC a 48 bit o IEEE EUI-64 [EUI64]) o possono avere ambito locale dove un token globale non è disponibile (ad es., collegamenti seriali, punti terminali di tunnel) o dove i token globali sono indesiderabili (ad es., token temporanei per la privacy [PRIV]).

Gli identificatori di interfaccia in formato EUI-64 modificato sono formati invertendo il bit «u» (bit universal/local nella terminologia IEEE EUI-64) quando si forma l'identificatore di interfaccia dagli identificatori IEEE EUI-64. Nel formato EUI-64 modificato risultante, il bit «u» è impostato a uno (1) per indicare ambito universale, ed è impostato a zero (0) per indicare ambito locale. I primi tre ottetti in binario di un identificatore IEEE EUI-64 sono i seguenti:

       0       0 0       1 1       2
|0 7 8 5 6 3|
+----+----+----+----+----+----+
|cccc|ccug|cccc|cccc|cccc|cccc|
+----+----+----+----+----+----+

scritto nell'ordine di bit standard di Internet, dove «u» è il bit universal/local, «g» è il bit individual/group e «c» sono i bit del company_id. L'appendice A, «Creating Modified EUI-64 Format Interface Identifiers», fornisce esempi sulla creazione di identificatori di interfaccia basati sul formato EUI-64 modificato.

La motivazione per invertire il bit «u» quando si forma un identificatore di interfaccia è rendere facile per gli amministratori di sistema configurare manualmente identificatori non globali quando i token hardware non sono disponibili. Ci si aspetta che questo sia il caso per i collegamenti seriali e i punti terminali di tunnel, ad esempio. L'alternativa sarebbe stata che questi fossero della forma 0200:0:0:1, 0200:0:0:2, ecc., invece della forma molto più semplice 0:0:0:1, 0:0:0:2, ecc.

I nodi IPv6 non sono tenuti a convalidare che gli identificatori di interfaccia creati con token EUI-64 modificati con il bit «u» impostato su universale siano unici.

L'uso del bit universal/local nell'identificatore in formato EUI-64 modificato è consentire lo sviluppo di tecnologie future che possano sfruttare gli identificatori di interfaccia con ambito universale.

I dettagli sulla formazione degli identificatori di interfaccia sono definiti nella specifica appropriata «IPv6 over <link>», come «IPv6 over Ethernet» [ETHER] e «IPv6 over FDDI» [FDDI].


2.5.2. The Unspecified Address (L'indirizzo non specificato)

L'indirizzo 0:0:0:0:0:0:0:0 è chiamato indirizzo non specificato. Non deve mai essere assegnato a nessun nodo. Indica l'assenza di un indirizzo. Un esempio del suo utilizzo è nel campo Indirizzo sorgente di qualsiasi pacchetto IPv6 inviato da un host in inizializzazione prima che abbia appreso il proprio indirizzo.

L'indirizzo non specificato non deve essere utilizzato come indirizzo di destinazione dei pacchetti IPv6 o nelle intestazioni di routing IPv6. Un pacchetto IPv6 con un indirizzo sorgente non specificato non deve mai essere inoltrato da un router IPv6.


2.5.3. The Loopback Address (L'indirizzo di loopback)

L'indirizzo unicast 0:0:0:0:0:0:0:1 è chiamato indirizzo di loopback. Può essere utilizzato da un nodo per inviare un pacchetto IPv6 a se stesso. Non deve essere assegnato a nessuna interfaccia fisica. È trattato come avente ambito Link-Local e può essere considerato come l'indirizzo unicast Link-Local di un'interfaccia virtuale (tipicamente chiamata «interfaccia di loopback») verso un collegamento immaginario che non va da nessuna parte.

L'indirizzo di loopback non deve essere utilizzato come indirizzo sorgente nei pacchetti IPv6 che sono inviati all'esterno di un singolo nodo. Un pacchetto IPv6 con un indirizzo di destinazione di loopback non deve mai essere inviato all'esterno di un singolo nodo e non deve mai essere inoltrato da un router IPv6. Un pacchetto ricevuto su un'interfaccia con un indirizzo di destinazione di loopback deve essere scartato.


2.5.4. Global Unicast Addresses (Indirizzi unicast globali)

Il formato generale per gli indirizzi unicast globali IPv6 è il seguente:

|         n bit         |   m bit  |       128-n-m bit         |
+------------------------+-----------+----------------------------+
| prefisso di routing | ID di | ID di interfaccia |
| globale | sottorete | |
+------------------------+-----------+----------------------------+

dove il prefisso di routing globale è un valore (tipicamente strutturato gerarchicamente) assegnato a un sito (un cluster di sottoreti/collegamenti), l'ID di sottorete è un identificatore di un collegamento all'interno del sito e l'ID di interfaccia è come definito nella sezione 2.5.1.

Tutti gli indirizzi Global Unicast diversi da quelli che iniziano con il valore binario 000 hanno un campo ID di interfaccia di 64 bit (cioè, n + m = 64), formattato come descritto nella sezione 2.5.1.

La struttura e l'allocazione del prefisso di routing globale sono al di fuori dell'ambito di questo documento.


2.5.5. IPv6 Addresses with Embedded IPv4 Addresses (Indirizzi IPv6 con indirizzi IPv4 incorporati)

I meccanismi di transizione IPv6 includono alcune tecniche che portano un indirizzo IPv4 nei 32 bit di ordine inferiore dell'indirizzo. Ci sono due tipi di questi indirizzi: l'indirizzo IPv6 compatibile con IPv4 e l'indirizzo IPv6 mappato IPv4.

2.5.5.1. IPv4-Compatible IPv6 Address (Indirizzo IPv6 compatibile con IPv4)

Nota: Il tipo di indirizzo IPv6 compatibile con IPv4 è deprecato.

Il formato dell'indirizzo IPv6 compatibile con IPv4 è il seguente:

|        80 bit         | 16 bit |     32 bit      |
+--------------------+------+---------------+
| 0000......0000 | 0000 | indirizzo IPv4 |
+--------------------+------+---------------+

Notazione: ::d.d.d.d (dove d.d.d.d è la rappresentazione decimale dell'indirizzo IPv4)

2.5.5.2. IPv4-Mapped IPv6 Address (Indirizzo IPv6 mappato IPv4)

Il formato dell'indirizzo IPv6 mappato IPv4 è il seguente:

|        80 bit         | 16 bit |     32 bit      |
+--------------------+------+---------------+
| 0000......0000 | FFFF | indirizzo IPv4 |
+--------------------+------+---------------+

Notazione: ::FFFF:d.d.d.d (dove d.d.d.d è la rappresentazione decimale dell'indirizzo IPv4)

Questi indirizzi sono utilizzati per rappresentare gli indirizzi di nodi solo IPv4 come indirizzi IPv6. Sono utilizzati solo all'interno di nodi IPv6, per rappresentare l'indirizzo di nodi IPv4. Gli indirizzi IPv6 mappati IPv4 non vengono mai utilizzati come indirizzo sorgente o destinazione di pacchetti IPv6.


Gli indirizzi link-local sono utilizzati per la configurazione automatica degli indirizzi su un singolo collegamento, la scoperta dei vicini o in assenza di router.

Il formato degli indirizzi link-local è il seguente:

|   10 bit   |    54 bit    |        64 bit         |
+----------+------------+---------------------+
|1111111010| 0 | ID di interfaccia |
+----------+------------+---------------------+

Prefisso: FE80::/10

Gli indirizzi link-local sono progettati per essere utilizzati per l'indirizzamento su un singolo collegamento per scopi come la configurazione automatica degli indirizzi, la scoperta dei vicini o in assenza di router. I router non devono inoltrare pacchetti con indirizzi sorgente o destinazione link-local ad altri collegamenti.


2.5.7. Site-Local IPv6 Unicast Addresses (Indirizzi unicast IPv6 site-local)

Nota: Gli indirizzi site-local sono deprecati e non dovrebbero essere utilizzati in nuove implementazioni o distribuzioni. Vedere [RFC3879].

Il formato degli indirizzi site-local è il seguente:

|   10 bit   |    54 bit    |        64 bit         |
+----------+------------+---------------------+
|1111111011| ID sottorete | ID di interfaccia |
+----------+------------+---------------------+

Prefisso: FEC0::/10

Gli indirizzi site-local sono stati progettati per essere utilizzati per l'indirizzamento all'interno di un sito senza la necessità di un prefisso globale. Tuttavia, a causa della definizione poco chiara del confine del sito e di altri problemi, gli indirizzi site-local sono deprecati e sono stati sostituiti dagli indirizzi locali unici (Unique Local Addresses, ULA) [RFC4193].