• Non ci sono risultati.

2.1 Introduzione alla topology discovery

2.1.1 Metodi non tomografici di topology disco-

2.1.1.1 Traceroute

Traceroute è uno degli strumenti più diffusi di topology disco- very, tanto che lo si trova implementato nei più diffusi sistemi operativi. Il principio del traceroute è semplice: un nodo esegue

Figura 2.1: Informazione topologica ricavata dall’esecuzione del traceroute da una singola sorgente

l’active probing inviando ad un altro nodo destinatario pacchetti IP con valori del campo TTL che vengono incrementati in cor- rispondenza di ogni probe, fino a che tale campo non raggiunge un valore abbastanza elevato da permettere al datagramma di raggiungere la propria destinazione. In questo modo ognuno dei router situati sul path che connette i due nodi riceverà, ad un certo istante del processo di probing, un pacchetto con un valore del campo TTL pari a 1 e sarà costretto a scartarlo, inviando al nodo sorgente del pacchetto (quello che esegue l’active probing) un messaggio ICMP time exceeded; tale messaggio riporterà, ov- viamente, l’indirizzo di una delle interfacce del router. In questo modo il nodo che esegue l’active probing ricaverà una lista di indirizzi corrispondenti alle interfacce dei router presenti sul pa- th verso una determinata destinazione. La figura 2.1 mostra le informazioni topologiche ricavate dall’esecuzione di traceroute a partire dal sender verso il receiver . Una rappresentazione grafica di tale processo di probing può essere vista in figura 2.2. Eseguendo questo tipo di operazione con diverse destinazio- ni e mettendo in relazione tra loro i set di indirizzi ricavati in ciascuna osservazione è possibile ottenere una ricostruzione ad albero della topologia di una rete, in cui la radice rappresenta

Figura 2.2: Rappresentazione grafica del processo di probing di Traceroute

il nodo che esegue l’active probing ed ogni nodo interno cor- risponde ad un particolare router. Con l’uso di informazioni topologiche ottenute facendo eseguire Traceroute a diversi no- di della rete (monitors) è possibile tuttavia avere una visione più completa della rete stessa. In tempi relativamente recen- ti, diversi progetti di ricerca hanno sfruttato questa possibilità per cercare di ricavare una “mappa” di Internet, sviluppando tool basati sulla procedura di probing appena descritta; ne è un esempio Mercator (descritto in[17]).

Il processo di topology discovery basato su Traceroute incon- tra però alcune consistenti difficoltà. Una delle maggiori è quella causata dalla presenza di anonymous nodes, ossia di router che non rispondono al pacchetto di probe con un messaggio di tipo TTL time exceeded, o che, pur rispondendo, non inseriscono nel pacchetto di reply un’informazione che permetta di identificarli. Queste difficoltà è causata da diversi fattori, alcuni dei quali sono illustrati in [33]: alcuni router hanno ICMP disabilitato, oppure limitato da un ICMP rate limiter, alcuni firewall scar- tano il tipo di pacchetti usati da traceroute (tanto che è stato proposto di “mascherare” la procedura di probing inserendo nei pacchetti di probe segmenti di tipo TCP syn). Queste misure

sono in genere adottate dagli amministratori di rete sia con lo scopo esplicito di mantenere segrete le informazioni topologiche relative al loro dominio amministrativo, sia per il fatto che pos- sono essere dei malicious user a cercare di sollecitare un router a produrre una grande quantità di ICMP reply in modo da pre- giudicarne il normale funzionamento. Possono risultare anonimi a Traceroute, inoltre, anche i router alle cui interfacce siano as- segnati indirizzi privati di tipo IPv6. Si noti, d’altra parte, che Traceroute riesce a rivelare comunque la presenza dei router anonimi, pur non riuscendo ad associare loro un identificativo.

Anche in assenza di anonymous routers, si possono comun- que incontrare problemi nella ricostruzione della topologia della rete nel caso in cui si voglia fare un merging delle topologie vi- ste da più nodi. In fase di merging, infatti, è necessario trovare una corrispondenza tra i nodi presenti nelle diverse topologie: è necessario, in pratica, riuscire a capire se due nodi interni appar- tenenti ad alberi con radici diverse corrispondano, nella realtà, allo stesso router. I nodi interni, come si vede in figura 2.1, sono identificati dall’indirizzo sorgente inserito dal router nel pacchetto ICMP reply: due pacchetti di probe che raggiungono lo stesso router su interfacce diverse possono generare, dunque, ICMP reply con indirizzi sorgente diversi. Durante il processo di merging si corre dunque il rischio di considerare come distinti nodi interni che rappresentano in realtà lo stesso router: si pone il problema, dunque, di capire se due nodi, appartenenti a topo- logie diverse e identificati da indirizzi differenti corrispondano in realtà allo stesso apparato fisico, come illustrato in figura 2.3; tale problema viene indicato con il nome di alias resolution.

soluzione di tale problema, alcune delle quali sono indicate in [29, 33].

Un metodo intuitivo si basa sul fatto che, nella maggioranza dei casi, il campo seqnum dei messaggi di ICMP reply gene- rati da un router è ricavato da un contatore che è lo stesso per tutte le interfacce della macchina: se due interfacce ap- partengono allo stesso router, dunque, inviando due pacchetti back-to-back ai rispettivi indirizzi, si otterranno in risposta due pacchetti ICMP con numeri di sequenza consecutivi (o almeno “abbastanza vicini”).

Un’altra soluzione sfrutta il fatto che spesso i router rispon- dono ai messaggi indirizzati direttamente a loro con pacchetti che riportano un source adress unico, indipendente dall’interfac- cia su cui il messaggio originale è stato ricevuto. Inviando a due indirizzi alias un messaggio (ad esempio un segmento UDP indi- rizzato ad una porta inesistente) si dovrebbere quindi ottenere due pacchetti di risposta con lo stesso valore del campo source address.

Altre euristiche proposte sfruttano la struttura degli indirizzi letterali associati da un server DNS agli indirizzi IP in esame, o particolari pattern che, riscontrati nei grafi ottenuti dal merging di diverse topologie, rivelano la presenza di alias. Questo ultimo approccio è sfruttato anche in [33] per mettere in corrspondenza con uno stesso nodo fisico nodi anonimi presenti su topologie diverse.

Documenti correlati