3.2. Parte rete, detta anche prefisso

I progettisti hanno definito alcuni tipi di indirizzo e ne hanno lasciati parecchi per future definizioni, attualmente sconosciute. RFC 2373 [Luglio 1998] / IP Version 6 Addressing Architecture definisce l'attuale schema di indirizzamento anche se c'è già una nuova bozza disponibile: draft-ietf-ipngwg-addr-arch-*.txt.

Si dia ora uno sguardo ai differenti tipi di prefisso (e quindi tipi di indirizzo):

3.2.1. Indirizzo link locale

Sono particolari indirizzi, validi soltanto nel link di un interfaccia. Usando questo indirizzo come destinazione, il pacchetto non attraverserà mai un router. È usato per comunicazioni link quali:

Essi iniziano con (dove "x" è qualsiasi carattere esadecimale, normalmente "0")

fe8x:  <- attualmente l'unico utilizzato.
fe9x:
feax:
febx:
   

Un indirizzo con questo prefisso si trova su ogni interfaccia abilitata IPv6 dopo una configurazione automatica stateless (che è il caso classico).

3.2.2. Indirizzo di tipo sito locale

Questi sono indirizzi simili a quelli specificati dalla RFC 1918 / Address Allocation for Private Internets, oggi utilizzati da IPv4, con il vantaggio che chiunque usi questo tipo di indirizzo ha la possibilità di utilizzare 16 bit per gestire fino a 65536 sottoreti. È analogo alla 10.0.0.0/8 di IPv4.

Un altro vantaggio: poiché è possibile assegnare più di un indirizzo ad un'interfaccia IPv6, si può anche assegnare tale indirizzo locale in aggiunta ad uno globale.

Questo tipo di indirizzo inizia con:

fecx:  <- il pi&ugrave; comunemente usato.
fedx:
feex:
fefx:
   

(dove "x" è qualsiasi carattere esadecimale, normalmente "0")

Si noti che ci sono dibattiti sul fatto di dismettere questo tipo di indirizzi poiché esistono diversi problemi. Per maggiori dettagli si veda draft-ietf-ipv6-deprecate-site-local-XY.txt.

A mio modesto parere, questo tipo di indirizzi sono ancora una buona scelta per prove di laboratorio.

3.2.3. Indirizzo di tipo globale "(Aggregatable) global unicast"

Attualmente, c'è un unico indirizzo di tipo globale definito (il primo progetto, chiamato "provider based" fu cestinato alcuni anni fà RFC 1884 / IP Version 6 Addressing Architecture [obsoleto], se ne possono trovare alcune tracce nei più vecchi sorgenti del kernel Linux).

Inizia con (le x sono caratteri esadecimali)

2xxx: 
3xxx:
   

Nota: il prefisso "aggregabile" (aggregatable) è stato depennato dalle bozze attuali. Ci sono alcuni ulteriori sottotipi definiti, come di seguito riportato:

3.2.3.1. Indirizzi 6bone di test

Questi sono i primi indirizzi globali che sono stati definiti ed utilizzati. Iniziano con

3ffe:
    

Esempio:

3ffe:ffff:100:f102::1
    

Un particolare indirizzo 6bone di test che non sarà mai globalmente unico, inizia con

3ffe:ffff: 
    

ed è generalmente mostrato negli esempi, perché se venissero mostrati indirizzi reali, sarebbe possibile per qualcuno fare un copia & incolla sui suoi file di configurazione. In questo modo si potrebbe causare inavvertitamente la duplicazione di un indirizzo globalmente unico. Ciò potrebbe causare seri problemi all'host originale (per esempio potrebbe ricevere pacchetti di risposta per richieste che non sono mai state inviate da esso). Tuttavia è possibile richiedere uno di questi prefissi, si veda Come far parte del 6bone. Anche alcuni tunnel brokers distribuiscono prefissi di indirizzi 6bone di test.

3.2.3.2. Indirizzi 6to4

Questi indirizzi, pensati per uno speciale meccanismo di tunneling [RFC 3056 / Connection of IPv6 Domains via IPv4 Clouds e RFC 2893 / Transition Mechanisms for IPv6 Hosts and Routers], codificano un dato indirizzo IPv4 ed una possibile sottorete. Essi iniziano con

2002:
    

Per esempio, per rappresentare 192.168.1.1/5:

2002:c0a8:0101:5::1
    

Un semplice comando di shell può aiutare a generarli a partire da indirizzi IPv4:

ipv4="1.2.3.4"; sla="5"; printf "2002:%02x%02x:%02x%02x:%04x::1" `echo $ipv4 | tr "." " "` $sla
    

Si veda anche tunneling con il 6to4 e informazioni sui relay router 6to4.

