IPv6 – 3 Indirizzamento

La struttura dell’indirizzo IPv6 è l’elemento che maggiormente balza agli occhi nell’approccio al protocollo. Vediamone le caratteristiche.

Si tratta senza dubbio di un grosso cambiamento rispetto all’indirizzamento a 32 bit dell’IPv4 cui siamo tutti più o meno abituati. Il salto da 32 a 128 bit di indirizzo apre ad una dimensione di spazio indirizzabile di difficile rappresentazione. Dice Wikipedia “in pratica, ogni abitante della terra ne ha a disposizione 48.000.000.000.000.000.000.000.000.000“.

L’esaurimento di questi indirizzi è dunque difficilmente immaginabile, non solo ma la grande quantità di indirizzi cambia la nostra maniera di progettare ed intendere le reti. Scompare la necessità di Nat per economizzare indirizzi IP, ed è naturale associare diversi indirizzi IP alla stessa interfaccia.

Ciò detto, entriamo un pochino più nel dettagli.

Come si scrive un indirizzo IPv6

128 bit di indirizzo possono essere scritti come 8 campi da 16 bit ciascuno. Un campo da 16 bit può essere comodamente rappresentato da una stringa di 4 cifre esadecimali, dato che ad ogni cifra esadecimale corrispondono 4 bit.

Avremo dunque 8 campi con valori da 0000x a ffffx. In sostanza:

16 bit: 16 bit: 16 bit: 16 bit: 16 bit: 16bit: 16 bit: 16 bit:

Questi 8 gruppi di 16 bit corrispondono quindi a 8 gruppi di 4 cifre esadecimali.

Vediamo qualche esempio:

FE80:0000:0000:0000:0000:1231:0AB1:0007

0000:0000:0000:0000:0000:0000:0000:0001

2001:0411:0010:1211:01EF:0012:50EE:1288

0000:0000:0000:0000:0000:0000:0000:0000

Naturalmente scrivere sempre l’indirizzo IPv6 completo non è proprio praticissimo; esistono dunque delle strategie ampiamente accettate e condivise che consentono di rendere un po’ più maneggevoli, nei limiti del possibile, questi numeri piuttosto scomodi.

Il primo elemento di semplificazione è: in un gruppo di 4 cifre è possibile rimuovere tutti i leading 0 (quelli a sinistra). Ad esempio:

2001:0411:0010:1211:01EF:0012:50EE:1288 può diventare

2001:411:10:1211:1EF:12:50EE:1288

Il guadagno non è grande, ma è qualcosa.

Nel caso in cui le cifre in un quartetto siano tutte a 0, l’intero quartetto si può sostituire con un solo 0; inoltre nel caso in cui esistano diversi quartetti consecutivi tutti pari a 0, questi possono essere sostituiti dalla notazione ::

Questa sostituzione può essere effettuata una sola volta all’interno del singolo indirizzo, che altrimenti non può più essere ricostruito in maniera univoca.

In sostanza l’indirizzo

fe80:0000:0123:0000:0000:1231:0ab1:0007 può essere scritto

fe80:0:123::1231:ab1:7

2001:0cdd;0000:0000:003f:0000:0000:ed22 può essere scritto

2001:0cdd::3f:0:0:fd22

Purtroppo la maniera di scrivere un indirzzo IPv6 non è univoca: l’indirizzo di cui sopra potrebbe essere anche scritto, in maniera del tutto legittima

2001:0cdd:0:0:3f::fd22

RFC5952 stabilisce delle line guida che rendano univoca la rappresentazione compatta degli indirizzi IP, raccomandando le regole che seguono:

  • Eliminare i leading zero
  • Rappresentare un campo da 0000 sempre con 0 e mai con ::
  • Abbreviare il più possibile
  • Abbreviare sempre il blocco più grande di zeri
  • Se due blocchi di zeri sono di pari lunghezza abbreviare quello più a sinistra
  • Usare lettere minuscole per a,b,c,d,e,f

A questa, che è la notazione standard di IPv6, aggiungiamo un tipo di notazione che si usa in alcuni meccanismi di transizione (tunnelling IPv4). In questo caso la notazione è mista:

X:X:X:X:X:X:d:d:d:d

6 campi IPv6 (6 * 16 bit = 96 bit) seguiti da 32 bit IPv4 -> per un totale di 128 bit

0000:0000:0000:0000:0000:0000:206.123.31.2

Maschere di rete.

Data l’estensione dell’indirizzo, usare una notazione con una maschera di rete di pari dimensioni (stile 255.255.255.0, per essere chiari) è improponibile. Si usa quindi la classica notazione CIDR, pre cui scriveremo ad esempio

2001:410:0::/64 per indicare che 64 bit sono dedicati ad individuare la rete, e 64 al lato host (tipica maschera per una subnet).

Normalmente 48 bit di indirizzo di rete vengono forniti dal provider, e 16 bit ulteriori servono a definire le diverse subnet locali. Anche in questo modo rimangono 64 bit per l’indirizzamento locale, lo spazio host è enorme.

Tipi di Indirizzi IP

I diversi tipi di indirizzi IPv6 sono stati descritti nella RFC 1884, e successivamente rivisti in diverse RFC, le quali si sostituiscono l’un l’altra fino ad arrivare alla RFC4291, che è stata successivamente aggiornata (non obsoleta) dalle RFC:
RFC 5952, RFC 6052, RFC 7136, RFC 7346, RFC 7371.

In sostanza possiamo avere questi tipi di indirizzi IPv6:

  • Link local
  • Site Local
  • Unique Local
  • Aggregatable Local
  • Loopback
  • Unspecified
  • IPv4 compatible

Gli indirizzi link local sono del tipo FE80::/10. Possono essere usati solo in ambito locale, non vengono instradati dai router; sono generati automaticamente all’atto dell’avvio degli apparati, per consentire la configurazione del nodo, ed anche, se disponibile, la assegnazione di indirizzi IPv6 pubblici. Volendo fare un paragone (un po’ tirato) con IPv4 potremmo considerarli analoghi aglii APIPA (169.254.0.0).

Gli indirizzi site local sono tutti del tipo FEC0::/10 (RFC3513). Pensati per essere locali al sito (come gli indirizzi privati IPv4) sono ora deprecati da rfc 4291, e le nuove implementazioni di IPv6 li tratteranno come Global Unicast.

Unique Local: sono indirizzi che possono essere inoltrati all’interno delle subnet di un singolo sito ma non vengono instradati su Internet (RFC4193)

In questo caso viene utilizzato il blocco fc00::/7, che è stato diviso in due sottoblocchi: fc00::/8 e fd00::/8. Quest’ultimo viene effettivamente utilizzato per la generazione degli indirizzi Unique Local. Come questi vengano generati sarà oggetto del prossimo post.

admin
Author: admin

bio

Utilizzando il sito, accetti l'utilizzo dei cookie da parte nostra. Usiamo i cookies per ragioni tecniche. Teniamo in alta considerazione la tua privacy.

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi