Sistemi e Reti Anno 4 Modulo 2 Lezione 05 - IPv6 Header, Formato Indirizzi e Tipologie
Sistemi e Reti · Anno 4 · Modulo 2 · Lezione 05
✍ Autore: profgiagnotti · Materia: Sistemi e Reti

IPv6: Header, Formato Indirizzi e Tipologie

Dall'esaurimento di IPv4 al nuovo paradigma a 128 bit: header semplificato, regole di compressione, unicast, multicast, anycast e autoconfigurazione SLAAC con rete Dual Stack.

// obiettivi di apprendimento
✓Capire perché IPv4 è in esaurimento e quali problemi risolve IPv6 rispetto a NAT.
✓Descrivere il formato dell'header IPv6 a 40 byte fissi, campi e vantaggi rispetto a IPv4.
✓Leggere e scrivere indirizzi IPv6 applicando correttamente le regole di compressione :: e zeri iniziali.
✓Distinguere le tipologie di indirizzi IPv6: Global Unicast, Link-Local, Unique Local, Multicast, Anycast.
✓Analizzare SLAAC/EUI-64 e le strategie di transizione e coesistenza Dual Stack, Tunneling, NAT64.

1. Perché IPv6? Il problema dell'esaurimento degli indirizzi

IPv4 usa indirizzi a 32 bit: circa 4,3 miliardi di combinazioni possibili. Nel 1981, quando RFC 791 definiva IPv4, pareva uno spazio sterminato. Non lo era.

Il 5 febbraio 2011 IANA (Internet Assigned Numbers Authority) ha assegnato gli ultimi blocchi /8 ai cinque RIR regionali. Gli indirizzi IPv4 erano ufficialmente esauriti. I RIR hanno continuato a distribuire gli spazi rimanenti fino al 2012–2019, secondo la regione.

💬 Tip del docente

NAT (Network Address Translation) ha "allungato la vita" di IPv4 mascherando intere reti private dietro un singolo IP pubblico. Funziona, ma rompe il modello end-to-end di Internet, complica VoIP, gaming, VPN e le applicazioni che richiedono connessioni inbound. NAT è un cerotto, non una soluzione strutturale.

IPv6, definito da RFC 8200 (2017), usa indirizzi a 128 bit: 3,4 × 10³⁸ indirizzi. Per dare un'idea: si potrebbero assegnare 100 indirizzi IPv6 a ogni atomo della superficie terrestre.

01 · IPv4

32 bit – 4,3 miliardi

Esaurito IANA 2011. NAT necessario per sopravvivere.

02 · IPv6

128 bit – 340 undecilioni

End-to-end ripristinato, no NAT necessario, autoconfigurazione nativa.

03 · Vantaggio

Header semplificato

Elaborazione più rapida nei router, QoS con Flow Label, IPsec nativo.

2. L'header IPv6 – 40 byte fissi ed extension header

📌 Definizione da ricordare

L'header base IPv6 è sempre lungo 40 byte: 8 campi fissi, niente opzioni variabili. Le opzioni sono spostate in extension header concatenati solo se necessari.

Una delle scelte di design più significative di IPv6 è l'header di dimensione fissa: 40 byte. L'header IPv4 era variabile (20–60 byte) per via delle opzioni. IPv6 sposta le opzioni negli extension header, inseriti tra l'header base e il payload solo quando necessari.

// HEADER IPv6 — 40 BYTE FISSI Version4b = 0110 Traffic Class8b QoS/DSCP Flow Label20b – Novità IPv6 Payload Length 16bMax 65535 / Jumbo Next Header 8b58=ICMPv6 6=TCP Hop Limit 8bTTL IPv4 Source Address128 bit – 16 byteIndirizzo mittente IPv6 Destination Address128 bit – 16 byteIndirizzo destinatario IPv6 RIMOSSO vs IPv4 ✗ Checksum → demandato a L2 e L4 ✗ Header Length → fisso 40 byte ✗ Fragment (ID/Flags/Offset) Solo sorgente frammenta, mai router ✗ Options → Extension Header VANTAGGIO Router elaborano più velocemente Niente ricalcolo checksum ad ogni hop Flow Label = QoS senza DPI payload Catena Next Header = estensibile Payload + Extension Headers (opzionali) → TCP/UDP/ICMPv6
HEADER IPv6 · ASCII DIAGRAM – RFC 8200
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| Traffic Class | Flow Label | ← 4 byte +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload Length | Next Header | Hop Limit | ← 4 byte +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Source Address (128 bit) | ← 16 byte | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | | Destination Address (128 bit) | ← 16 byte | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
CampoBitDescrizione
Version4Sempre 0110 (6) per IPv6
Traffic Class8Equivalente di DSCP+ECN in IPv4. Priorità del traffico (QoS)
Flow Label20Identifica un flusso tra sorgente e destinazione. Permette QoS senza esaminare il payload. Novità rispetto a IPv4.
Payload Length16Lunghezza in byte del payload (escluso header base). Max 65535 byte; con Jumbo Payload extension header si superano i 4 GB.
Next Header8Tipo del prossimo header: protocollo superiore (58=ICMPv6, 6=TCP, 17=UDP) oppure tipo di extension header.
Hop Limit8Equivalente del TTL di IPv4. Decrementato di 1 a ogni hop. Pacchetto scartato quando raggiunge 0.
Source Address128Indirizzo IPv6 del mittente
Destination Address128Indirizzo IPv6 del destinatario
🎯 Cosa è scomparso rispetto a IPv4