3.2.3.3. Assegnato dal provider per routing gerarchico

Questi indirizzi sono delegati agli Internet service provider (ISP) ed iniziano con

2001:
    

I prefissi ai maggiori ISP (proprietari di backbone, anche detti LIR) sono delegati dai local registries ed attualmente assegnano prefissi di lunghezza 35.

Ogni ISP minore, può ottenere un prefisso di lunghezza 48.

3.2.3.4. Indirizzi riservati per esempi e documentazione

Attualmente, due intervalli di indirizzi sono riservati per esempi e documentazione:

3ffe:ffff::/32
2001:0DB8::/32   EXAMPLENET-WF
    

Questi intervalli di indirizzi dovrebbero essere filtrati in base agli indirizzi di provenienza e possibilmente NON dovrebbero essere instradati sui router di confine verso Internet.

3.2.4. Indirizzi multicast

Gli indirizzi multicast sono usati per servizi ad essi relativi.

Essi iniziano sempre con (xy è il valore dell'ambito di applicabilità - scope)

ffxy:
   

Si suddividono in ambiti di applicabilità (scope) e tipi:

3.2.4.1. Multicast scope

L'ambito di applicabilità multicast (multicast scope) è un parametro che specifica la distanza massima che può percorrere un pacchetto a partire dall'entità che lo invia.

Attualmente, vengono definite le seguenti regioni (ambiti di applicabilità):

  • ffx1: node-local, i pacchetti non lasciano mai il nodo.

  • ffx2: link-local, i pacchetti non sono mai inoltrati dai router, in questo modo non lasciano mai il link specificato.

  • ffx5: site-local, i pacchetti non lasciano mai il sito.

  • ffx8: organization-local, i pacchetti non lasciano mai l'organizzazione (non così facile da implementare, la gestione deve essere effettuata dal protocollo di instradamento).

  • ffxe: global scope.

  • gli altri sono riservati.

3.2.4.2. Tipi multicast

Ci sono numerosi tipi già definiti/riservati (si veda RFC 2373 / IP Version 6 Addressing Architecture per i dettagli). Alcuni esempi sono:

  • Indirizzo di tutti i nodi: ID = 1h, indirizza tutti gli host sul nodo locale (ff01:0:0:0:0:0:0:1) o sul link connesso (ff02:0:0:0:0:0:0:1).

  • Indirizzo di tutti i router: ID = 2h, indirizza tutti i router sul nodo locale (ff01:0:0:0:0:0:0:2), sul link connesso (ff02:0:0:0:0:0:0:2), o sul sito locale (ff05:0:0:0:0:0:0:2).

3.2.4.3. Indirizzo multicast link-local nodo sollecitato

Speciale indirizzo multicast utilizzato come destinazione nella scoperta del vicinato, perché a differenza di IPv4, ARP non esiste più in IPv6.

Un esempio di questo indirizzo somiglia a

ff02::1:ff00:1234
    

Il prefisso utilizzato mostra che questo è un indirizzo multicast link-local. Il suffisso viene generato dall'indirizzo di destinazione. In questo esempio, un pacchetto dovrebbe essere inviato all'indirizzo "fe80::1234" ma lo stack di rete non conosce l'attuale indirizzo di livello 2 (MAC). I 104 bit più significativi vengono rimpiazzati con "ff02:0:0:0:0:1:ff00::/104" ed i 24 bit meno significativi vengono lasciati inalterati. Questo indirizzo viene quindi usato `on-link' per trovare il corrispondente nodo che deve inviare una risposta contenente il suo indirizzo di livello 2 (MAC).

3.2.5. Indirizzi anycast

Gli indirizzi anycast sono indirizzi speciali e vengono utilizzati per trattare cose come il server DNS più vicino, il server DHCP più vicino o simili gruppi dinamici. Questi vengono presi dallo spazio degli indirizzi unicast (aggregatable global o site-local per il momento). Il meccanismo anycast (dal punto di vista del client) sarà gestito dai protocolli di routing dinamici.

Nota: gli indirizzi anycast non possono essere usati come indirizzo del mittente, ma sono validi soltanto come indirizzi di destinazione.

3.2.5.1. Indirizzo anycast subnet-router

Un semplice esempio di un indirizzo anycast è il tipo subnet-router. Assumendo che un nodo abbia il seguente indirizzo globale IPv6:

3ffe:ffff:100:f101:210:a4ff:fee3:9566/64  <- Indirizzo del nodo
    

L'indirizzo anycast subnet-router sarà creato svuotando completamente il suffisso (i 64 bit meno significativi):

3ffe:ffff:100:f101::/64  <- indirizzo anycast subnet-router