Introduzione
7
Introduzione
Il lavoro di tesi che presentiamo si inserisce nell’ambito della ricerca di nuovi meccanismi di transizione volti a stimolare la diffusione del nuovo protocollo Internet, IPv6 (Internet Protocol version 6).
Negli ultimi anni, infatti, l’interesse intorno a questo protocollo è cresciuto e con esso la ricerca di sempre più innovative soluzioni che ne incentivassero l’adozione da parte dei gestori delle reti. Come è ben noto, il passaggio da IPv4 a IPv6 è destinato ad avvenire in modo graduale ed è necessario predisporre tecniche di coesistenza tra le due versioni del protocollo che favoriscano la crescita di IPv6.
Nel capitolo 1 viene offerta una breve descrizione delle caratteristiche salienti di questo protocollo, accompagnate da una panoramica delle tipologie di meccanismi di transizione attualmente utilizzati.
Viene inoltre descritto l’MPLS (Multiprotocol Label Switching), una tecnologia che ha la peculiarità di basare il routing sul valore di
Introduzione
8
una etichetta, indipendentemente dal protocollo di layer 3 trasportato.
L’idea che sta alla base della ricerca che presentiamo è quella di integrare IPv6 e MPLS per riuscire a collegare domini IPv6 remoti, ottenendo un nuovo potente strumento di migrazione.
Con la tecnica 6PE (IPv6 on the Provider Edge routers), implementata da Cisco e descritta a fine capitolo, infatti, siamo in grado di offrire agli amministratori di rete che dispongano di un backbone MPLS la possibilità di fornire ai propri utenti connettività IPv6 nativa attraverso tale dorsale.
L’obbiettivo che ci siamo proposti è stato quello di progettare e realizzare un router Linux MPLS-IPv6, che supportasse le funzionalità richieste da questo nuovo meccanismo, da utilizzare ai bordi della rete MPLS per consentire il collegamento con reti di accesso IPv6 native. Il principale vantaggio di questo approccio è infatti quello di non richiedere alcun intervento sui nodi del core della rete.
Il capitolo 2 riporta in dettaglio le mappe del codice di networking da noi ricavate durante la ricezione, la trasmissione e l’inoltro di pacchetti IPv4, IPv6 e MPLS. La necessità di intervenire su strutture e file del kernel, infatti, ce ne ha richiesto una esatta conoscenza ricavabile soltanto con l’osservazione diretta.
A chiusura del capitolo sono stati riportati due strumenti che
abbiamo utilizzato a livello del kernel: il File System /proc e il
framework Netfilter per il filtraggio e la manipolazione dei pacchetti. L’argomento viene ripreso nel capitolo successivo, in cui si descrive iptables, una applicazione che riesce ad utilizzare Netfilter direttamente dallo spazio utente. Tale descrizione è preceduta da una analisi delle tecniche utilizzabili per modificare una applicazione IPv4 al fine di dotarla di supporto IPv6.
Introduzione
9
Il capitolo 4 riporta l’architettura del trial sperimentale che abbiamo adoperato durante la fase di sviluppo del codice, seguita da una descrizione delle difficoltà che abbiamo incontrato durante la fase implementativa.Come esse siano state superate e i dettagli relativi al software realizzato sono riportate nel capitolo successivo, suddiviso in una prima parte che mostra il codice realizzato per il kernel (un modulo di Netfilter e una patch) e una parte successiva che mostra l’applicazione sviluppata ad userspace.
Il sesto e conclusivo capitolo, infine, è dedicato all’analisi di alcune prove di funzionalità su alcuni scenari di base. Inoltre sono stati portati avanti esperimenti di mobilità utilizzando il protocollo MIPv6 e prove di interoperabilità tra il router Linux realizzato e un dispositivo commerciale: il Juniper M10.