IPv6

Article on other languages:

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire

Suite di protocolli Internet   Modifica
Livello applicazioni DHCP, HTTP, HTTPS , SMTP, POP3, IMAP, FTP, SFTP, DNS, SSH, IRC, SNMP, SIP, RTSP, Rsync, Telnet, HSRP, BitTorrent, RTP, SysLog, VoIP,...
Livello di trasporto TCP, UDP, SCTP, DCCP ...
Livello di internetworking IPv4, IPv6, ICMP, BGP, MPLS, OSPF,
RIP, IGRP, IGMP,IPsec...
Livello di collegamento Ethernet, WiFi, PPP, Token ring, ARP, ATM, FDDI, LLC, SLIP, WiMAX. HSDPA ...
Livello fisico Doppino, Fibra ottica, Cavo coassiale,
Codifica Manchester, Codifica 4B/5B, Cavi elettrici, ...

IPv6 è la versione dell'Internet Protocol che succede a IPv4. Esso introduce alcuni nuovi servizi e semplifica molto la configurazione e la gestione delle reti IP. La sua caratteristica più appariscente è il più ampio spazio di indirizzamento: IPv6 gestisce fino a circa 3,4 × 1038 indirizzi, mentre IPv4 gestisce soltanto fino a circa 4 miliardi (4 × 109) di indirizzi. Quantificando con un esempio, per ogni metro quadrato di superficie terrestre, ci sono 666.000.000.000.000.000.000.000 indirizzi IPv6 unici (cioè 666 mila miliardi di miliardi), ma solo 0,000007 IPv4 (cioè solo 7 IPv4 ogni milione di metri quadrati).

L'ICANN rese disponibile[1] il protocollo IPv6 sui root server DNS dal 20 luglio 2004, ma solo dal 4 Febbraio 2008 iniziò l'inserimento dei primi indirizzi IPv6 nel sistema di risoluzione dei nomi. Si prevede che il protocollo IPv4 verrà utilizzato fino al 2025 circa, per dare il tempo necessario ad adeguarsi e correggere gli eventuali errori.

Il motivo più pressante dietro l'adozione del protocollo IPv6 è stato l'insufficienza di spazio per l'indirizzamento dei dispositivi in rete, in particolar modo nei paesi altamente popolati dell'Asia come l'India e la Cina. Si veda la voce sull'esaurimento degli indirizzi IPv4 per approfondimenti.

Oltre a rispondere a questa esigenza l'IPv6 incorpora alcuni protocolli che prima erano separati, come l'ARP, ed è in grado di configurare automaticamente alcuni parametri di configurazione della rete, come per esempio il default gateway. Inoltre supporta nativamente la qualità di servizio e introduce l'indirizzamento anycast, che permette ad un computer in rete di raggiungere automaticamente il più vicino server disponibile di un dato tipo (un DNS, per esempio) anche senza conoscerne a priori l'indirizzo.

Per quanto riguarda i grandi gestori di telecomunicazioni, le principali migliorie sono:

  • header di lunghezza fissa (40 byte);
  • pacchetti non frammentabili;
  • eliminazione del campo checksum, già presente negli altri strati dello stack e perciò ridondante.

Queste tre novità alleggeriscono molto il lavoro dei router, migliorando l'instradamento e il throughput (pacchetti instradati al secondo). Insieme all'IPv6 inoltre viene definito anche l'ICMPv6, molto simile all'ICMPv4 ma che ingloba il vecchio protocollo IGMP, assumendosi anche il compito di gestire le connessioni multicast.

IPv6 è la seconda versione dell'Internet Protocol ad essere ampiamente sviluppata, e costituirà la base per la futura espansione di Internet.

Indice

L'indirizzamento in IPv6

Il cambiamento più rilevante nel passaggio dall' IPv4 all' IPv6 è la lunghezza dell'indirizzo di rete. L'indirizzo IPv6, come definito nel RFC 2373 e nel RFC 2374 è lungo 128 bit, cioè 32 cifre esadecimali , che sono normalmente utilizzate nella scrittura dell'indirizzo come descritto più avanti.