In IPv6 sono stati eliminati: Header Checksum (demandato ai livelli superiori e al data link), Header Length (header fisso, non serve), Identification/Flags/Fragment Offset (la frammentazione avviene solo al sorgente, non ai router intermedi), Options (sostituite dagli extension header). Risultato: i router elaborano i pacchetti molto più velocemente.

Extension Header

Gli extension header vengono inseriti tra header base e payload solo quando servono, formando una catena: ogni header punta al successivo tramite il campo Next Header.

TipoNext Header valueUso
Hop-by-Hop Options0Esaminato da ogni router sul percorso (es. Jumbo Payload)
Routing43Source routing: specifica lista di hop intermedi
Fragment44Frammentazione (solo il mittente può farlo in IPv6)
ESP / AH50/51Sicurezza IPsec integrata nello stack IPv6
Destination Options60Opzioni esaminate solo dalla destinazione finale

3. Formato degli indirizzi IPv6 e regole di compressione

📌 Definizione da ricordare

Un indirizzo IPv6 è 128 bit = 8 gruppi di 4 cifre esadecimali separati da : . Ogni gruppo rappresenta 16 bit (2 byte). Si scrive compresso con due regole standard.

Forma completa esempio:

IPv6 · Forma completa
2001:0DB8:0000:0000:0000:FF00:0042:8329

Regole di compressione

Scrivere sempre 32 cifre esadecimali è scomodo. Si applicano due regole:

REGOLA 1 · ZERI INIZIALI

Ometti gli 0 iniziali di ogni gruppo

0DB8 → DB8
0000 → 0
FF00 → FF00 (invariato)

REGOLA 2 · SEQUENZA DI ZERI

Una sola sequenza :: per gruppi zero contigui

Sostituisce una sola sequenza contigua di gruppi tutti-zero con ::. Usabile una sola volta altrimenti ambiguo.

COMPRESSIONE · Esempio progressivo
2001:0DB8:0000:0000:0000:FF00:0042:8329 (forma completa) ↓ Regola 1: omissione zeri iniziali 2001:DB8:0:0:0:FF00:42:8329 ↓ Regola 2: :: sostituisce i tre gruppi :0:0:0: 2001:DB8::FF00:42:8329 (forma compressa)
⚠️ Errore comune

Non si può usare :: due volte. L'indirizzo 2001::42::1 è ambiguo: non si sa quanti zeri sostituisce ciascun ::. Il tool ping6 e i parser lo rifiutano. Regola d'oro in verifica: :: una sola volta, mai due.

Indirizzi speciali

IndirizzoSignificato
::1Loopback (equivalente di 127.0.0.1 in IPv4)
::Indirizzo non specificato (equivalente di 0.0.0.0)
2001:DB8::/32Range riservato alla documentazione e agli esempi (RFC 3849) – usa sempre questo nei laboratori

4. Tipologie di indirizzi IPv6: Unicast, Multicast, Anycast

IPv6 introduce una distinzione fondamentale rispetto a IPv4: non esiste il broadcast. Al suo posto si usa il multicast (e il meccanismo anycast per alcuni servizi). Questo riduce il traffico non necessario su tutti i nodi della rete.

01 · UNICAST 1 → 1 Destinatario 2000::/3 Global FE80::/10 Link-Local FC00::/7 Unique Local = IP pubblico/privato IPv4 02 · MULTICAST 1 → Molti – FF00::/8 FF02::1 All-nodes FF02::2 All-routers Solicited-node per NDP Sostituisce broadcast IPv4 03 · ANYCAST 1 → Più vicino tra molti Stesso IP su nodi diversi Routing consegna al più vicino DNS root, CDN No range dedicato

Unicast — un mittente, un destinatario

