IPv6
Da Wikipedia, l'enciclopedia libera.
Livello applicazioni | HTTP, HTTPS , SMTP, POP3, IMAP, FTP, DNS SSH, IRC, SNMP, SIP, RTSP, Rsync, Telnet, HSRP, BitTorrent, ... |
Livello di trasporto | TCP, UDP, SCTP, RTP, DCCP ... |
Livello di rete | IPv4, IPv6, ARP, DHCP, ICMP, BGP, OSPF, RIP, IGRP, IGMP, IPsec... |
Livello di collegamento | Ethernet, WiFi, PPP, Token ring, ATM, FDDI, LLC ... |
Livello fisico | Doppino, Fibra ottica, Cavo coassiale, Codifica Manchester, Codifica 4B/5B, WiFi ... |
IPv6 rappresenta la versione 6 dell'Internet Protocol. IPv6 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 (280.000.000.000.000.000 di indirizzi unici per ogni metro quadrato della superficie terrestre), mentre IPv4 gestisce soltanto fino a circa 4 miliardi (4 × 109) di indirizzi.
Il 20 luglio 2004 l'ICANN ha annunciato[1] che i root server DNS erano stati modificati per supportare sia il protocollo IPv6 che IPv4. Si pensa che il protocollo IPv4 verrà utilizzato fino al 2025 circa, per dare il tempo necessario a correggere gli eventuali errori.
Il motivo più pressante dietro lo sviluppo 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 l'articolo 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 scoprire 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.
IPv6 è la seconda versione dell'Internet Protocol ad essere ampiamente sviluppata, e sta formando le basi per la futura espansione di Internet.
Indice |
[modifica] L'indirizzamento dell' IPv6
Il cambiamento più rilevante nel passaggio dall' IPv4 all' IPv6 è la lunghezza dell'indirizzo di rete. Gli indirizzi IPv6, come definito nel RFC 2373 e nel RFC 2374 è lungo 128bit corrispondenti a 32 cifre esadecimali che sono normalmente utilizzate nella scrittura dell'indirizzo come descritto nella sezione seguente.
Questo cambiamento porta il numero di indirizzi esprimibili dall' IPv6 a 2128 ≈ 3.4 x 1038. Si può anche dire che lo spazio di indirizzamento è di 1632 poiché ognuno delle 32 cifre esadecimali ha 16 valori possibili (vedi calcolo combinatorio).
Nella gran parte delle occasioni l'indirizzo IPv6 è composto di due segmenti di 64 bit l'uno. Il primo rappresenta l'indirizzo di network, mentre i 64 bit finali, solitamente associati al MAC address della scheda di rete, identificano il singolo host della rete.
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.
[modifica] Notazione per gli indirizzi IPv6
Gli indirizzi IPv6 sono composti di 128 bit ma sono solitamente rappresentati come 8 gruppi di 4 cifre esadecimali. 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ù sintenticamente 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. Ma:
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 le ultime 32 cifre possono essere scritte in decimale:
::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.
[modifica] 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 pacchietti 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 l' RFC 3879 e i sistemi futuri non ne dovrebbero implementare il supporto.
- ff00::/8 – Il prefisso di multicast è utilizzato per gli indirizzi di multicast.
[modifica] 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 gli indirizzi sia del mittente che del destinatario (128bit ognuno), la versione (4 bit), la classe di traffico (8 bit che descrivono la priorità), l'etichetta di flusso (20 bit, per la gestione del QoS), la dimensione del payload (16 bit), il cosiddetto next header (per retrocompatibilità con l'IPv4), e l' hop limit (8 bits, Time to live).
La parte successiva contiene il carico utile (payload in inglese) lungo come minino 1280 byte o 1500 byte se la rete supporta una dimensione di MTU 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 portat da 4 a 8 bit. Tutte le altre differenze sono minime.
[modifica] IPv6 ed i Domain Name System
Gli indirizzi IPv6 sono rappresentati nel Domain Name System da AAAA records ( detto anche record quadruplo-A) per il forward lookup (analogamente al A record del IPv4); i lookup inversi si svolgono nella 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 DNAME record è 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 CNAME, ma costituendo un intero albero di indirizzi). Questo avrebbe permesso la gestione unitaria dei lookup diretti ed inversi.
- Un nuovo tipo di dato chieamato 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).
[modifica] 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.
[modifica] La transizione all'IPv6
Il 20 luglio 2004 l'ICANN ha annunciato [2] che i DNS sono stati aggiornati per supportare sia l'IPv6 che l'IPv4.
Svantaggi:
- Necessità di supportare in maniera estesa l'IPv6 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 disponibilià di indirizzi non immediata.
- permanenza di problemi architetturale, quali la mancanza di accordi per il supporto coerente al IPv6 multihoming.
Da realizzare:
- 6bone
- ICMPv6
- IPv6 multihoming
[modifica] 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 over IPv4 configurati staticamente per l'interconnessione di sottoreti IPv6 remote
- Tunnel di traduzione 6to4, per far dialogare reti IPv6 con reti IPv4.
Questi tunnel funzionano tramite l'incapsulamento dei pacchetti IPv6 in pacchetti IPv4 con il protocollo next-layer 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).
[modifica] Gruppi di lavoro IETF affini
- 6bone IPv6 Backbone (concluso) - (in lingua inglese)
- ipng IP Next Generation (concluso) - (in lingua inglese)
- ipv6 IP Version 6 - (in lingua inglese)
- ipv6mib IPv6 MIB (concluso) - (in lingua inglese)
- multi6 Site Multihoming in IPv6 - (in lingua inglese)
- v6ops IPv6 Operations - (in lingua inglese)
[modifica] Bibliografia
- (EN) RFC 3363 e RFC 3364 - DNS e IPv6
- (EN) RFC 2460 - Internet Protocol, Version 6 - current version
- (EN) RFC 1883 - Internet Protocol, Version 6 - old version
- (EN) Report: Japan, China, S. Korea developing next Net CNET Asia Staff (2003)
- (IT) PI - Partito ufficialmente IPv6 Punto Informatico (2004)