Questo cambiamento porta il numero di indirizzi esprimibili dall' IPv6 a 2128 = 1632 ≈ 3.4 x 1038.

Si sente dire spesso che uno spazio di indirizzamento di 128 bit sia ampiamente sovradimensionato. Occorre però considerare che la ragione di un indirizzamento così ampio non è da associare alla volontà di assicurare un numero sufficiente di indirizzi, quanto piuttosto al tentativo di porre rimedio all'attuale frammentazione dello spazio di indirizzamento IPv4. È oggi, infatti, possibile che un singolo operatore di telecomunicazione abbia assegnati numerosi blocchi di indirizzi non contigui.

La seconda grossa differenza fra l'indirizzamento IPv4 e quello IPv6 è che le vecchie classi di indirizzo IPv4 erano basate sul concetto di rete e sottorete, mentre in IPv6 questa suddivisione è lasciata all'utente finale dell'indirizzo (si presume che diverrà prassi normale assegnare non un singolo indirizzo agli utenti IPv6 ma intere sottoclassi). I primi 10 bit dell'indirizzo IPv6 descrivono genericamente il tipo di computer e l'uso che questo fa della connessione (telefono VoIP, PDA, data server, telefonia mobile ecc.)

Questa caratteristica svincola virtualmente il protocollo IPv6 dalla topologia della rete fisica, permettendo per esempio di avere lo stesso indirizzo IPv6 a prescindere dal particolare internet provider che si sta usando (il cosiddetto IP personale), rendendo l'indirizzo IPv6 simile a un numero di telefono. Queste nuove caratteristiche però complicano il routing IPv6, che deve tenere conto di mappe di instradamento più complesse rispetto all'IPv4; proprio le nuove proprietà dell'indirizzamento sono anche i potenziali talloni d'Achille del protocollo.

Notazione per gli indirizzi IPv6

Gli indirizzi IPv6 sono composti di 128 bit ma sono solitamente rappresentati come 8 gruppi di 4 cifre esadecimali (ovvero 8 parole di 16bit ciascuna). Ad esempio:

2001:0db8:85a3:08d3:1319:8a2e:0370:7344

rappresenta un indirizzo IPv6 valido.

Se uno dei gruppi è composto da una sequenza di quattro zeri può essere contratto ad un solo zero:

2001:0db8:85a3:0000:1319:8a2e:0370:7344  

corrisponde a:

2001:0db8:85a3:0:1319:8a2e:0370:7344

Inoltre, una sequenza di zeri contigui (ed una soltanto) può essere contratta con semplice sequenza "::":

2001:0db8:0000:0000:0000:8a2e:0370:7344  

corrisponde a:

2001:0db8:0:0:0:8a2e:0370:7344  

o ancora più sinteticamente a:

2001:0db8::8a2e:0370:7344  

Seguendo le regole poc'anzi menzionate, se più sequenze simili si susseguono, è possibile ometterle tutte:

2001:0DB8:0000:0000:0000:0000:1428:57ab 
2001:0DB8:0000:0000:0000::1428:57ab 
2001:0DB8:0:0:0:0:1428:57ab
2001:0DB8:0::0:1428:57ab
2001:0DB8::1428:57ab  

sono tutte valide ed indicano lo stesso indirizzo. Attenzione, però:

2001::25de::cade 

non è valido poiché non è possibile definire quante sequenze siano presenti nelle due lacune.

Inoltre possono essere omessi anche gli zeri iniziali di ogni gruppo:

2001:0DB8:02de::0e13

corrisponde a:

2001:DB8:2de::e13


Inoltre gli ultimi 32 bit possono essere scritti in decimale (nella notazione dotted decimal):

 ::ffff:192.168.89.9 