TipoPrefissoDescrizione
Global Unicast2000::/3Indirizzi instradabili su Internet (equivalente IP pubblico IPv4). Attualmente assegnati nel range 2000::→3FFF:FFFF:…
Link-LocalFE80::/10Validi solo sul link locale (stesso segmento). Assegnati automaticamente a ogni interfaccia. Non vengono instradati dai router. Essenziali per NDP e SLAAC.
Unique LocalFC00::/7Equivalente degli indirizzi privati IPv4 (RFC 1918). Usati in reti private, non instradati su Internet. Prefisso tipico: FD00::/8 con 40 bit pseudo-random.
Loopback::1/128Solo interfaccia loopback locale

Multicast — un mittente, molti destinatari

Il multicast IPv6 ha prefisso FF00::/8. Sostituisce completamente il broadcast IPv4.

IndirizzoScopeUso
FF02::1Link-localAll-nodes: tutti i nodi IPv6 sul segmento
FF02::2Link-localAll-routers: tutti i router IPv6 sul segmento
FF02::1:FFxx:xxxxLink-localSolicited-node multicast: usato da NDP per risolvere indirizzi (vedi L06)
FF05::101Site-localNTP servers nel sito

Anycast — un mittente, il più vicino tra molti

Un indirizzo anycast è assegnato a più interfacce su nodi diversi. Il pacchetto viene consegnato all'interfaccia più vicina secondo la metrica di routing. Usato per DNS root server, CDN, servizi distribuiti. Non esiste un range specifico: un indirizzo unicast diventa anycast quando viene assegnato a più interfacce.

5. Autoconfigurazione: SLAAC e EUI-64

📌 Definizione da ricordare

SLAAC = Stateless Address Autoconfiguration (RFC 4862): un host IPv6 si configura da solo senza DHCP, combinando prefisso /64 annunciato dal router + Interface ID derivato dal MAC con EUI-64.

IPv6 include un meccanismo di autoconfigurazione stateless (SLAAC — Stateless Address Autoconfiguration, RFC 4862) che permette a un host di configurarsi autonomamente senza DHCP:

  1. L'host genera un indirizzo link-local (FE80:: + identificatore interfaccia)
  2. Verifica che non sia duplicato con DAD (Duplicate Address Detection)
  3. Invia un Router Solicitation al multicast FF02::2
  4. Il router risponde con Router Advertisement: prefisso di rete (/64) e altre info
  5. L'host combina il prefisso ricevuto con il suo EUI-64 → indirizzo global unicast
🎯 Come si costruisce un indirizzo EUI-64

Dato un MAC address: 00:1A:2B:3C:4D:5E

  1. Dividi a metà: 00:1A:2B | 3C:4D:5E
  2. Inserisci FF:FE nel mezzo: 00:1A:2B:FF:FE:3C:4D:5E
  3. Inverti il bit U/L (bit 7 del primo byte): 00 → 02
  4. Risultato: 021A:2BFF:FE3C:4D5E

Con prefisso 2001:DB8:1::/64 → indirizzo completo: 2001:DB8:1::021A:2BFF:FE3C:4D5E (documentazione) → compresso 2001:DB8:1::21A:2BFF:FE3C:4D5E

CISCO / LINUX · Verifica IPv6 SLAAC
! Cisco – abilitare IPv6 unicast e SLAAC ipv6 unicast-routing interface g0/0 ipv6 address 2001:DB8:1::1/64 ipv6 enable ipv6 nd prefix 2001:DB8:1::/64 no shutdown # Linux – verifica indirizzi ip -6 addr show ip -6 route show ping6 -c 3 FF02::1 # EUI-64 manuale ip link show | grep ether

6. Coesistenza IPv4/IPv6: strategie di transizione

La migrazione a IPv6 non è flag-day: le due versioni devono coesistere a lungo. Le tre strategie standard sono:

MeccanismoCome funzionaUso tipico
Dual StackIl nodo ha sia un indirizzo IPv4 sia un IPv6. Comunica in v4 o v6 in base all'interlocutore.Approccio preferito. Tutti i moderni SO lo supportano. Vedi video lab dual-stack.
Tunneling (6in4)Pacchetti IPv6 incapsulati in datagrammi IPv4 per attraversare reti solo-IPv4.Connettere isole IPv6 attraverso backbone IPv4.
NAT64 + DNS64Traduce indirizzi IPv6 in IPv4 a livello di gateway. Permette a host solo-IPv6 di raggiungere server solo-IPv4.Reti mobili 5G, reti "IPv6-only".
Host Dual Stack 192.168.1.10 /24 2001:DB8:1::10/64 Prefer IPv6 → Happy Eyeballs RFC 8305 IPv4 IPv6 Router Dual Stack + SLAAC RA: 2001:DB8:1::/64 Forwarding disgiunto v4/v6 Server IPv6 2001:DB8:2::80/64 Server IPv4 203.0.113.80/24 Stesso servizio, due stack – DNS A + AAAA
💬 Tip del docente

