2.1. Presentazione
9
1. Introduzione
Da ormai alcuni anni a questa parte, l’uso di molte e svariate tipologie di terminali
mobili è soggetta a una considerevole espansione: a titolo di esempio, si parla di telefoni
cellulari di terza e quarta generazione, smartphone, computer portatili, e ancora PDA e
palmtop. Di pari passo, vanno diffondendosi sempre più le aree di accesso wireless che
permettono l’uso di tali terminali, da quelle metropolitane, agli hot-spot pubblici, alle
reti universitarie e perfino casalinghe.
Benché le classiche reti cablate abbiano tuttora prestazioni notevolmente superiori,
l’evoluzione attuale delle tecnologie wireless permette già la fruizione di un’amplissima
gamma di servizi, anche a larga banda, di livello compatibile con pressoché tutte le
comuni esigenze dell’utente finale, comprese quelle di multimedialità. Anche le realtà
aziendali, che hanno tipicamente necessità più stringenti, non sono comunque immuni
da questa rivoluzione.
Le tecniche e i protocolli di accesso variano notevolmente a seconda dello scenario e del
livello fisico di interesse, dei servizi da fornire e delle caratteristiche (energetiche, di
potenza di calcolo, ...) del terminale. Tuttavia, a valle di ciò, è chiara la tendenza (o
“convergenza”, usando la parola chiave della filosofia oggi proposta dagli operatori del
settore) verso un comune denominatore: IP (“Internet Protocol”). IP, ufficialmente,
non è che uno dei possibili protocolli afferenti al livello 3 ISO/OSI
1
, ma in realtà è lo
standard de facto della comunicazione a pacchetti. Perfino le prime reti cellulari,
concepite come mero strumento di trasmissione vocale, sono in fase di conversione e già
1
storicamente, la definizione dei livelli ISO/OSI è posteriore a quella di IP che, pur essendo
ragionevolmente posto a livello 3, possiede infatti funzionalità pertinenti a livelli inferiori o superiori (come
il controllo degli errori e la segmentazione di pacchetti troppo lunghi).
1. Introduzione
10
usano IP poco più a valle delle “base station” (i nodi che, fra gli avanzati compiti di
gestione degli utenti, trasducono e “adattano” su cavo il segnale radio e viceversa).
Al momento, l’unica incarnazione di IP veramente globale è la versione 4 (indicata con
“IPv4”), sviluppata – è arcinoto – come elemento strategico del programma di difesa
2
rete 3
Internet IPv6
rete 1
rete 2
router
terminale
mobile
nodo generico
Figura 1-1: esempio di problema tipico in scenari di mobilità.
Il terminale mobile (nodo 1), mentre si trova sulla rete 1, comunica con il nodo 2 sulla rete 3. Il traffico viene
inoltrato correttamente, tenendo conto dei rispettivi indirizzi IP. A un certo punto (evento 3), il terminale mobile
cambia punto di accesso e si sposta dalla rete 1 alla rete 2: supponendo che voglia continuare la comunicazione
in corso, mantiene il proprio indirizzo precedente. Quando però il nodo 2 tenta di inviargli un pacchetto, questo
viene inoltrato ancora verso la rete 1. È evidente, perciò, che il solo protocollo IP non è sufficiente.
2.1. Presentazione
11
statunitense. La sua specifica formale in RFC
2
risale al lontano 1981, ma è stata
studiata nel decennio precedente: una vera eternità, nell’ambito delle telecomunicazioni.
Nonostante l’età, è soprattutto grazie a IPv4 che Internet esiste e viene comunemente
usata tutt’oggi.
Nel corso degli anni, per il sempre più crescente allargamento della “rete delle reti”,
alcuni aspetti di IPv4, innovativo per la sua epoca, si sono rivelati limitanti o
inadeguati, come verrà approfondito in §3.1.1. Tuttavia, queste difficoltà sono state in
gran parte superate, o ridotte, con l’introduzione di una pletora di protocolli e
specifiche “satellite”, per esempio CIDR, NAT
3
e standard per il multicast
4
. In genere,
sono davvero lodevoli per la concezione, costretta all’interno di angusti vincoli (tecnici
ed economici) dati dal preinstallato, ma hanno dichiaratamente scopo “transitorio” (che
è diventato più che decennale) e di compromesso. In aggiunta, pongono per forza di
cose alcune limitazioni (dovute anche al fatto di intervenire oltre l’area di influenza di
IPv4) e – si può dire? – non contribuiscono certo a dare un’immagine elegante dello
stack di comunicazione.
Queste ragioni, insieme alla sentita esigenza di mobilità e alla naturale evoluzione della
conoscenza delle reti, hanno spinto verso una profonda revisione di IPv4 e delle
procedure ad esso connesse (come quelle di individuare i nodi vicini e i router,
configurare gli indirizzi e comunicare in maniera sicura). Nel 1998, il risultato di una
lunga gestazione è la versione 6 di IP, “IPv6”. Naturalmente, IPv6 eredita moltissimo
dal suo predecessore
5
, ma il suo progetto, più razionale e lineare, presenta una
caratteristica modularità che ne facilita enormemente l’integrazione con gli altri
protocolli e con gli altri livelli dello stack, oltre a consentire nativamente l’introduzione
di estensioni a IPv6 stesso. Alcune conquiste di IPv6, come IPsec, sono state poi
retrointrodotte in IPv4.
2
“Request For Comments”: è un documento che riporta informazioni o specifiche riguardanti nuove
ricerche, innovazioni e metodologie dell’ambito internet. La serie degli RFC è cominciata nel 1969 (si veda
S. Bradner, “The Internet Standards Process -- Revision 3”, RFC 2026, 1996).
3
si veda sempre §3.1.1.
4
IPv4 prevede nativamente solo le modalià unicast e broadcast.
5
si è scelto “6” e non “5”, come numero di versione, per evitare fraintendimenti di notazione con un
protocollo sperimentale che non ha mai visto la luce nell’applicazione.
1. Introduzione
12
A causa della natura stessa di IP, versione 4 o versione 6, la gestione dei terminali
mobili non è affatto di immediata soluzione. Anzitutto, è necessario accordarsi su una
definizione di “mobilità”: cosa si intende, tecnicamente, per terminale mobile? Quali
sono gli obiettivi di un protocollo di gestione della mobilità? Il paragrafo §2.1
approfondisce questi aspetti, per quanto riguarda l’ambito IP. In Figura 1-1 si riporta
una schematizzazione introduttiva di un problema tipico: senza attenti accorgimenti, è
chiaro che è il solo protocollo IP non è sufficiente a garantire il supporto alla mobilità.
Per ora, ci si limita a dire che un protocollo di gestione della mobilità deve permettere
a un terminale mobile di continuare le proprie comunicazione nel corso degli
spostamenti, senza necessità di intervento sugli altri nodi (fissi o a loro volta mobili) coi
quali sta comunicando. In generale, l’approccio usato è quello di permettere al
terminale mobile di appoggiarsi a macchine di assistenza, dette “agenti”. Tali
macchine, a conoscenza degli spostamenti del terminale, funzionano da punto di
“raccolta” e “smistamento” per il traffico in mobilità del terminale stesso. I nodi coi
quali il terminale comunica non devono così avere alcuna conoscenza degli spostamenti
del terminale. Un agente può offrire i propri servizi a più di un terminale mobile.
Per quanto questo approccio sia efficace, ha tuttavia dei forti limiti in termini di
efficienza, poiché tutto il traffico – tipicamente – dovrà compiere ogni volta un percorso
piuttosto lungo, proprio per la necessità di transitare per l’agente. Un secondo
problema che ci si è posti è stato pertanto: è possibile permettere a un terminale mobile
di scambiare traffico direttamente con il nodo di interesse, anche in scenari di mobilità?
Per IPv6
6
, la risposta è affermativa, ma solo se il nodo di interesse è opportunamente
istruito.
Per reti IPv6, esiste infatti – e verrà presentato nel dettaglio – il meccanismo standard,
parte integrante del protocollo “Mobile IPv6”, esaminato in profondità nel corso del
capitolo 2. Tuttavia, come illustrato in §3.1, le reti IPv6 non godono ancora di ampia
diffusione, e non si prevede neppure che questa possa essere raggiunta nel breve o
medio termine. Pertanto, un ambito di discussione estremamente attivo, e che cerca
6
per reti IPv4 l’approccio è più complesso già in partenza, perché vanno usati sempre due agenti per ogni
terminale mobile. La mobilità in IPv4 non verrà affrontata nel dettaglio: le motivazioni alla base di questa
decisione saranno ampiamente chiarite.
2.1. Presentazione
13
risposte di concreta applicabilità ai problemi attuali, è quello della convivenza di reti
IPv4 e reti IPv6 e della gestione della mobilità in tali scenari. Per ora, non è stata
definita una soluzione univocamente accettata, per quanto la recente evoluzione abbia
registrato notevoli passi avanti verso un accordo, ma esistono molte ed interessanti
proposte: le più rilevanti e condivise sono oggetto della discussione del capitolo 3.
Tutte queste proposte, tuttavia, prevedono in ogni caso l’uso obbligatorio di agenti,
quali punto di passaggio per tutto il traffico del terminale mobile. Talvolta, ciò può
condurre a prestazioni del tutto insufficienti, rispetto alle esigenze del momento. È
chiaro allora che è di un certo interesse cercare una soluzione che permetta, in scenari
eterogenei IPv4/IPv6, lo scambio diretto di traffico fra un terminale mobile e un
qualsiasi altro nodo. In combinazione e coerentemente con gli standard attuali, si è
perciò definito e valutato, da un punto di vista teorico, un possibile approccio, oggetto
del capitolo 4.
2.1. Presentazione
15
2. Mobile IPv6
L’illustrazione del protocollo Mobile IPv6 è fondante per le discussioni che seguiranno.
La specifica attuale [1], particolarmente estesa e complessa, è il frutto di molti anni di
studio e confronti, e di oltre venti revisioni a livello di draft. Un’analisi sistematica va
al di là degli scopi presenti, perciò, con riferimento agli argomenti scelti, alcuni elementi
verranno trattati con notevole dettaglio, mentre per i restanti ci si limiterà agli aspetti
essenziali. Pur nell’ottica di una panoramica ragionevolmente completa, per semplicità
di esposizione la maggior parte dei numerosi dettagli – come i codici numerici usati, il
preciso formato dei pacchetti, i suggerimenti implementativi, le regole di scheduling per
l’invio dei pacchetti – sarà omessa.
Per una corretta comprensione bisogna inoltre conoscere, almeno in prima battuta, gli
strumenti di sicurezza (cifratura e autenticazione) forniti dall’elaborata infrastruttura
IPsec, di cui si dà brevemente conto in §Appendice B. Lo standard permette poi l’uso
di IKE (“Internet Key Exchange”
7
), ma per brevità non verrà trattato. Anche le
procedure di “Neighbor Discovery” (ND, [11]) hanno particolare rilevanza, come verrà
illustrato più oltre, ma non verranno richiamate.
2.1. Presentazione
Mobile IPv6 (MIPv6) estende il protocollo IPv6 [6] [7] per permettere ai nodi di una
rete (nodi singoli, non router o intere reti) di rimanere raggiungibili e continuare in
maniera trasparente (seamless) le comunicazioni in corso, nonostante si spostino in
altre reti dell’Internet IPv6. Si parla in tal caso di nodi mobili (“Mobile Node”, MN),
per i quali ottenere la sola connettività nella nuova rete ospitante, detta “Foreign
7
C. Kaufman, “Internet Key Exchange (IKEv2) Protocol”, RFC 4306, dicembre 2005.
2. Mobile IPv6
16
Network” (FN), non risolve che la parte più semplice del problema, dal momento che i
meccanismi di IPv6 prevedono nativamente questa possibilità [10].
Per comunicare verso l’esterno, dovrà essere inoltre usato un nuovo indirizzo, poiché
difficilmente i parametri di MN saranno compatibili con quelli della nuova rete. In
particolare [2], i prefissi ammessi variano da rete a rete, a causa della corrente struttura
gerarchica di IPv6, che fa di un indirizzo IPv6 un preciso localizzatore per MN. Allo
stesso tempo, tuttavia, il medesimo indirizzo costituisce anche un identificatore univoco
per MN stesso. Riflettendo su questa intrinseca doppia natura di un indirizzo IPv6 (si
tenga presente anche Figura 1-1), è chiaro che uno spostamento interrompe
inevitabilmente la comunicazione, a partire dal livello di trasporto:
- se MN cambia indirizzo, infatti, non viene più riconosciuto correttamente dagli
altri nodi con cui era in comunicazione;
- se però MN non cambia indirizzo, non è in grado di ricevere pacchetti, poiché
l’infrastruttura di routing – che si suppone funzioni correttamente – li inoltra
alla sua rete di provenienza. Inoltre, MN potrebbe non essere in grado di
comunicare se non usasse un prefisso valido sulla nuova rete
8
.
L’idea di MIPv6 è di conservare la natura identificativa di un indirizzo IPv6,
associandogliene uno in via permanente, detto “Home Address”. Entrando più nel
dettaglio, in ambito MIPv6 si parla propriamente di mobilità se in FN il nodo mobile è
in grado, allo stesso tempo, di:
- configurare un nuovo indirizzo, detto “Care-of Address” (CoA), topologicamente
corretto rispetto a FN e che dunque gli assicuri connettività;
- ricevere i pacchetti destinati all’indirizzo usato nella rete di casa (“Home
Network”, HN), detto “Home Address” (HoA), rispetto al quale deve essere
sempre raggiungibile (è normalmente un indirizzo di classe globale).
Dal momento che MIPv6 è un protocollo di livello 3, risulta del tutto indipendente dal
tipo di link-layer sottostante. In altre parole, è garantita la continuità della
comunicazione e la raggiungibilità anche negli spostamenti fra reti IPv6 eterogenee
8
è il problema dell’ingress filtering: si veda in proposito §2.6.6.
2.1. Presentazione
17
quanto a tecnologia o mezzo fisico di accesso (handover verticale): per esempio, si può
gestire il passaggio da una rete fissa Ethernet a una wireless WiFi, a un collegamento
UMTS. La soluzione è pertanto molto più generale di un semplice handover orizzontale,
che dipende fortemente dal link-layer. Naturalmente, i livelli inferiori dello stack del
MN devono essere in grado di gestire la mobilità a basso livello, come per esempio
cambiare cella o access point quando il segnale è troppo debole, oppure prevedere più
antenne. Tali aspetti esulano però dagli scopi di MIPv6.
In forza dell’esperienza acquisita nello sviluppo di Mobile IPv4 [27], MIPv6 ne
condivide diversi aspetti e concetti, ma la sua perfetta integrazione con IPv6, oltre alle
novità introdotte, ne fa una soluzione senz’altro migliore (si veda §3.1.1). Un innegabile
elemento positivo introdotto è che le FN non necessitano di alcuna configurazione
particolare, devono solo permettere al nodo di generare un indirizzo unicast instradabile
(“unicast routable address”), oppure fornirglielo. Il CoA deve essere preferibilmente
globale, ma tale requisito è funzione del contesto di impiego di MIPv6: lo standard, ad
ogni modo, sconsiglia fortemente l’uso di indirizzi site-local sia per CoA, sia per HoA, e
proibisce l’uso di quelli link-local.
Volendo semplificare al massimo il funzionamento del protocollo, MN comunica i propri
spostamenti a un router su HN, detto “Home Agent” (HA), il quale funziona da relay
per tutti i pacchetti da e verso MN, in maniera trasparente rispetto a tutti i nodi in
comunicazione con MN (detti “Correspondent Node”, CN). I CN potrebbero essere a
loro volta mobili, ma dal punto di vista di MN questo non fa differenza (si confronti
con quanto presentato in §2.5.3).
Un aspetto di notevole rilevanza, non standardizzato in MIPv4 (nonostante la presenza
di alcune proposte), è la possibilità nativa di stabilire un percorso diretto fra un nodo
mobile in FN e un qualunque altro nodo IPv6 opportunamente predisposto. Si parla in
questo caso di comunicazione in “Route Optimization” (RO), poiché più efficiente
quanto a ritardi e, possibilmente, a throughput. È inoltre più affidabile, trattandosi in
genere di un percorso più breve, non essendo necessaria la triangolazione attraverso
HA. Pensando a un esempio estremo, in assenza di RO, un MN con HN europea,
posizionato negli Stati Uniti e in comunicazione con un CN canadese, vedrebbe ogni
singolo pacchetto inviato attraversare due volte l’Atlantico: una volta verso HA e una