è uguale a

 ::ffff:c0a8:5909

ma diverso da:

 ::192.168.89.9 

o da:

 ::c0a8:5909.

rendendo così la sintassi IPv6 retrocompatibile con quella IPv4 con evidenti benefici.

la forma di scrittura  ::ffff:1.2.3.4 è chiamata IPv4-mapped address, ed è sconsigliata. Il formato ::1.2.3.4 è un IPv4-compatible address.

Gli indirizzi IPv4 sono facilmente trasformabili in formato IPv6. Ad esempio, se l'indirizzo decimale IPv4 è 135.75.43.52 (in esadecimale, 0x874B2B34), può essere convertito in: 0000:0000:0000:0000:0000:0000:874B:2B34 o più brevemente ::874B:2B34. Anche in questo caso è possibile l'uso della notazione ibrida (IPv4-compatible address), usando la forma ::135.75.43.52.

Indirizzi speciali

È stato definito un certo numero di indirizzi con significati particolari. La tabella seguente ne elenca alcuni nella forma CIDR notation – Guardate le pagine di riferimento per informazioni ulteriori.

  •  ::/128 – L'indirizzo composto da tutti zeri viene utilizzato per indicare qualsiasi indirizzo e viene utilizzato esclusivamente a livello software.
  •  ::1/128 – l'indirizzo di loopback è un indirizzo associato al dispositivo di rete che ripete come eco tutti i pacchetti che gli sono indirizzati. corrisponde al127.0.0.1 dell' IPv4.
  •  ::/96 – è utilizzato per interconnettere le due tecnologie IPv4/IPv6 nelle reti ibride.
  •  ::ffff:0:0/96 – L'indirizzo IPv4-mapped address è utilizzato nei dispositivi dual-stack hosts.
  • fe80::/10 – Il prefisso link-local specifica che l'indirizzo è valido esclusivamente sullo specifico link fisico.
  • fec0::/10 – Il prefisso site-local specifica che l'indirizzo è valido esclusivamente all'interno dell'organizzazione locale. Il suo uso è stato sconsigliato nel Settembre del 2004 con il RFC 3879 e i sistemi futuri non ne dovrebbero implementare il supporto.
  • ff00::/8 – Il prefisso di multicast è utilizzato per gli indirizzi di multicast.

Il pacchetto IPv6

Il pacchetto IPv6 si compone di due parti principali: l'header e il payload.

L'header è costituito dai primi 40 bytes del pacchetto e contiene 8 campi, 5 in meno rispetto all'IPv4. I campi sono inseriti col byte più significativo messo per primo (notazione big-endian) e all'interno dei singoli byte il bit più significativo è il primo (quello di indice 0).


+ Bits 0–3 4–11 12–15 16–23 24–31
0-31 Version Traffic Class Flow Label
32-63 Payload Lenght Next Header Hop Limit
64
-
191
Source Address
192
-
319
Destination Address


  • Version [4 bit] - Indica la versione del datagramma IP: per IPv6, ha valore 6 (da qui il nome IPv6).
  • Traffic Class [8 bit] - Si traduce come "classe di traffico", permette di gestire le code by priority assegnando ad ogni pacchetto una classe di priorità rispetto ad altri pacchetti provenienti dalla stessa sorgente. Viene usata nel controllo della congestione.
  • Flow Label [20 bit] - Usata dal mittente per etichettare una sequenza di pacchetti come se fossero nello stesso flusso. Supporta la gestione del QoS (Quality of Service), consentendo ad esempio di specificare quali etichette abbiano via libero rispetto ad altre. Al momento, questo campo è ancora in fase sperimentale.
  • Payload Lenght [16 bit] - E' la dimensione del payload, ovvero il numero di byte di tutto ciò che viene dopo l'header. Da notare che eventuali estensioni dell'header (utili ad esempio per l'instradamento o per la frammentazione) sono considerate payload, e quindi conteggiate nella lunghezza del carico. Se il suo valore è 0, significa che ho un pacchetto di dimensione massima, anche detto Jumbogram.
  • Next Header [8 bit] - Indica quale tipo di intestazione segue l'header di base IPv6. Molto simile al campo protocol dell'header IPv4, del quale usa gli stessi valori.
  • Hop Limit [8 bit] - E' il limite di salti consentito, praticamente il Time to live. Il suo valore viene decrementato di 1 ogni volta che il pacchetto passa da un router: quando arriva a zero viene scartato.
  • Source Address [128 bit] - Indica l'indirizzo IP del mittente del pacchetto.
  • Destination Address [128 bit] - Indica l'indirizzo IP del destinatario del pacchetto.


