Università degli studi Roma Tre
Tesi di laurea in Ingegneria Elettronica
Esplorazione automatica di reti multiprotocollo
Tesista: Lorenzo Colitti
Relatore: Prof. Giuseppe Di Battista
Esplorazione automatica di reti
• Applicazioni:
–
–
–
–
Isolamento di guasti
Analisi delle prestazioni e pianificazione
Simulazione
Posizionamento efficace di servizi di rete
• Perché esplorazione automatica?
• Le reti attuali, anche in ambito locale, sono
notevolmente complesse
• La struttura di Internet rende impensabile l’esplorazione
manuale o il ricorso a informazioni statiche
– È costituita da centinaia di milioni di nodi
– È gestita da decine di migliaia di soggetti diversi con
competenze locali
– È in continuo mutamento
Esplorazione: stato dell’arte
• Approcci diversi:
• Basato sui registri
– Hermes
– Flap viewer
• Basato sull’interrogazione degli apparati di rete
– Polyphemus
• Basato sul comportamento della rete
– Utilizzo di traceroute
– Skitter, Argus, Mercator, NetBird, NetHunter
IPv6 e IPv4
• Perché IPv6?
 La scarsità degli indirizzi IPv4 limita le applicazioni attuali
 Protocollo più semplice, razionale ed estendibile
 Caratteristiche di sicurezza, multicast, supporto alla
mobilità
 Supporto al “pervasive networking” del futuro
 L’interesse per IPv6 in questo momento è in crescita
• IPv4 e IPv6 sono incompatibili.
 Per avere successo, IPv6 deve garantire l’interoperabilità
con IPv4 al livello di rete della pila OSI (livello 3)
Meccanismi di compatibilità
Meccanismi di compatibilità a livello 3:
• Nodi bi-protocollo (dual stack)
• Traduttori di protocollo (NAT-PT)
• Tunnel IPv6 in IPv4
Isola
IPv6
 Configurati
 Automatici
 6to4
