Simulazione di una rete con routing RIP in Cisco Packet Tracer
Transcript
Simulazione di una rete con routing RIP in Cisco Packet Tracer
Scuola Politecnica e delle Scienze di Base Corso di Laurea in Ingegneria Informatica Elaborato finale in Reti di Calcolatori Simulazione di una rete con routing RIP in Cisco Packet Tracer Anno Accademico 2014/2015 Candidato: Giovanni De Martino matr. N46 001396 Indice Simulazione di una rete con routing RIP in Cisco Packet Tracer ........................................................I Indice ............................................................................................................................................... II Introduzione ..................................................................................................................................... 3 Capitolo 1: Cisco Packet Tracer....................................................................................................... 5 1.1 Interfaccia, un primo sguardo ............................................................................................ 6 1.2 Un semplice scenario ......................................................................................................... 7 1.2.1 Configurazione Router ............................................................................................... 7 1.2.2 Configurazione PC ................................................................................................... 10 Capitolo 2: Routing Dinamico ....................................................................................................... 12 2.1 Distance Vector ............................................................................................................... 13 2.1.1 Algoritmo ................................................................................................................. 13 2.1.2 Instradamento ciclico e inversione avvelenata ......................................................... 14 2.2 Il protocollo RIP .............................................................................................................. 15 2.2.1 Funzionamento ......................................................................................................... 15 2.2.2 Versioni .................................................................................................................... 15 2.2.3 Svantaggi .................................................................................................................. 16 Capitolo 3: Rete con protocollo RIP .............................................................................................. 17 3.1 Configurazione delle macchine ....................................................................................... 17 3.1.1 PC N ......................................................................................................................... 17 3.1.2 Router 1 .................................................................................................................... 18 3.1.3 Router 2 .................................................................................................................... 18 3.1.4 Router 3 .................................................................................................................... 19 3.1.5 Router 4 .................................................................................................................... 20 3.2 Tabelle di routing ............................................................................................................. 21 3.3 Test di funzionamento ..................................................................................................... 22 3.3.1 Ping........................................................................................................................... 22 3.3.2 Traceroute ................................................................................................................. 23 3.4 Comportamento in caso di Link Fail ............................................................................... 26 3.4.1 Tabelle di routing ..................................................................................................... 26 3.4.2 Test di funzionamento .............................................................................................. 27 Conclusioni .................................................................................................................................... 29 Bibliografia .................................................................................................................................... 30 Introduzione “Una rete di calcolatori, in informatica e telecomunicazioni, è un sistema o un particolare tipo di rete di telecomunicazioni che permette lo scambio o condivisione di dati informativi e risorse (hardware e/o software) tra diversi calcolatori”. Se prima, per conversare, inviare lettere e quant’altro, c’era bisogno di un corriere e bisognava aspettare giorni affinché il “pacchetto” arrivasse a destinazione, ora, con l’avvento delle reti di calcolatori (Internet per prima), tutto questo può avvenire in pochi secondi. Si può quindi facilmente capire quanto sia importante il ruolo delle reti nella vita di tutti i giorni: basti pensare all’infinità di informazioni e dati di vario genere che ogni giorno attraversano intere nazioni. Questo sviluppo, non solo ha portato ad un incremento della produttività e quindi ad un aumento del guadagno delle imprese, ma ha anche migliorato lo stile di vita di un semplice utente: per esempio, con l’utilizzo di internet, una persona può effettuare una ricerca approfondita senza doversi recare per forza in una grande biblioteca, può effettuare degli acquisti in negozi virtuali senza doverli fisicamente visitare e può inviare e-mail ad amici e colleghi in pochissimi passi. Ovviamente una rete di calcolatori non è una cosa di facile realizzazione, bisogna installare e configurare molti componenti, far riferimento a molti strumenti e protocolli che migliorano il servizio, ma che al contempo diventano sempre più complessi. Prima di effettuare un’installazione, c’è quindi spesso bisogno di una simulazione, ovvero “della creazione di un modello della realtà che consenta di valutare e prevedere lo svolgersi 3 dinamico di una serie di eventi o processi susseguenti all'imposizione di certe condizioni da parte dell'analista”. La simulazione, effettuata utilizzando degli strumenti più o meno complessi, consente di analizzare le prestazioni, determinare le criticità del sistema, confrontare più sistemi tra loro, progettare sistemi “ipotetici” e ottimizzare sistemi preesistenti. Argomento della mia tesi è proprio la simulazione di una rete che utilizza il protocollo RIP effettuata utilizzando il programma Cisco Packet Tracer. Nel primo capitolo presenterò il programma di simulazione Cisco Packet Tracer effettuando una breve introduzione e mostrando un esempio di configurazione di una piccola rete. Nel secondo capitolo invece introdurrò brevemente il routing dinamico (illustrando le principali differenze con il routing statico) e in particolare il protocollo RIP con vantaggi, svantaggi e principali problematiche. Nel terzo capitolo effettuerò l’analisi di una ipotetica rete non troppo complessa per mostrare il semplice funzionamento del protocollo adottato, prestazioni e capacità di reazione a fronte di guasti e/o cambiamenti della rete. 4 Capitolo 1: Cisco Packet Tracer Cisco Packet Tracer è un software usato per scopi didattici al fine di simulare apparati di rete CISCO. E’ un software molto potente in quanto consente: di creare topologie di rete composte da apparati proprietari di Cisco o semplicemente apparati generici; di emulare la CLI (command line interface) e parte delle funzioni del sistema operativo Cisco IOS; di configurare gli apparati di rete mediante una semplice interfaccia grafica oppure mediante command line e di verificarne il corretto funzionamento analizzando particolari scenari di traffico; di ispezionare a run-time lo stato di ciascun apparecchio e il formato di ogni pacchetto inviato e/o ricevuto sulla rete realizzata in ambiente simulato. Come si evince dal nome, il programma è stato sviluppato e reso disponibile da Cisco, azienda leader mondiale. “Oltre 30000 dipendenti e un mercato di circa 140 miliardi di dollari: sono questi i dati che indicavano il valore di Cisco nell’ottobre 2006, una società che domina il mercato dei router e non solo. Nel corso degli anni, l’azienda si è allargata vendendo prodotti e servizi di sicurezza, wireless e Voice over IP. Un vero e proprio colosso”. 5 1.1 Interfaccia, un primo sguardo L’interfaccia è molto intuitiva, come si può notare dall’immagine in alto, il software è dotato di una Menu Bar e di una Main Tool Bar che consentono di effettuare le consuete operazioni di apertura/salvataggio di progetti, di gestire le molteplici opzioni, di cambiare la view, di configurare le estensioni disponibili. Ovviamente è presente anche un Help completo per aiutare l’utente alle prime armi. Nella parte centrale troviamo un Workspace in cui rappresentare la rete sia da un punto di vista logico, sia da un punto di vista fisico (Logical/Physical Workspace Bar). L’inserimento delle apparecchiature e dei collegamenti tra esse avviene tramite drag and drop selezionandole dai due riquadri in basso a sinistra: nel primo si sceglie la tipologia di dispositivo (Device-Type Selection Box), nel secondo invece si sceglie il dispositivo specifico (Device-Specific Selection Box). Infine ci sono gli strumenti per l’analisi a tempo d’esecuzione di una topologia creata (Realtime/Simulation Bar). 6 1.2 Un semplice scenario Per capire in pochi passi il funzionamento, realizziamo una semplice rete composta da due end devices e da un router. Il programma consente di definire tutte le interfacce di rete che si desidera, di assegnare i parametri di rete e di impostare le informazioni di routing. Ho collegato il PC0 e il PC1 al Router0, rispettivamente sulla FastEthernet0/0 e FastEthernet0/1 tramite un cavo cross-over (Copper Cross-Over). Come possiamo notare dalla presenza dei pallini rossi, le connessioni non sono funzionanti in quanto non sono ancora stati configurati i parametri di rete (un’altra causa di malfunzionamento potrebbe essere, per esempio, l’errata scelta del cavo da utilizzare per le connessioni). 1.2.1 Configurazione Router Cliccando su Router0 si apre una finestra in cui si possono configurare tutti i parametri del router. Questo è rappresentato fisicamente tramite un’immagine (è possibile effettuare uno Zoom In e Zoom Out) a cui sono già collegate due interfacce FastEthernet (che rappresentano i collegamenti effettuati in precedenza nel Workspace). Si può accendere e spegnere il router semplicemente cliccando sul bottone posto sul lato destro oppure aggiungere nuovi moduli trascinandoli dalla parte sinistra e inserendoli all’interno dello slot desiderato. 7 Cliccando in alto su CLI entriamo nella finestra di comando del router in cui è presente la System Configuration Dialog (insieme ad altre informazioni). Il router risulta acceso e ci chiede se vogliamo continuare con la configurazione; ci sono due strade da seguire: possiamo dire “no” e dare i comandi a mano oppure, cliccando su Config, possiamo utilizzare una semplice interfaccia grafica. Poiché siamo alle prime armi scegliamo la seconda strada. Iniziamo la configurazione modificando il Display Name e l’Hostname in Napoli; adesso possiamo notare una delle caratteristiche che rende Packet Tracer un ottimo strumento di simulazione per studenti: ciò che viene effettuato tramite l’interfaccia grafica viene immediatamente tradotto in uno o più comandi nella CLI e questo fa si che l’apprendimento del linguaggio di configurazione degli apparati Cisco diventi molto semplice. Assegniamo ora un indirizzo IP ad entrambe le interfacce del router Napoli e portiamole sullo stato ON: 8 FastEthernet0/0 IP Address = 192.168.0.1 - Subnet Mask = 255.255.255.0 FastEthernet0/1 IP Address = 172.16.0.1 - Subnet Mask = 255.255.0.0 (Da notare Equivalent IOS Commands in cui vengono mostrati i comandi eseguiti). 9 Possiamo controllare la configurazione delle interfacce semplicemente inserendo il comando Napoli# show ip interface brief. Il risultato è il seguente: Una volta configurate e attivate le interfacce del router le connessioni passano dallo stato DOWN allo stato UP (i cerchietti agli estremi delle connessioni sono diventati verdi). 1.2.2 Configurazione PC Passaggio successivo è la configurazione dei due PC dell’esempio. Cliccando su PC0 (per PC1 la procedura è equivalente) si apre una finestra dove il pc è rappresentato fisicamente da un’immagine (è possibile effettuare uno Zoom In e Zoom Out) e dove è possibile aggiungere moduli (così come nella finestra del router prima descritto). Cliccando su Config si possono gestire manualmente le impostazioni del pc in maniera molto efficace, cliccando invece su Desktop, Packet Tracer ci mostra un’interfaccia interattiva che consente in maniera semplice di impostare i parametri di rete, di passare al Command Prompt e molto altro ancora. Clicchiamo quindi su Desktop e poi su IP Configuration, scegliamo una configurazione Static (e non tramite DHCP) e impostiamo i seguenti parametri: 10 PC0 IP Address = 192.168.0.2 – Subnet Mask = 255.255.255.0 – Default Gateway = 192.168.0.1; PC1 IP Address = 172.16.0.2 – Subnet Mask = 255.255.255.0 – Default Gateway = 172.16.0.1; Una volta terminata la configurazione sia del router sia dei pc, si passa alla fase di test: uno dei modi per verificare il corretto funzionamento della rete è quello di utilizzare il semplice programma Ping. “Ping (Packet Internet Grouper) è un'utility di amministrazione per reti di computer usata per misurare il tempo, espresso in millisecondi, impiegato da uno o più pacchetti ICMP a raggiungere un dispositivo di rete (attraverso una qualsiasi rete informatica basata su IP) e a ritornare indietro all'origine. È prettamente utilizzato per verificare la presenza e la raggiungibilità di un altro computer connesso in rete e per misurare le latenze di trasmissione di rete”. Proviamo per esempio a “pingare” da PC0 a PC1. Apriamo la finestra di configurazione del PC1 (cliccando su di esso) e clicchiamo prima su Desktop e successivamente su Command Prompt. A questo punto utilizziamo il seguente comando per effettuare il test: “ping 192.168.0.2”. Il risultato è il seguente: Come possiamo vedere sono stati inviati 4 pacchetti, ma solo 3 hanno ricevuto risposta da PC0: il collegamento è attivo e funzionante (nonostante il 25% di pacchetti persi). 11 Capitolo 2: Routing Dinamico Dopo aver creato il semplice esperimento del capitolo precedente, il nostro scopo è quello di aggirare il suo principale difetto: il routing statico. Le tabelle compilate “a mano” (solitamente dall’amministratore della rete) consentono di ottenere una certa semplicità ma al contempo presentano limitazioni e problemi. Il routing statico infatti può essere utilizzato solo in piccole reti (sarebbe troppo complicato e oneroso compilare a mano le tabelle di centinaia di router con migliaia di rotte possibili) e non garantisce alcuna affidabilità nel caso di modifiche nella topologia della rete: la caduta di un solo collegamento potrebbe portare al malfunzionamento dell’intera rete. Infatti le rotte che presentano collegamenti “down” non vengono rimpiazzate automaticamente da rotte alternative, ma bisogna attendere la riconfigurazione della rete da parte dell’amministratore che ovviamente non potrà mai essere tempestiva. Ciò rende preferibile l’uso di differenti protocolli che implementano un routing dinamico: i router della rete collaborano tra loro, inviandosi informazioni sulla loro posizione, in modo tale da avere una tabella sempre aggiornata e rotte efficienti per indirizzare i pacchetti (anche a valle di malfunzionamenti). Esamineremo nel dettaglio un tipo di routing definito Distance Vector. 12 2.1 Distance Vector Un algoritmo a vettore distanza (DV, distance-vector) è iterativo, asincrono e distribuito: iterativo nel senso che l’algoritmo è operativo fino a quando non c’è scambio di informazioni tra vicini, distribuito nel senso che ogni nodo non conosce l’intera topologia di rete ma riceve solo informazioni parziali che elabora, restituendo poi un risultato, asincrono nel senso che non richiede che tutti i nodi operino con la stessa tempistica degli altri. Fondamentale per l’esecuzione dell’algoritmo è la formula di Bellman-Ford: dx(y) = minv{ c(x,v) + dv(y) } dove minv riguarda tutti i vicini di x, e dx(y) è il costo del percorso a costo minimo dal nodo x al nodo y. La formula considera il fatto che per arrivare da un nodo origine A ad un nodo destinazione B non bisogna per forza scegliere come next hop il nodo X che presenta costo minimo. 2.1.1 Algoritmo Con l’algoritmo DV, ogni nodo x deve conservare solo le seguenti informazioni: il costo c(x,v) da x a v, per ogni vicino v; il vettore distanza di x così definito, Dx = [Dx(y) : y in N], contenente la stima presso x del costo verso tutte le destinazioni y in N; il vettore distanza di ogni suo vicino, ovvero Dv = [Dv(y) : y in N], per ogni vicino v di x; L’algoritmo eseguito da ciascun nodo x è il seguente: Inizializzazione: per tutte le destinazioni y in N: Dx(y) = c(x,y) /*se y non è adiacente, allora c(x,y) = */ per ciascun vicino w: Dw(y) = per tutte le destinazioni y in N; per ciascun vicino w: invia il vettore distanza Dx = [Dx(y) : y in N]; 13 ciclo attendi (finché vedi cambiare il costo di un collegamento verso qualche vicino w o finché ricevi un vettore distanza da qualche vicino w) per ogni y in N: Dx(y) = minv{ c(x,v) + Dv(y) } Se Dx(y) è cambiato per qualche destinazione y Invia il vettore distanza Dx = { Dx(y) : y in N } a tutti i vicini; continua Come possiamo vedere dall’algoritmo, ogni nodo aggiorna il proprio DV solo se è cambiato il costo di un collegamento diretto con qualche vicino oppure se ha ricevuto un DV aggiornato da uno di questi. Quindi, qualora ci fosse un guasto in uno o più collegamenti tra i router, l’algoritmo riprenderà la sua esecuzione aggiornando automaticamente le tabelle d’instradamento dei router con una velocità che è fortemente dipendente dalla topologia di rete (ricordo che questo è uno dei vantaggi del routing dinamico rispetto al routing statico). 2.1.2 Instradamento ciclico e inversione avvelenata Questo tipo di algoritmo presenta però un problema chiamato instradamento ciclico: per esempio dati tre router x, y, z, con x collegato a y, y collegato a z, z collegato a x, al fine di giungere a x (dopo la modifica del costo di qualche link), y fa passare il percorso per z e z lo fa passare per y. I router ad ogni iterazione modificheranno il proprio DV e la propria tabella di routing fino a giungere in uno stato di quiete. Il numero di iterazioni però può essere molto elevato in reti complesse, e per questo motivo il problema appena descritto viene anche chiamato conteggio all’infinito. Un modo per risolvere questo problema è aggiungere l’inversione avvelenata (poisoned reverse). “L’idea è semplice: se z instrada tramite y per giungere alla destinazione x, allora z avvertirà y che la sua distanza verso x è infinita, anche se in realtà non è così, e continuerà a dire questa piccola bugia finché instrada verso x passando per y. Dato che y 14 crede che z non abbia un percorso verso x, non tenterà mai d’instradare verso x passando per z, per tutto il tempo in cui z continua a instradare verso x passando per y”. L’inversione avvelenata riesce a risolvere solo in parte il problema: qualora ci fossero instradamenti ciclici tra router non adiacenti, questi non verrebbero rilevati dalla tecnica dell’inversione avvelenata. 2.2 Il protocollo RIP Il protocollo RIP (Routing Information Protocol) è stato uno dei protocolli più usati in internet e che ancora oggi è ampiamente utilizzato (anche se viene generalmente sostituito da protocolli di routing Link State come OSPF-Open Shortest Path First). RIP è un protocollo a vettore distanza che utilizza il conteggio degli hop (hop count rappresenta il numero dei nodi attraversati dal pacchetto per arrivare dal nodo origine al nodo destinazione) per stabilire il costo di ogni percorso: è come se ogni collegamento avesse costo unitario. 2.2.1 Funzionamento Il massimo numero di hop consentiti è 15. Ogni router invia il proprio DV ai suoi vicini ogni 30 secondi e conserva in memoria una tabella d’instradamento che contiene, per ogni nodo destinazione, il nodo successivo e il numero di hop per arrivare a destinazione. Inoltre, nel caso in cui non ci sia nessun invio di vettori distanza per 180 secondi da parte di un vicino, questo verrà considerato automaticamente irraggiungibile e il router diffonderà questa informazione a tutti i suoi vicini ancora raggiungibili. Il protocollo RIP è implementato nel livello applicativo e scambia informazioni utilizzando UDP come protocollo di trasporto (porta riservata 520). Il fatto di lavorare a livello applicativo (essendo un protocollo di rete) è dipeso da una più facile implementazione: di fatto l’utente non è conscio di ciò che sta facendo il protocollo. 2.2.2 Versioni Esistono diverse versioni del protocollo: RIPv1: usa il routing "classful". Gli aggiornamenti delle tabelle di routing non 15 contengono la maschera di sottorete rendendo impossibile la creazione di sottoreti di dimensione diversa all'interno della stessa rete. Non viene supportata nessuna forma di autenticazione, lasciando RIPv1 vulnerabile ad attacchi. RIPv2: include il trasporto delle informazioni sulla maschera di sottorete, supportando così il Classless Inter Domain Routing, CIDR. Per garantire la sicurezza degli aggiornamenti sono disponibili 2 metodi: autenticazione semplice con testo in chiaro e Md5 (un algoritmo crittografico di Hashing). Per mantenere la compatibilità all'indietro il limite di hop count rimane 15. 2.2.3 RIPng: una estensione del protocollo originale RIPv1 per supportare IPv6. Svantaggi Sebbene sia di facile implementazione, il protocollo RIP presenta i seguenti problemi: Può essere usato solo per piccole reti in quanto il numero massimo di hop è 15. Genera una gran quantità di traffico poiché invia informazioni ogni 30 secondi (anche quando non sarebbe necessario). Si verifica spesso il problema definito “conteggio all’infinito”, descritto nel paragrafo precedente. 16 Capitolo 3: Rete con protocollo RIP In questo capitolo creerò una rete con 4 PC (end point) e 4 router, collegati come mostrato in figura, utilizzando il protocollo RIP versione 2. 3.1 Configurazione delle macchine Per la configurazione dei PC utilizzerò l’interfaccia “IP Configuration” (che si trova nella finestra Desktop), per la configurazione dei router utilizzerò (diversamente dal primo capitolo) la CLI (Command Line Interface). 3.1.1 PC N Il PC N è collegato al RouterN tramite cavo Cross-Over sull’interfaccia FastEthernet0/0 e lo configuriamo (staticamente) con i seguenti parametri: IP Address: 192.168.N.2 Subnet Mask: 255.255.255.0 17 Default Gateway: 192.168.N.1 Dove N assume valore 1, 2, 3, 4 a seconda del PC considerato. 3.1.2 Router 1 Al Router1 è stato aggiunto il modulo WIC-2T che comprende le interfacce Serial0/0/0 e Serial0/0/1 (l’operazione di aggiunta dei moduli deve avvenire a router spento). Il Router1 è collegato al PC1 tramite cavo Cross-Over sull’interfaccia FastEthernet0/0, al Router2 tramite cavo Seriale sull’interfaccia Serial0/0/0, al Router4 tramite cavo Seriale sull’interfaccia Serial0/0/1. Entro nella CLI e scrivo i seguenti comandi per configurare adeguatamente le interfacce del router e per impostare il protocollo RIP come protocollo di routing dinamico: 3.1.3 Router 2 Al Router2 è stato aggiunto il modulo WIC-2T che comprende le interfacce Serial0/0/0 e Serial0/0/1 (l’operazione di aggiunta dei moduli deve avvenire a router spento). Il Router2 è collegato al PC2 tramite cavo Cross-Over sull’interfaccia FastEthernet0/0, al Router1 tramite cavo Seriale sull’interfaccia Serial0/0/0, al Router4 tramite cavo Seriale 18 sull’interfaccia Serial0/0/1. Entro nella CLI e scrivo i seguenti comandi per configurare adeguatamente le interfacce del router e per impostare il protocollo RIP come protocollo di routing dinamico: 3.1.4 Router 3 Al Router3 è stato aggiunto il modulo WIC-2T che comprende le interfacce Serial0/0/0 e Serial0/0/1 (l’operazione di aggiunta dei moduli deve avvenire a router spento). Il Router3 è collegato al PC3 tramite cavo Cross-Over sull’interfaccia FastEthernet0/0, al Router4 tramite cavo Seriale sull’interfaccia Serial0/0/0. Entro nella CLI e scrivo i seguenti comandi per configurare adeguatamente le interfacce del router e per impostare il protocollo RIP come protocollo di routing dinamico: 19 3.1.5 Router 4 Il Router4 è un router generico a cui sono state aggiunte 3 interfacce seriali e una FastEthernet (l’operazione di aggiunta dei moduli deve avvenire a router spento). Il Router4 è collegato al PC4 tramite cavo Cross-Over sull’interfaccia FastEthernet9/0, al Router1 tramite cavo Seriale sull’interfaccia Serial6/0, al Router2 tramite cavo Seriale sull’interfaccia Serial7/0, al Router3 tramite cavo Seriale sull’interfaccia Serial8/0. Entro nella CLI e scrivo i seguenti comandi per configurare adeguatamente le interfacce del router e per impostare il protocollo RIP come protocollo di routing dinamico: 20 3.2 Tabelle di routing Prima di impostare RIPv2 come protocollo di routing, possiamo notare che i router non conoscono le rotte verso ogni sottorete della topologia, infatti nelle tabelle di instradamento sono presenti solo le reti direttamente connesse (C - connected) al router in questione (comando utilizzato “show ip route”). 21 Nella figura precedente ho preso in esempio la Routing Table del Router1. Dopo aver configurato il protocollo RIP in tutti i router della rete e aver atteso che l’algoritmo Distance Vector sia arrivato in uno stato di “quiete”, possiamo vedere come la tabella d’instradamento del Router1 (e anche quella degli altri router) sia cambiata: sono state aggiunte le rotte per arrivare alle restanti sottoreti della topologia. Le nuove rotte sono di tipo R (RIP) e contengono informazioni sulla rete di destinazione, sulla porta in cui instradare il pacchetto per raggiungere quella destinazione, l’indirizzo ip del Next Hop e il numero di hop necessari per arrivare a destinazione. Per esempio, se il Router1 dovesse instradare un pacchetto verso il PC3 (ip address 192.168.3.2), dovrebbe inviarlo dalla porta Serial0/0/1 verso l’interfaccia con indirizzo ip 200.100.50.6, il numero di hop necessari per arrivare a destinazione in questo caso è 2. 3.3 Test di funzionamento Per verificare il corretto funzionamento della rete appena creata e configurata, possiamo utilizzare i due comandi “ping” e “tracert” seguiti dall’indirizzo IP di destinazione. 3.3.1 Ping Come mostrato nel capitolo 1, ci spostiamo nel Command Prompt del PC1 e proviamo a “pingare” tutti i PC della rete (ovvero le interfacce con indirizzo IP 192.168.2.2, 192.168.3.2, 192.168.4.2). I risultati sono i seguenti: 22 Come possiamo vedere dai risultati il collegamento tra il PC1 e i restanti PC è perfettamente funzionante al meno (in questo preciso esempio) del 25% di pacchetti persi. Per brevità eviterò di mostrare i test effettuati sui rimanenti end-devices che risultano essere correttamente collegati e configurati. 3.3.2 Traceroute Ora non ci resta che controllare se effettivamente i pacchetti seguono il percorso a costo minimo: possiamo effettuare questo test utilizzando il comando “tracert” ovvero traceroute. “Traceroute è un’applicazione che invia un pacchetto al destinatario di cui si 23 vuole ricavare il percorso di traceroute con il campo TTL impostato ad 1. Il primo router che lo riceverà, constatando che il campo TTL ha raggiunto lo 0, invierà un errore al mittente (ICMP Time Exceeded). L'applicazione memorizzerà l'indirizzo IP del primo router, quindi invierà un nuovo pacchetto con TTL impostato a 2. L'operazione verrà ripetuta finché il pacchetto non sarà arrivato al destinatario, che invierà un ICMP Echo Reply. Alla fine l'applicazione avrà ottenuto la lista degli indirizzi IP dei router su cui hanno transitato i pacchetti.” Sempre dal Command Prompt del PC1 proviamo a richiedere la traceroute verso tutti i PC della rete. I risultati sono i seguenti: Per esempio vediamo che il pacchetto verso il PC3 (192.168.3.2) passa prima attraverso il Router1 poi attraverso il Router4 e infine attraverso il Router3 per giungere correttamente al PC3. I router della rete instradano effettivamente i pacchetti sul percorso a costo minimo (nel nostro caso il percorso a costo minimo è anche il più breve). 24 Possiamo effettuare la stessa operazione di controllo utilizzando l’interfaccia di simulazione fornitaci dal programma Cisco Packet Tracer. Per prima cosa bisogna uscire dalla modalità Realtime e bisogna passare alla modalià Simulation (in basso a destra nel Workspace). Nel pannello di simulazione, poiché siamo interessati solo agli eventi ICMP, clicchiamo su Edit Filters e scegliamo ICMP. Premiamo il tasto “P”, operazione che ci permettere di aggiungere un Simple PDU, e clicchiamo prima sul PC1 (sorgente) e successivamente sul PC3 (destinazione). La scelta non è casuale e serve per replicare l’esempio fatto precedentemente con l’istruzione a linea di comando “tracert”. Premendo il bottone “Auto Capture / Play” partirà un’animazione (regolabile in velocità) dell’invio del pacchetto e successiva risposta. Sempre nel Simulation Panel vengono mostrate in successione tutte le fasi dell’operazione appena effettuata. 25 L’immagine ci conferma quanto visto in precedenza: il pacchetto passa attraverso il Router1, Router4, Router3 per giungere infine al PC3. Ovviamente, poiché si tratta di un Ping, il pacchetto effettuerà anche il percorso a ritroso (tutta l’operazione è avvenuta in 0,008 secondi). 3.4 Comportamento in caso di Link Fail Proviamo adesso a esaminare il comportamento della rete in caso di malfunzionamento di una sottorete: eliminiamo il collegamento che sussiste tra il Router1 e il Router4 (il link fail potrebbe dipendere dalla rottura del cavo che collega i due router o dalla disabilitazione di una delle interfacce di rete). 3.4.1 Tabelle di routing Con la caduta del collegamento tra il Router1 e il Router4, grazie al protocollo di routing dinamico, notiamo un auto-aggiornamento delle tabelle di instradamento. Nello specifico sono cambiate quella del Router1 e Router4: 26 Ci accorgiamo in particolar modo che dal Router1 il costo per giungere alla rete 192.168.3.0 è passato da 2 a 3. (Ma anche che dal Router4 il costo per giungere alla rete 192.168.1.0 è passato da 1 a 2). 3.4.2 Test di funzionamento Proviamo nuovamente a “pingare” dal PC1 il PC3. Quattro pacchetti inviati e quattro pacchetti ricevuti senza errori. 27 Dopo esserci assicurati che la rete continua a funzionare correttamente, proviamo a vedere qual è il “nuovo percorso” intrapreso dal pacchetto utilizzando il comando “tracert”. Il percorso che il pacchetto segue per arrivare al PC3 (192.168.3.2) è cambiato rispetto a prima: si è passati da questa rotta “PC1 – Router1 – Router4 – Router3 – PC3” a quest’altra “PC1 – Router1 – Router2 – Router4 – Router3 – PC3”. Se proviamo a inviare un pacchetto, utilizzando l’interfaccia di simulazione del software (così come fatto in precedenza), otteniamo il seguente risultato. Possiamo quindi confermare quanto detto in precedenza. Le mappe “auto-aggiornanti” hanno permesso di inviare lo stesso il pacchetto anche in presenza di malfunzionamenti, dovendo “pagare” solo un hop in più rispetto alla topologia precedente al “guasto”. 28 Conclusioni Siamo riusciti in maniera semplice e veloce a comprendere il protocollo RIP. Il principale vantaggio di questo protocollo è la semplicità, ma al tempo stesso presenta forti limitazioni, per esempio può essere usato solo per piccole reti (ricordiamo infatti che il numero massimo di hop consentiti è 15). RIP, sebbene sia ancora molto diffuso, è spesso sostituito da protocolli di rete di tipo Link State che possiedono convergenza e scalabilità qualitativamente migliori. Cisco Packet Tracer è un software completo, adatto a tutti gli studenti intenzionati a migliorare le proprie conoscenze, ma anche a professionisti che necessitano di effettuare le opportune simulazioni. Il software mi ha consentito di mettere in pratica tutti gli aspetti teorici studiati nel corso dello sviluppo di questo elaborato. 29 Bibliografia [1] James F. Kurose, Keith W. Ross, “Reti di calcolatori e Internet, Un approccio topdown”, Mondadori, 2008. [2] Cisco Packet Tracer - Scenario 1, https://www.youtube.com/watch?v=0-0u4_apHjM, 17-04-2015. [3] Cisco Packet Tracer RIP v2, https://www.youtube.com/watch?v=sZDSWozZPsM&feature=youtu.be, 13-04-2015. [4] RFC 1058 – Routing Information Protocol, Giugno 1988. [5] RFC 2453 – RIP Versione 2, Novembre 1998. 30