La parte successiva contiene il carico utile (payload in inglese) lungo come minimo 1280 byte o 1500 byte se la rete supporta una dimensione di unità massima di trasmissione variabile. Il carico utile può raggiungere i 65.535 byte in modalità standard o può essere di dimensioni maggiori in modalità "jumbo payload".

Esistono due versioni di IPv6 lievemente diverse tra loro: la versione iniziale (ora obsoleta, descritta nel RFC 1883) differisce da quella attuale (descritta nel RFC 2460) per un campo. Si tratta della classe di traffico la cui dimensione è stata portata da 4 a 8 bit. Tutte le altre differenze sono minime.

IPv6 ed i Domain Name System

Gli indirizzi IPv6 sono rappresentati nel Domain Name System dal Record AAAA ( detto anche record quadruplo-A) per il forward lookup (analogamente al Record A del IPv4); la risoluzione DNS inversa si appoggia sulla zona ip6.arpa (precedentemente ip6.int). Questo schema di funzionamento viene descritto nel RFC 3596.

Lo schema della quadrupla A è uno dei due proposti in fase di design del protocollo IPv6. La proposta alternativa aveva record A6 per il revers lookup ed altre innovazioni quali le bit-string labels e i record DNAME è descritta nel RFC 2874 (sperimentale) e nei documenti collegati.

Sebbene lo schema AAAA sia una semplice generalizzazione dei DNS IPv4, lo schema A6 sarebbe stato un'estensione più generica, ma anche più complessa:

  • i record A6 avrebbero permesso ad un singolo indirizzo IPv6 di essere diviso in diverse sezioni gestite in zone differenti. Questo avrebbe permesso, ad esempio, di ridistribuire in maniera rapida la numerazione di un network.
  • la delega degli indirizzi attraverso l'uso dei record NS sarebbe stata ampiamente sostituita dall'uso dei record DNAME (similmente agli attuali record CNAME, ma costituendo un intero albero di indirizzi). Questo avrebbe permesso la gestione unitaria dei lookup diretti ed inversi.
  • Un nuovo tipo di dato chiamato bit label veniva introdotto nei nomi di domino, principalmente per scopi di lookup inverso.

Lo schema AAAA è stato standardizzato nell'agosto del 2002 nel RFC 3363 (nel RFC 3364 sono valutati tutti i pro ed i contro di entrambi gli schemi proposti).

Principali notizie su IPv6

  • Nel 2003, Nihon Keizai Shimbun (come citato dallo staff di CNET Asia, nel 2003) ha segnalato che il Giappone, la Cina e la Corea del Sud hanno annunciato di essere determinati a diventare le principali nazioni nello sviluppo e utilizzo della tecnologia di Internet, partendo con lo sviluppo di IPv6 e terminando nel 2005 con la sua completa adozione.
  • Il 20 luglio 2004 l'ICANN (come citato da Punto Informatico, nel 2004) ha annunciato l'integrazione della nuova versione del protocollo Internet nei root server che gestiscono il traffico in rete. Entusiasta Vinton Cerf, padre del TCP/IP e presidente dell'ICANN che afferma: «Maggiore stabilità per il grande network». L'ICANN ha inoltre annunciato che i nameservers dei record IPv6 di tipo AAAA per i domini nazionali ccTLD (country code Top Level Domain) del Giappone (.jp) e Corea del Sud (.kr) sono diventati visibili nei file di zona dei root server di DNS con il numero di serie 2004072000. È stato previsto che i record IPv6 per la Francia (.fr) verranno aggiunti presto. Ciò ha reso IPv6 pubblicamente operativo.