• Altri
Link IPv4
Link IPv6
Tunnel IPv6 su IPv4
Router IPv4
Router IPv6
Router dual stack
Lo sviluppo di IPv6: reti miste
• Se IPv6 prende piede, avremo, almeno per i primi anni,
una rete mista fatta di zone IPv6 e zone IPv4
• Questo complica la rete e rende ancor più necessaria
l’esplorazione automatica
• Abbiamo due topologie di livello 3 distinte
– In linea di principio, si dovrebbero ispezionare singolarmente
– In realtà ci interessano maggiormente i rapporti tra le due
• L’ispezione della rete IPv6 è complicata dai tunnel
– La topologia di livello 3 è diversa da quella dei collegamenti fisici
– I tunnel appaiono come un solo hop
– Il traceroute non è più sufficiente
Obiettivi
• Determinare i nodi e il tipo (IPv4 o IPv6) dei
collegamenti in una zona di Internet
• Rilevare l’incidenza dei tunnel nella rete IPv6
• Essere il meno invasivi possibile
• Realizzare degli strumenti elementari che possano
essere usati in strumenti più sofisticati
Fasi di realizzazione
• Realizzazione di una rete IPv6 di test
• La rete collega Roma Tre, CASPUR e una sottorete privata
• Piattaforme utilizzate: Cisco e Linux
– Parte della rete di Roma Tre è emulata attraverso User Mode
Linux
• Presto sarà disponibile la rete IPv6 nativa del GARR
(progetto 6net)
• Studio di metodologie e tecniche di esplorazione di reti
miste
• Sviluppo di strumenti di supporto e tool di esplorazione
•
•
•
•
Script di configurazione automatica per la rete virtuale
Implementazione su Linux della MIB IPv6
tunneltrace
findmtu
La rete di test
CASPUR
woodstock
IPv4
2001:760:4:ffff::/64
6net-gw
2001:760:2:ffff::/64
2001:760:4:f010::/64
2001:760:2::/64
DIA
dia-v6
UML
2001:760:4::/64
2001:760:4:f000:/60
brunello
dolcetto
giga
dns, www
client
UML
Linux
Win2k
Linux
Link IPv4
Link IPv6
Tunnel IPv6 su IPv4
Router IPv4
Router IPv6
Router dual stack
User Mode Linux
• Permette di far girare uno o più macchine virtuali
(VM) Linux come processi su un sistema ospite Linux
• Virtualizzazione
• Le VM sono sistemi Linux a tutti gli effetti
• Il nucleo di una VM è un processo sul sistema ospite
• I processi delle macchine virtuali girano direttamente sul
sistema ospite, sono intercettate solo le chiamate di sistema
• Emulazione dell’hardware
• Dischi virtuali: file sul sistema ospite
• Terminale utente
• Rete
– Le macchine virtuali possono essere messe in rete tra loro
– Le capacità di Linux permettono di costruire reti complesse
– Le VM possono accedere alla rete esterna attraverso l’ospite
La rete IPv6 UML
• 6 macchine virtuali IPv6 con Linux Red Hat 7.2
• Rete 2001:760:4:f000::/60, ripartita in 6 sottoreti IPv6
• Instradamento dinamico con protocollo RIPng e demone di
routing zebra
• Collegamento alla rete IPv6 reale attraverso il sistema ospite
• Configurazione delle macchine virtuali e dei file DNS effettuata
automaticamente attraverso script
Esempio: un traceroute parzialmente virtuale e parzialmente reale
Esplorazione di reti miste
• Obiettivo fondamentale: caratterizzazione dei tunnel
IPv6 in IPv4
• I tunnel sono l’unico meccanismo di transizione
utilizzato nelle aree interne (core) della rete
• Problema di base: ricerca di tunnel in un percorso
• Dato un percorso, per ogni coppia di nodi consecutivi
vorremmo sapere:
– Se il collegamento avviene per mezzo di un tunnel
– Quali sono gli indirizzi IPv4 degli estremi del tunnel
– Quali e quanti sono i nodi IPv4 intermedi
Fonti di informazioni sui tunnel
• Si possono ottenere informazioni da varie fonti:
• Struttura degli indirizzi
– Indirizzi IPv4-compatibili
– Indirizzi 6to4
(es. ::193.204.161.2)
(es. 2002:c1cc:a102:f:19::1)
• Dimensione massima dei pacchetti (MTU) permessa dal
percorso
• Nomi associati agli indirizzi IP (DNS)
• Comunicazione con gli apparati di rete (metodo invasivo)
– SNMP (Simple Network Management Protocol)
– IPv6 Node Information Query
• Le fonti hanno diversi gradi di disponibilità e di
affidabilità
• Spesso occorre fondere informazioni provenienti da
più fonti
Tunneltrace
• Strumento sviluppato: tunneltrace
• Funzionamento simile al comando traceroute
• Parte dai risultati del comando traceroute6, analizzandoli
una riga alla volta
• Evidenzia la presenza di tunnel tra due nodi
• Cerca di stabilire gli indirizzi degli estremi del tunnel
• Architettura modulare
– È possibile aggiungere altre fonti di informazioni in
maniera semplice
– Attualmente utilizza MTU, DNS, e SNMP
– In futuro potrà utilizzare anche ICMPv6 Node
Information query ed eventuali altri
Tunneltrace: fonti informative
• MTU
• Funzionamento:
– Un tunnel IPv6-in-IPv4 aggiunge ad ogni pacchetto una
intestazione IPv4, che riduce la dimensione massima di
pacchetto trasportabile (MTU) di 20 byte
– È sufficiente verificare che tra un nodo e il successivo la
dimensione massima del pacchetto trasportabile scenda
di 20 byte
• Caratteristiche:
–
–
–
–
Sempre disponibile
Media affidabilità
Non ci dice gli indirizzi IPv4 degli estremi
Permette di scoprire solo il primo tunnel in un percorso
Tunneltrace: fonti informative (2)
• DNS
• Funzionamento:
– Si cerca nel DNS il nome corrispondente all’indirizzo IPv6
e, se esiste, l’indirizzo IPv4 corrispondente al nome. Se
esiste l’indirizzo IPv4, è probabile che ci sia un tunnel
• Caratteristiche:
– La disponibilità dipende da come l’amministratore della
rete che si attraversa ha definito i nomi
– Bassa affidabilità
– Le informazioni possono essere vecchie o non esatte
– Non assicura la presenza di un tunnel: potrebbe essere
invece un collegamento nativo IPv6
– Ci dice solo l’indirizzo IPv4 dell’estremo remoto del
tunnel
Tunneltrace: fonti informative (3)
• SNMP
• Funzionamento:
– Interrogazioni SNMP direttamente ai nodi del percorso
con opportuni accorgimenti per dedurre la presenza di
tunnel e gli indirizzi IPv4 degli estremi
• Caratteristiche:
– Utilizzabile solo su reti a cui si ha accesso amministrativo
– Ottima affidabilità
– Può essere usato su trasporto IPv6 o IPv4 (ma in questo
caso dipende dal metodo DNS per ottenere l’indirizzo
IPv4 da interrogare)
– Le informazioni che fornisce dipende da quali funzionalità
sono supportate dal nodo che viene interrogato
– Cisco non fornisce informazioni sui tunnel
– Linux fornisce le informazioni su IPv6 grazie ad una
estensione sviluppata nel corso della tesi
Tunneltrace: risultati (1)
• L’affidabilità dei risultati ottenuti dipende molto da
quali fonti sono disponibili
• SNMP permette di ottenere ottimi risultati
• DNS tende a fornire falsi positivi
sh-2.05$ ./tunneltrace –q 2 2001:760:4:f005::2
traceroute to 2001:760:4:f005::2 (2001:760:4:f005::2) from 2001:760:4:f010:250:daff:fedf:b56b, 30
hops max, 16 byte packets
1 2001:760:4:f010:: (2001:760:4:f010::) 0.345 ms 0.239 ms
|
| v6-in-v4 X.X.X.X->X.X.X.X (mtu)
|
2 2001:760:4:ffff:: (2001:760:4:ffff::) 41.499 ms 39.268 ms
3 2001:760:4:0:204:76ff:fe22:5ba0 (2001:760:4:0:204:76ff:fe22:5ba0) 40.567 ms 52.182 ms
4 2001:760:4:f000::2 (2001:760:4:f000::2) 39.989 ms 38.18 ms
|
| v6-in-v4 10.0.0.1->10.0.0.2 (snmp)
|
5 2001:760:4:f002::1 (2001:760:4:f002::1) 40.127 ms 39.014 ms
6 2001:760:4:f005::2 (2001:760:4:f005::2) 41.93 ms 38.626 ms
Tunneltrace: risultati (2)
colitti@giga:~/tesi/tunneltrace/v1.0$ ./tunneltrace -q 2 www.6bone.net
traceroute to 6bone.net (3ffe:b00:c18:1::10) from 2002:c1cc:a102:0:204:76ff:fe22:5ba0, 30 hops max,
16 byte packets
1 2002:c1cc:a102:: (2002:c1cc:a102::) 2.241 ms 1.03 ms
|
| v6-in-v4 X.X.X.X->X.X.X.X guess (mtu)
|
2 swi6T1-A1-0-2.switch.ch (2001:620:0:39::2) 60.913 ms 73.437 ms
3 2001:798:12:200::2 (2001:798:12:200::2) 73.86 ms 71.112 ms
4 * it.ch6.ch.6net.org (2001:798:0:3::1) 70.641 ms
5 de.at6.at.6net.org (2001:798:0:9::2) 72.297 ms *
6 nl.uk6.uk.6net.org (2001:798:0:6::2) 61.244 ms nl.de6.de.6net.org (2001:798:0:5::1) 71.012 ms
7 surfnet.nl6.nl.6net.org (2001:798:22:200::1) 59.663 ms 71.958 ms
8 2001:798:22:200::2 (2001:798:22:200::2) 72.186 ms *
|
| v6-in-v4 X.X.X.X->145.145.166.37 guess (dns)
|
9 Gi5-1-2.BR2.Amsterdam1.surf.net (2001:610:16:6036::37) 60.024 ms *
|
| v6-in-v4 X.X.X.X->193.148.15.48 guess (dns)
|
10 ams-ix.sara.xs4all.net (2001:7f8:1::a500:3265:1) 69.241 ms 59.881 ms
|
| v6-in-v4 X.X.X.X->194.109.5.13 guess (dns)
|
11 0.ge-0-3-0.xr1.pbw.xs4all.net (3ffe:8280:0:201::) 71.764 ms 73.968 ms
12 xs4all-edt.ipv6.edisontel.it (2001:750:e::3) 70.973 ms 59.367 ms
13 rap.ipv6.viagenie.qc.ca (3ffe:b00:c18:1:290:27ff:fe17:fc0f) 400.171 ms 388.05 ms
|
| v6-in-v4 X.X.X.X->131.243.129.43 guess (dns)
|
14 www.6bone.net (3ffe:b00:c18:1::10) 389.526 ms 392.516 ms
FindMTU
• L’MTU del percorso verso una destinazione ci dice se
tra i due punti della rete c’è un tunnel
• È possibile realizzare una sonda che data una lista di
reti ci dica quali di esse sono raggiunte tramite un
tunnel e quali tramite IPv6 nativo
• I risultati forniscono una misura del grado di
transizione tra IPv4 e IPv6 della porzione di Internet
intorno al nodo che effettua i rilevamenti
• Disponendo un insieme di sonde in punti strategici
della rete IPv6 è possibile ottenere informazioni sul
grado di transizione ad IPv6 di Internet nel suo
complesso
Conclusione. Punti salienti
• Realizzazione della rete mista IPv4/IPv6, in parte
reale e in parte virtuale
• Sviluppo degli strumenti di configurazione automatica
della rete virtuale
• Realizzazione su Linux del software nativo necessario
per fornire via SNMP informazioni relative a IPv6
• Sviluppo di metodologie di esplorazione di reti miste
• Implementazione di un sistema di esplorazione e test
dei risultati
Scarica

Tesi di laurea in Ingegneria Elettronica