Grazie al tipo di indirizzo assegnatoci, è stato possibile realizzare 3 sottoreti distinte,
con prefissi di rete diversi, una con funzioni di backbone e due con funzioni di reti di
accesso.
In questo contesto, sono state analizzate le problematiche relative al cambiamento di
rete di accesso di un nodo mobile.
Il lavoro ha comportato:
1. La ricompilazione dei kernel dei terminali per il supporto del protocollo IPv6.
2. La configurazione di un PC (metropolis) rendendo così più semplice la
gestione degli indirizzi all’interno della nostra rete locale e la creazione di un
nostro dominio di rete (.ipv6.iet.unipi.it).
3. L’aggiunta al kernel del modulo MIPv6 per il supporto della mobilità.
4. L’acquisizione, tramite programmi appropriati (ethereal), dei pacchetti IPv6
inviati dai vari nodi per poter gestire la mobilità (Router Advertisement,
Neighbor Discovery,ecc.).
5. Elaborazione dei messaggi scambiati fra i nodi coinvolti nel trial.
Capitolo 1
IPv6
1.1 Introduzione
Con IPv6 o IPng si indica il protocollo Internet di livello 3 di nuova generazione
progettato dall’IETF (Internet Engineering Task Force) agli inizi degli anni ‘90 e
divenuto standard nel dicembre del 1994 con la pubblicazione dell’RFC 1752 “The
Recommendation for the IP Next Generation Protocol”, che ne definisce in
dettaglio le caratteristiche. Esso è un protocollo pensato e progettato per venire
incontro alle esigenze dello sviluppo della rete Internet e per risolvere i limiti che
presentava il vecchio protocollo IPv4, facendolo così diventare l’unico protocollo
utilizzato nelle reti del nuovo millennio. Tra le nuove caratteristiche introdotte le
più importanti sono:
1) Una concezione estremamente semplice e razionale che permette di superare
tutti i limiti di IPv4;
2) Uno spazio d’indirizzamento praticamente infinito;
3) La possibilità di autoconfigurare un host;
4) Un supporto efficace per la sicurezza e la mobilità dei nodi;
5) Una struttura maggiormente idonea al trasporto del traffico real-time.
Tutto ciò realizzabile gradualmente e indolore, affermandosi come il protocollo in
grado di eliminare la differenza tra le reti Internet e quelle Intranet. Il motivo per
cui si è vista la necessità di creare questo nuovo protocollo risiede soprattutto
nell’importanza che sino ad oggi ha rivestito il protocollo IP sia nella rete Internet
sia in quella Intranet. Esso, infatti, nasce per disaccoppiare le applicazioni dalla
struttura hardware delle reti di trasmissione e creare un’interfaccia di trasmissione
dei dati indipendente dal sottostante substrato di rete, che può essere realizzato con
le più disparate tecnologie (Ethernet, Token Ring, FDDI, etc.).
In realtà IP realizza solo una parte di tutto questo e fa parte dello strato protocollare
TCP/IP che, come tutti i protocolli di rete, è strutturato in una serie di livelli (nel
caso specifico sono 5, sotto specificati), tra cui IP, responsabile del trasporto dei
vari pacchetti tra le varie reti che compongono Internet.
• Livello 5 Applicazione (FTP, TELNET, etc.);
• Livello 4 Trasporto (TCP, UDP);
• Livello 3 Rete (IP, ICMP);
• Livello 2 Collegamento dati (Interfaccia di rete).
• Livello 1 Fisico
Tale architettura permette di far comunicare computer diversi sia dal punto di vista
hardware che dal punto di vista software.
Tali risultati sono conseguiti con il vecchio protocollo grazie a due sue
caratteristiche fondamentali:
-Indirizzamento universale: ogni interfaccia di rete IPv4 possiede un indirizzo
univoco a livello mondiale su 32 bit;
-Best-effort: IPv4 fa il possibile per consegnare un pacchetto al livello superiore ma
non assicura che ciò sarà fatto. In esso non esiste il concetto di qualità del servizio
(QoS: Quality of Service).
Queste due caratteristiche, che sono state sino ad ora alla base di IPv4, rischiano
ora di diventare i suoi principali limiti e spingono all’introduzione di IPv6. Primo
motivo, già citato precedentemente, risiede proprio nella struttura di un indirizzo
IPv4. Esso, infatti, è un indirizzo su 32 bit, che rendono possibili circa 4 miliardi
d’indirizzi (4 miliardi di calcolatori definibili con il loro indirizzo). Tale
limitazione non si spiegherebbe, perché tutt’ora 4 miliardi di calcolatori non
esistono, se non si ricerca la causa nella modalità di assegnazione di tali indirizzi.
Gli indirizzi, infatti, non sono assegnati singolarmente ma a blocchi, che
rappresentano le “reti”. Le reti possono appartenere a 5 classi diverse:
I. Classe A: 128 reti disponibili, ciascuna grande circa 16 milioni di indirizzi;
II. Classe B: circa 16000 reti disponibili ciascuna grande circa 65000 indirizzi;
III. Classe C: circa 2 milioni di reti disponibili, ciascuna grande 254 indirizzi;
IV. Classe D: circa 268 milioni di reti disponibili, usate per il multicast;
V. Classe E: Riservata per usi sperimentali e mai usata.
Già nel gennaio del 1996 risultavano assegnate 92 reti di classe A, 5655 reti di
classe B e 87924 di classe C. Tali dati mettono in evidenza che la criticità
principale è sulle reti di classe B, che, per la loro dimensione intermedia, sono le
più idonee ad essere assegnate ad un’organizzazione. Il problema dell’esaurimento
degli indirizzi viene compreso nel 1991 quando inizia a verificarsi una crescita
delle domande di assegnazione degli stessi più veloce di ogni previsione (vedi
figura 1).
Figura 1.1 Crescita del numero di terminali Internet
E’ il “momento storico” in cui Internet sta diventando l’unica rete per tutti.
Un’ulteriore svolta recentissima si è avuta anche con l’introduzione del “cable
modem” per fornire a tutti gli utenti domestici un collegamento a Internet a velocità
elevata (maggiore di 1 Mb/s) per la ricezione della televisione via cavo. Per tale
motivo viene deciso dell’IETF (Internet Engineering Task Force), il comitato che
prende le decisioni sull’assegnazione dell’indirizzi IP e su Internet, di assegnare
non solo reti di classe B, ma anche reti contigue di classe C. Il problema di questa
decisione, però, è da ricercarsi nelle regole d’instradamento dei router che in questo
modo risultano essere molto più complesse.
In tal modo, infatti, se si assegna ad un ente una sola rete di classe B i router
dovranno avere una sola regola d’instradamento, mentre, se le classi che gli sì
assegnano sono classi C, quindi, più d’una, i router dovranno avere al loro interno
un numero di regole pari al numero di classi assegnate tutte diverse. Per ovviare a
tale problema viene introdotto il CIDR (Classless InterDomain Routing),
eliminando in questo modo il concetto di “classe di rete” a livello di tabelle
d’instradamento, cercando di migliorare la scalabilità del routing e l’uso dello
spazio di indirizzamento su Internet. Esso, infatti, permette di annunciare un blocco
di reti con indirizzi contigui (per esempio la 195.1.4.0, 195.1.5.0, 195.1.6.0) con
una sola entry specificando quanti bit sono significativi (nel nostro caso
195.1.4.0/22, cioè qualsiasi rete che ha i primi 22 bit pari a 195.1.4.0)
Per rispondere alle esigenze appena descritte, IPV6 nasce come evoluzione di IPv4,
mantenendo inalterate le caratteristiche che si sono dimostrate valide, eliminando
quelle inutili, aggiungendone delle altre e ponendo al contempo una grande
attenzione a mantenere il protocollo il più snello e il più veloce possibile.
I cambiamenti apportati sono comunque notevoli e possono essere riassunti in
grandi linee nei seguenti punti:
• Maggior numero di bit (128 bit), in modo che lo spazio d’indirizzamento
non sia soggetto ad esaurimento, consentendo di dare alla rete una struttura
più flessibile ed efficiente di quella attuale, introducendo il concetto di
autoconfigurazione degli indirizzi;
• Organizzazione gerarchica degli indirizzi più flessibile che non usi il
concetto di classi, ma meccanismi di tipo CIDR;
• Schema di assegnazione degli indirizzi mirato a minimizzare le tabelle
d’instradamento dei router ed aumentare l’efficienza del CIDR;
• Indirizzi globali per Internet e locali per Intranet;
• Introduzione di un nuovo tipo di indirizzamento, l’”anycast” che si
aggiunge agli usuali unicast e multicast:
• Semplificazione del formato dell’intestazione, per permettere una
trasmissione più efficiente del traffico normale, limiti meno restrittivi sulle
dimensioni delle opzioni e la flessibilità per poterne introdurre di nuove nel
futuro.
Con il protocollo IPv6 viene introdotto, inoltre, il concetto di QoS (Quality of
Service) che in IPv4 era stato trascurato. Il protocollo IPv4, infatti, fornisce un
servizio di tipo “Best Effort” che fa di tutto affinché i pacchetti trasmessi siano
consegnati alla corretta destinazione, senza fornire comunque alcuna garanzia sul
fatto che ciò avvenga e in quali tempi. Successivamente, è stato inserito il
protocollo di segnalazione RSVP (Resource reSerVation Protocol), in grado di
allocare risorse ai router per renderli idonei a garantire la QoS anche ad
applicazioni basate su IPv4. Tutto ciò legato alla sua facilità di realizzazione e alla
caratteristica di avere un overhead limitato e costante ha consentito al protocollo
IPv4 di essere l’unico protocollo sopravvissuto a livello 3 delle nuove reti di
telecomunicazione.
Nonostante l’introduzione di RSVP, la nascita di nuove applicazioni, le quali
generano molto spesso traffico real-time, cioè un tipo di traffico che è sensibile ai
ritardi di accoramento e alle perdite, dovute per esempio, alla congestione della
rete, ha portato ad avere la necessità di una QoS garantita, spingendo a cercare
nuovi meccanismi all’interno del protocollo stesso. L’estensione architetturale
proposta dallo IETF mira su due elementi:
• Il modello di servizio esteso, identificato dalla sigla IS (Integrated Services)
• Una sua possibile struttura implementativi (Differentiaded Services).
1.2 L’header dell’indirizzo IPv6
L’header (intestazione) IPv6 (figura 1.2), a differenza di quello IPv4 che ha
dimensione variabile e che, in assenza di opzioni, assume la dimensione di 20 byte
(dei quali 8 byte per gli indirizzi IPv4), è di dimensione fissa pari a 40 byte.
Pertanto la dimensione raddoppia nonostante lo spazio destinato agli indirizzi sia
quadruplicato.Di tali byte, 32 sono utilizzati per gli indirizzi IPv6 e i rimanenti 8
byte da 6 campi addizionali. Si vede da ciò che vi è stata una notevole
semplificazione che ha ridotto il numero dei campi da 12 a 6.
Importante è notare che le opzioni in IPv6 non sono più parte integrante dell’header
IPv6, ma ciascuna viene memorizzata in un header separato (extension header) che
si colloca tra l’header IPv6 e l’header del soprastate livello di trasporto (es. TCP,
UDP).
Figura 1.2: Header IPv6
Figura 1.3: Header IPv4
Nella tabella 1 è riportato il significato dei campi dell’header IPv6:
Nome Lunghezza Significato
Version 4 bit Versione, nel caso specifico vale sempre 6
Priority
4 bit
Priorità
Flow label
24 bit
Identificatore del flusso
Payload-
Leght
16 bit
lunghezza del payload , cioè dell’area dati che
segue l'intestazione, in bytes.
Next
Header
8 bit
Intestazione successiva, identifica il tipo di
pacchetto che segue la intestazione di IPv6, usa
gli stessi valori del campo protocol
nell’intestazione di IPv4
Hop Limit
8 bit
limite di salti, stesso significato del time- to-live
nell’intestazione di IPv4, è decrementato di uno
ogni volta che un nodo ritrasmette il pacchetto, se
arriva a zero il pacchetto viene scartato
Source IP
128 bit
Indirizzo di origine
Destination
IP
128 bit
Indirizzo di destinazione
Tabella 1:Significato dei campi dell’header IPv6