La transizione all'IPv6

Luglio 2007 è datato l'Internet Draft che presenta un piano di transizione per trasformare la rete Internet principalmente basata su IPv4 in quella principalmente basata su IPv6. La data di termine proposta da alcuni per la transizione è il 1° gennaio 2011, ma è praticamente certo che molti vecchi calcolatori rimarranno online senza venire aggiornati, e macchine IPv6 ed IPv4 convivranno sulla rete per decenni.

Perciò il meccanismo adottato per gestire questo periodo transitorio è il cosiddetto dual stack: ogni sistema operativo che supporta IPv6 comunicherà con le macchine IPv4 grazie a un secondo stack di protocolli IPv4 che opera in parallelo a quello IPv6. Quando il computer si connetterà ad un'altra macchina in internet, l'informazione di quale stack usare (v4 o v6) gli sarà data dal DNS, che insieme all'indirizzo di rete dirà anche quali protocolli sono supportati dall'altra macchina.

Vantaggi:

  • Transizione morbida: possibilità di liquidare gli investimenti già fatti in hardware/software senza dover sostenere nuove spese prima del necessario;
  • Piena compatibilità fra vecchie e nuove macchine e applicazioni;

Svantaggi:

  • Necessità di supportare in maniera estesa l'IPv4 nella Internet e negli apparati connessi.
  • Essere raggiungibili dall'universo IPv4 durante la fase di transizione costringe a mantenere un indirizzo IPv4 o una qualche forma di NAT nei gateway router. Si aggiunge quindi un livello di complessità che rende la teorica disponibilità di indirizzi non immediata.
  • Problemi architetturali: in particolare non sarà possibile supportare pienamente il multihoming IPv6.

Meccanismi di transizione

Sino a quando la connettività non sarà largamente disponibile e supportata nativamente in IPv6 dall'infrastruttura di rete, è necessario utilizzare un meccanismo di trasporto dei pacchetti IPv6 su rete IPv4 tramite la tecnologia del tunneling. Questo può essere realizzato con:

  • Tunnel IPv6 in IPv4 configurati staticamente per l'interconnessione di sottoreti IPv6 remote.
  • Tunneling Automatico 6to4, per interconnettere le reti IPv6 tra di loro attraverso una rete IPv4 comune, Internet ad esempio. L'interconnessione è automatica grazie all'automatismo del tunneling 6to4: avviene direttamente tra reti con indirizzamento IPv6 via 6to4, oppure tramite un 6to4 relay router per le destinazioni con indirizzo IPv6 nativo.

Questi tunnel funzionano tramite l'incapsulamento dei pacchetti IPv6 in pacchetti IPv4 con il campo next-layer (protocol-type) impostato a 41 da cui il nome di proto-41. Similarmente, l'ISATAP permette la trasmissione di traffico IPv6 su infrastrutture IPv4. Anche questo protocollo usa il proto-41.

Quando la connettività IPv6 è richiesta da una rete nascosta da una un apparato che implementa NAT e che solitamente blocca il traffico del protocollo 41, è possibile usare il protocollo Teredo che incapsula l'IPv6 all'interno di datagrammi UDP su IPv4. È pure possibile usare proxy IPv6-to-IPv4 e IPv6-to-IPv6, sebbene questi siano solitamente specifiche dell' application-layer (come il protocollo HTTP).

Gruppi di lavoro IETF affini

Note

  1. ^ Annuncio ICANN sulla disponibilità dell'IPv6 per i root server

Bibliografia

Voci correlate

Collegamenti esterni

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net