In laboratorio Packet Tracer apri IPv6-dual-stack.pkt: verifica che ogni PC abbia sia IPv4 sia IPv6. Prova ping e ping6 verso il server, osserva ipconfig e show ipv6 interface brief. Dual Stack è la strategia consigliata per l'esame.

7. Verifica / Esercizio Dual Stack

🔬 Attività di laboratorio

Usa i file .pkt forniti e gli esercizi PDF. Obiettivo: configurare una piccola rete dual-stack e dimostrare la coesistenza.

  1. Comprimi al massimo: 2001:0DB8:0000:013A:0000:0000:0000:0001 e FE80:0000:0000:0000:0000:0000:0000:0001 – indica dove applichi Regola 1 e Regola 2.
  2. Da MAC AC:DE:48:12:34:56 ricava l'Interface ID EUI-64 e costruisci l'indirizzo link-local e global con prefisso 2001:DB8:CAFE::/64.
  3. In Packet Tracer (IPv6-dual-stack.pkt) attiva ipv6 unicast-routing e assegna 2001:DB8:1::1/64 e 2001:DB8:2::1/64 sulle interfacce router. Verifica SLAAC sui PC e ping FF02::1.
  4. Spiega differenza tra Global Unicast, Link-Local, Multicast FF02::1 e Anycast: quando useresti ciascuno?
  5. Dual Stack vs NAT64: in quale scenario sceglieresti l'uno o l'altro? Collega alla tipologia di rete (enterprise, 5G, ISP legacy).
✅ Soluzione ragionata (traccia)

1) 2001:0DB8:0000:013A:0000:0000:0000:0001 → Regola1: 2001:DB8:0:13A:0:0:0:1 → Regola2 longest zero run: 2001:DB8:0:13A::1. FE80:0000:0000:0000:0000:0000:0000:0001 → FE80::1 (run di 6 zeri).
2) MAC AC:DE:48:12:34:56 → dividi AC:DE:48|12:34:56 → AC:DE:48:FF:FE:12:34:56 → inverti U/L bit: AC=10101100 → AE=10101110 → AEDE:48FF:FE12:3456. Link-local: FE80::AEDE:48FF:FE12:3456. Global: 2001:DB8:CAFE::AEDE:48FF:FE12:3456.
3) Vedi configurazione sopra + show ipv6 route, show ipv6 neighbors (sostituisce ARP).
4) Global instradabile Internet, Link-Local solo segmento e indispensabile per NDP/SLAAC, FF02::1 = tutti i nodi (no broadcast), Anycast = servizio più vicino (DNS/CDN).
5) Enterprise/misto → Dual Stack (compatibilità totale). Rete mobile greenfield IPv6-only o 5G → NAT64/DNS64 per raggiungere IPv4 legacy, meno indirizzi IPv4 pubblici necessari.

✓IPv4 esaurito IANA 2011: NAT è un palliativo, IPv6 a 128 bit è la soluzione strutturale end-to-end.
✓Header IPv6 fisso 40 byte: Version, Traffic Class, Flow Label, Payload Length, Next Header, Hop Limit, Source + Destination (128 bit). Nessun checksum, nessuna frammentazione ai router.
✓Indirizzi IPv6 = 8 gruppi esadecimali. Compressione: ometti zeri iniziali + una sola volta :: per run di zeri. Mai :: due volte.
✓Tipologie: Global Unicast 2000::/3 instradabile, Link-Local FE80::/10 solo segmento, Unique Local FC00::/7 privato, Multicast FF00::/8 sostituisce broadcast, Anycast = più vicino.
✓SLAAC + EUI-64 = autoconfigurazione stateless: Router Solicitation FF02::2 → Router Advertisement /64 + Interface ID da MAC con FF:FE e U/L flip.
✓Transizione raccomandata: Dual Stack (SO moderni), tunneling 6in4 per isole IPv6, NAT64+DNS64 per reti IPv6-only (5G).

📚 Prossimo passo - ARP, NDP e Default Gateway

Ora che sai scrivere un indirizzo IPv6 e cosa c'è nel suo header, nel prossimo modulo vedrai come si risolvono gli indirizzi su LAN: ARP in IPv4 e NDP in IPv6 con i multicast solicited-node. Avrai bisogno della tabella dei prefissi e di EUI-64.