Come sono strutturati gli indirizzi IPv6?

Corso e Certificazione: Cisco CCNA.

Come illustrato nel corso di certificazione Cisco CCNA nel capitolo 4-7.3.2.2, A differenza degli indirizzi IPv4 che hanno una parte “Rete estesa” e una parte Host di dimensioni variabili (indicate dalla Subnet Mask o dal prefisso del CIDR /NN), gli indirizzi IPv6 usano una suddivisione fissa, con una gerarchia a più di due livelli. Essa è specificata nella RFC 3587 “IPv6 Global Unicast Address Format”, che sostituisce la RFC 2374.

Più precisamente, da: www.tcpipguide.com

Addressing under IPv6 is outlined in the main IPv6 RFC, RFC 2460 (Internet
Protocol, Version 6 (IPv6) Specification).
However, most of the details of IPv6 addressing are contained in two other
standards:
– RFC 4291 “IP Version 6 Addressing Architecture”
– RFC 3587 “IPv6 Global Unicast Address Format”These replaced the 1998 standards:
– RFC 2373 (IP Version 6 Addressing Architecture) and
– RFC 2374 (An IPv6 Aggregatable Global Unicast Address Format).

Le tre parti fondamentali dell’indirizzo sono:

IPV6

•       I primi 3 bit rappresentano il range di indirizzi “global unicast “allocato da IANA in questo momento.
•     Il Subnet Prefix (la “rete estesa”), che aggiunge al Site Prefix altri 16 bit fissi di sottorete (permettendo     fino a 65 mila sottoreti per ogni rete, ossia per ogni organizzazione o “Site”)
•       l’Interface ID (l’Host), che occupa i rimanenti 64 bit.

Dalla IANA-Internet Assigned Numbers Authority è stato finora allocato 1/8 dello spazio di indirizzamento unicast IPv6, e precisamente quello che inizia per “001” (primo byte=001xxxxx, cioè gli indirizzi IPv6 = 2xxx::/3 e, col tempo, 3xxx::/3).

Il valore raccomandato di subnet ID è di 48 bit IANA alloca gli indirizzi IPv6 in blocchi da /16 (dice il Corso; in realtà, da /12 a /23 secondo l’URL ufficiale: http://www.iana.org/assignments/ipv6-unicast-address-assignments) ai suoi 5 RIR-Regional Internet Registries (ARIN, RIPE, APNIC, LACNIC ed AfriNIC): ad esempio ha assegnato 2800:0000::/12 a LACNIC, 2001:0200::/23 ad APNIC, ecc.
Si noti che, nella “Asia-Pacific region”, APNIC è ulteriormente suddiviso in vari NIR-National Internet Registries. I RIR, a loro volta, assegnano gli indirizzi in blocchi da /32 ai vari ISP-Internet Service Provider, che li assegnano poi agli ISP di secondo e terzo livello (?) e agli utenti finali, tipicamente in blocchi da /48 secondo la RFC 3177 (ma possono assegnare blocchi /64 se, per progetto, la rete ha una sola subnet, o addirittura singoli indirizzi /128 a un solo Host isolato).

Questo è lo schema di allocazione gerarchica degli indirizzi IPv6, che favorisce (è indispensabile, per mantenere compatte le Tabelle di routing!) un’ottima aggregazione delle rotte verso le principali aree geografiche e i vari Provider.

Gli indirizzi IPv6 speciali

Tra gli indirizzi IPv6, ne sono individuati alcuni con funzioni speciali:

  • gli indirizzi riservati, pari ad 1/256 dell’intero spazio di indirizzamento (primo byte = 0); sono usati per scopi di ricerca dell’IETF e per l’“IPv4 address embedding” (vedi poi)
  • gli indirizzi privati o locali, analoghi a quelli IPv4, che possono essere usati solo all’interno di ogni rete (o Site) e non vengono instradati all’esterno. Iniziano con i 9 bit: 1111 1110 1 (da FE8x::/9 a FEFx::/9) e sono anche detti “unregistered” o “nonroutable”. Sono divisi in due categorie:
    – i Link-local Addresses, che vengono sempre bloccati dai Router, e sono quindi locali solo ad un segmento di rete (switched LAN) o ad una subnet. Vengono usati per la “automatic address configuration”, per le funzioni ND-Neighbor Discovery (es. Router discovery) e per l’ARP. Hanno come decimo bit uno “0”, per cui cominciano con FE8x, FE9x, FEAx e FEBx
    – i Site-local Addresses, che possono essere instradati dai Router di una organizzazione solo all’interno della rete privata (Site), quindi tra le sue subnet, ma non verso Internet; iniziano con FECx, FEDx, FEEx ed FEFx, avendo come decimo bit un “1”
  • l’indirizzo di “loopback”, che è solo uno e non un intero blocco come in IPv4 (127.x.y.z); si tratta dell’indirizzo 0:0:0:0:0:0:0:1, o “::1
  • l’indirizzo non specificato (unspecified) o nullo, tipicamente usato come mittente dagli Host che chiedono un IP ad un Server DHCP: è l’indirizzo con 128 zeri, o “::” (che qualcuno suggerisce di scrivere “0::0”: lecito, un po’ più esplicito, con cifre e comunque breve!).

La funzione di “incastonamento” di IPv4 in IPv6 (IPv4 address embedding), sopra citata, può essere fatta in due modi; entrambi usano i primi 80 bit a “0”, e gli ultimi 32 per i bit dell’IPv4. Poi:

  • col metodo “IPv4 compatible” i rimanenti 16 bit (bytes n. 11 e 12) sono posti anch’essi a “0”; questo è adatto per gli Host che implementano sia IPv4, sia IPv6
  • col metodo “IPv4 mapped”, invece, i 16 bit in questione sono posti a “1” (0xFFFF), e permettono di gestire Host “solo IPv4”, non compatibili con IPv6 (non IPv6-capable).

Era stata proposta una notazione ibrida per rappresentare questi indirizzi, con i “:” per la prima parte IPv6 e con i “.” per la parte finale IPv4, ad es.: “::192.168.0.1”. La proposta è stata però già abbandonata.