Esercizi di Routing - the Netgroup at Politecnico di Torino
Transcript
Esercizi di Routing - the Netgroup at Politecnico di Torino
Politecnico di Torino Esercizi di Routing Statico IP e Aggregazione Fulvio Risso 25 ottobre 2011 Indice I. Metodologia 4 1. Routing statico e aggregazione di route 1.1. Concetti principali . . . . . . . . . . . . . . . . . . . . . 1.1.1. Routing table . . . . . . . . . . . . . . . . . . . . 1.1.2. Reti IP direttamente connesse . . . . . . . . . . . 1.1.3. Reti IP remote . . . . . . . . . . . . . . . . . . . 1.1.4. Costi . . . . . . . . . . . . . . . . . . . . . . . . . 1.1.5. Route aggregate . . . . . . . . . . . . . . . . . . 1.1.6. Route maggiormente specifiche . . . . . . . . . . 1.1.7. Route di default . . . . . . . . . . . . . . . . . . 1.1.8. Route a costi diversi . . . . . . . . . . . . . . . . 1.2. Procedura per la definizione della routing table . . . . . 1.2.1. Lista e tipologia delle reti IP . . . . . . . . . . . 1.2.2. Definizione dell’albero di instradamento . . . . . 1.2.3. Determinazione della routing table . . . . . . . . 1.2.4. Determinazione di possibili aggregazioni di route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . II. Esercizi 2. Esercizi 2.1. Esercizio 2.2. Esercizio 2.3. Esercizio 2.4. Esercizio 2.5. Esercizio 2.6. Esercizio 2.7. Esercizio 2.8. Esercizio 2.9. Esercizio 2.10. Esercizio 2.11. Esercizio 2.12. Esercizio 2.13. Esercizio 2.14. Esercizio 5 5 5 6 6 7 8 10 12 12 13 14 15 15 16 18 n. n. n. n. n. n. n. n. n. n. n. n. n. n. 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 11 12 13 14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 19 19 20 20 21 22 23 24 25 26 27 28 29 30 III. Soluzioni 31 3. Soluzioni 3.1. Soluzione per l’esercizio n. 1 . . . . . . . . . . . . . . . . . . . . 3.2. Soluzione per l’esercizio n. 2 . . . . . . . . . . . . . . . . . . . . 3.3. Soluzione per l’esercizio n. 3 . . . . . . . . . . . . . . . . . . . . 3.3.1. Route con spazio di indirizzamento equivalente . . . . . 3.3.2. Route con massimizzazione dell’aggregazione . . . . . . 3.4. Soluzione per l’esercizio n. 4 . . . . . . . . . . . . . . . . . . . . 3.4.1. Route con spazio di indirizzamento equivalente . . . . . 3.4.2. Route con massimizzazione dell’aggregazione . . . . . . 3.5. Soluzione per l’esercizio n. 5 . . . . . . . . . . . . . . . . . . . . 3.5.1. Route con spazio di indirizzamento equivalente . . . . . 3.5.2. Route con massimizzazione dell’aggregazione . . . . . . 3.6. Soluzione per l’esercizio n. 6 . . . . . . . . . . . . . . . . . . . . 3.7. Soluzione per l’esercizio n. 7 . . . . . . . . . . . . . . . . . . . . 3.7.1. Indirizzamento volto a massimizzare l’aggregazione delle 3.7.2. Indirizzamento volto a minimizzare gli indirizzi allocati 3.8. Soluzione per l’esercizio n. 8 . . . . . . . . . . . . . . . . . . . . 3.9. Soluzione per l’esercizio n. 9 . . . . . . . . . . . . . . . . . . . . 3.10. Soluzione per l’esercizio n. 10 . . . . . . . . . . . . . . . . . . . 3.11. Soluzione per l’esercizio n. 11 . . . . . . . . . . . . . . . . . . . 3.12. Soluzione per l’esercizio n. 12 . . . . . . . . . . . . . . . . . . . 3.13. Soluzione per l’esercizio n. 13 . . . . . . . . . . . . . . . . . . . 3.14. Soluzione per l’esercizio n. 14 . . . . . . . . . . . . . . . . . . . 3.14.1. Caso 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.14.2. Caso 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.14.3. Caso 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.14.4. LAN 1 realizzata in tecnologia switching . . . . . . . . . 32 32 34 35 35 36 37 37 37 38 38 38 39 40 40 41 42 44 46 49 53 56 58 58 58 58 58 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . route su . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . R1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Parte I. Metodologia 4 1. Routing statico e aggregazione di route La difficoltà maggiore di questa raccolta di esercizi consiste nella definizione del routing all’interno di una rete IP. Si assume che la rete sia stata precedentemente configurata a livello IP, ossia che il piano di indirizzamento sia stato definito e che le varie entità presenti sulla rete (hosts, routers) siano correttamente configurate a livello di indirizzo/netmask. Si ricorda che i concetti evidenziati in questi esercizi non dipendono dalla tipologia di routing implementato nella rete (statico o dinamico) in quanto, a parità di topologia e di costi, tutti quanti gli algoritmi convergeranno sullo stesso risultato. La differenza risiede nel fatto che il routing statico deve essere configurato completamente a mano su ogni router e non è in grado di adattarsi autonomamente a variazioni della topologia, mentre il routing dinamico agisce in autonomia e si adatta ad eventuali variazioni topologiche della rete. Pertanto i concetti presentati hanno validità assolutamente generale, indipendentemente da come il routing sia stato calcolato. Per aiutare a risolvere gli esercizi presentati in questa raccolta, si riassumono prima i concetti fondamentali per la definizione delle tabelle di routing, quindi si propone una metodologia per la soluzione di questi esercizi. 1.1. Concetti principali 1.1.1. Routing table La routing table è una tabella locale ad un router che in linea di principio elenca tutte le destinazioni presenti in una rete. Nel mondo IP le destinazioni sono tutte le reti IP esistenti nella topologia in esame. Ad esempio, nella topologia presentata nella figura seguente sono presenti 5 reti IP, che corrispondono alle 5 righe presenti nella routing table. Si noti che siccome il numero di righe presenti nella routing table dipende dal numero di destinazioni IP presenti nella topologia in esame, è pertanto uguale per tutti i router appartenenti a quella topologia. Ovviamente, essendo le destinazioni coincidenti con le reti IP presenti, tutti i router avranno la stessa lista di destinazioni raggiungibili, mentre cambieranno i percorsi fatti per raggiungere quelle destinazioni. Per ogni destinazione presente nella routing table, vi sono tipicamente le seguenti informazioni: • Tipologia di rete: indica la modalità con il quale il router ha “imparato” quella rete. Adottando la convenzione utilizzata dai routers Cisco, reti direttamente connesse sono indicate dalla lettera “C”, reti conosciute attraverso il routing statico sono indicate con la lettera “S”, e cosı̀ via. • Rete/Netmask: indica l’indirizzo di rete e la netmask associata, ossia l’address range (la “destinazione”) oggetto di quella route. • Next Hop: indirizzo dell’interfaccia che viene utilizzata per inoltrare il pacchetto verso la destinazione. Il significato di questo campo cambia a seconda che la rete IP sia direttamente connessa o meno e verrà pertanto dettagliato in seguito. 5 • Costo: esprime, attraverso un valore numerico, la distanza di quella rete rispetto al router in esame. Ad esempio, una rete raggiungibile a costo 4 è più distante di una rete raggiungibile a costo 2. Maggiori dettagli sul costo verranno forniti nella sezione 1.1.4. Un esempio di routing table può essere visto in figura. Type C C S S S R1 .1 .129 Routing Network 10.0.2.0/25 10.0.2.128/30 10.0.2.132/30 10.0.0.0/24 10.0.1.0/24 table NextHop 10.0.2.1 10.0.2.129 10.0.2.130 10.0.2.130 10.0.2.130 Network 10.0.2.128/30 Cost 0 0 1 2 2 R2 Network 10.0.2.132/30 .130 Network 10.0.2.0/25 Network 10.0.0.0/24 R3 Network 10.0.1.0/24 Mentre, a livello di numero di destinazioni presenti nella routing table non esistono differenze tra una rete IP direttamente connessa al router e le reti IP remote (raggiungibili attraverso altri routers), esistono alcune differenze relative a come sono ricavate le reti e come queste sono indicate nella routing table. 1.1.2. Reti IP direttamente connesse Le reti IP direttamente connesse sono quelle raggiungibili con l’instradamento diretto di IP. Ad esempio, le reti 10.0.2.0/25 e 10.0.2.128/30 per il router R1 della figura precedente sono direttamente connesse (ed evidenziate in giallo in figura). Si noti che le reti direttamente connesse non sono quelle fisicamente collegare al router in esame (ad es., tutte le reti Ethernet collegate al router), ma le reti IP raggiungibili in instradamento diretto. Si noti anche come su una LAN fisicamente connessa al router potrebbero esistere reti IP non direttamente raggiungibili. La conoscenza delle reti direttamente connesse da parte di un router è automatica ed è determinata dal fatto che il router ha una interfaccia appartenente a quella rete IP. Ad esempio, il router R1 della figura precedente inserirà automaticamente le reti 10.0.2.0/25 e 10.0.2.128/30 nella sua routing table, senza nessun intervento dell’amministratore dell’apparato e anche in assenza di routing dinamico. Nel caso delle reti IP direttamente connesse, il valore di next hop presente nella routing table identifica l’indirizzo dell’interfaccia del router locale che verrà utilizzata per raggiungere quella destinazione. Ad esempio, nella rete in figura il router R1 raggiungerà tutte le destinazioni 10.0.2.0/25 attraverso la sua interfaccia con indirizzo 10.0.2.1/25: il valore del campo next hop di quella route sarà pertanto 10.0.2.1. 1.1.3. Reti IP remote Le reti IP remote (ossia non direttamente connesse) sono quelle raggiungibili con l’instradamento indiretto di IP, ossia i pacchetti diretti a quelle destinazioni devono essere inviati ad un router che li farà proseguire verso quella destinazione. Ad esempio, le reti 10.0.0.0/24, 10.0.1.0/24 e 10.0.2.132/30 per il router R1 della figura precedente sono reti remote (ed evidenziate in verde in figura). Le reti IP remote non sono conosciute automaticamente dal router. Pertanto è necessaria una operazione esplicita di configurazione del router che può avvenire o attraverso l’amministratore di 6 rete (che configura una route statica per quella destinazione) oppure attraverso la configurazione di un protocollo di routing dinamico (che si incarica di comunicare automaticamente al router corrente l’elenco delle destinazioni remote). Solo a fronte di una di queste due azioni si vedranno le destinazioni remote comparire nella routing table. Ad esempio, le reti remote sono evidenziate in figura dalla lettera “S” nella corrispondente entry della routing table in quanto sono state impostate attraverso il routing statico. Per queste reti, il valore di next hop presente nella routing table identifica l’indirizzo dell’interfaccia del prossimo router che verrà utilizzata per raggiungere quella destinazione. Ad esempio, nella rete in figura il router R1 raggiungerà tutte le destinazioni 10.0.0.0/24 attraverso l’interfaccia di sinistra del router R2, che ha indirizzo 10.0.2.130/30: il valore del campo next hop di quella route sarà pertanto 10.0.2.130. La scelta di identificare come next hop l’interfaccia del prossimo router anzichè quella di uscita dal router corrente è determinato dal fatto che le due cose sarebbero equivalenti solamente nel caso di rete punto-punto. Infatti, dal disegno è evidente come un pacchetto che esca dall’interfaccia .129 di R1 non possa che essere ricevuto dall’interfaccia .130 di R2. Questo però non è vero nel caso di reti con capacità broadcast: ad esempio, un router R1 potrebbe generare due pacchetti in uscita da una sua interfaccia Ethernet, il primo destinato ad un router R2, il secondo destinato ad un router R3, ambedue collegati alla stessa rete Ethernet (e con indirizzi IP appartenenti alla stessa rete). Pertanto l’indicazione dell’interfacca di uscita non è sempre una indicazione sufficiente per determinare il prossimo passo verso la destinazione, mentre l’indicazione della prossima interfaccia di ingresso rende questa informazione non ambigua. Si noti infine che l’indirizzo del next hop deve sempre essere raggiungibile attraverso instradamento diretto dalla macchina IP in esame. Qualora questo non fosse verificato, lo studente ha sicuramente fatto un errore. 1.1.4. Costi Il costo di una rotta è necessario per privilegiare un percorso (a costo minore) rispetto ad un altro (a costo maggiore). In realtà, questa informazione è presente nella tabella di routing prevalentemente per debugging, ma non viene utilizzata dal router in quanto non saranno mai presenti route per la stessa destinazione a costo diverso (il processo di creazione della routing table seleziona un solo percorso verso ogni destinazione, che è il percorso migliore, e quindi le route alternative a costo superiore non verranno visualizzate). Il valore del costo di una route è, purtroppo, fortemente dipendente dal sistema operativo in uso. Ad esempio, alcuni sistemi operativi (ad es. Windows) assegnano costi > 0 sia alle route connesse che a quelle statiche; altri (ad es. Cisco IOS) assumono che sia le route connesse che quelle statiche abbiano costo 0. In aggiunta, alcuni (ad es. Windows) permettono una sola metrica di costo (un numero puro), mentre altri (ad es. Cisco IOS) gestiscono il costo come una coppia distanza amministrativa/metrica, dove il primo numero esprime la bontà del protocollo usato per imparare quella route (ad es. una route statica potrebbe essere considerata migliore di una route dinamica) mentre il secondo numero esprime il vero costo, fatto salvo che la distanza amministrativa ha la precedenza nella scelta della route migliore (ossia una route di costo 110/1 è sempre peggiore di una route a costo 1/12, ma una route 1/10 ha la precedenza su una route 1/12). Nei sistemi reali sia il costo delle route connesse che quello delle route statiche è fisso e stabilito a priori. Il primo non può nemmeno essere variato dall’amministratore, mentre sul secondo è possibile intervenire manualmente differenziando il costo di varie route1 . La ragione di questo costo preimposta1 In realtà ad esempio nel sistema Cisco IOS è possibile variare solamente la distanza amministrativa, ma non il costo vero e proprio. In questo caso è possibile definire una route statica con costo tale che viene prescelta solamente nel caso in cui un protocollo dinamico non apprenda una route per quella destinazione, lasciando cosı̀ la preferenza al 7 to nel caso delle route statiche sta nell’impossibilità, da parte dell’apparato, di conoscere l’effettiva distanza della rete da sè stesso e quindi il costo viene preimpostato ad un valore di default. In questa dispensa ci si astrarrà da ogni particolare dispositivo reale e si adotterà la seguente convenzione: • il costo è un numero singolo (non una coppia distanza amministrativa/costo) • ove non diveramente specificato, le route connesse hanno costo 0 (non modificabile), mentre quelle statiche hanno un costo che dipende dalla effettiva distanza rispetto al router in esame, ricavato sommando il costo di attraversamento dei link (e posto convenzionalmente pari a 1) verso la destinazione (ad esempio, la figura precedente mostra alcune route statiche a costo 1 e altre a costo 2). In ogni caso, il costo può essere variato nel momento in cui l’amministratore di rete abbia qualche necessità particolare. Si rammenta pertanto allo studente di controllare la convenzione in uso sul dispositivo reale per quanto riguarda i costi e procedere ai necessari adattamenti rispetto alla teoria presentata in questa dispensa. 1.1.5. Route aggregate Il modello di routing IP prevede che due o più route possano essere sostituite con una route aggregata equivalente. L’idea di base è che se una destinazione D1 si raggiunge attraverso un certo next hop NH1 e una destinazione D2 si raggiunge attraverso lo stesso next hop NH1, le destinazioni D1 e D2 possono essere “fuse” insieme in una destinazione equivalente D1-D2. Il vantaggio dell’aggregazione è che il numero di route nella routing table diminuisce, favorendo il lavoro dei router nelle operazioni di inoltro dei pacchetti IP verso le destinazioni. Esistono due condizioni per poter fondere insieme due (o più) route e sostituirle con una route aggregata equivalente: • (obbligatorio) le route in esame devono condividere lo stesso next hop; • (parzialmente obbligatorio) le route in esame devono essere aggregabili, ossia deve esistere un address range che inglobi esattamente gli address range originali. Le figura seguente presenta un esempio di aggregazione: le sei reti evidenziate in verde condividono lo stesso next hop per quanto riguarda il router R1 e pertanto possono essere potenzialmente aggregate. Tuttavia è necessario che sia rispettato anche il secondo requisito2 : gli spazi di indirizzamento sostitutivi devono essere equivalenti a quelli originali. A questo punto sarà possibile sostituire le due reti punto-punto con una route equivalente verso la rete 10.0.4.0/29, mentre le quattro reti /24 possono essere aggregate insieme da una rete 10.0.0.0/22. 2 protocollo dinamico ove possibile. Si vedrà in seguito che questo requisito può essere parzialmente rilassato. 8 Type C S S S S S S Routing Network 10.0.4.8/30 10.0.4.0/30 10.0.4.4/30 10.0.0.0/24 10.0.1.0/24 10.0.2.0/24 10.0.3.0/24 table NextHop 10.0.4.9 10.0.4.10 10.0.4.10 10.0.4.10 10.0.4.10 10.0.4.10 10.0.4.10 Cost 0 2 1 2 2 3 3 S 10.0.4.0/29 10.0.4.10 2 S 10.0.0.0/22 10.0.4.10 2 Reti con lo stesso next hop (reti potenzialmente aggregabili) R1 R2 10.0.4.8/30 .9 R3 10.0.4.4/30 10.0.4.0/30 R4 .10 Network 10.0.2.0/24 Network 10.0.0.0/24 Network 10.0.1.0/24 Network 10.0.3.0/24 Nell’operazione di aggregazione non è importante che le route abbiano lo stesso costo: il costo non viene infatti utilizzato dal router durante l’instradamento, ma viene utilizzato a priori per determinare la route da usare in presenza di route multiple per la stessa destinazione. Pertanto è possibile aggregare insieme route con costi diversi assegnando alla route aggregata un costo “convenzionale” (deciso dall’operatore), con l’unico vincolo che nel momento in cui ci siano rotte multiple per la stessa destinazione queste abbiano valori di costo tali da far prevalere la rotta che si ritiene essere migliore. Si noti come l’aggregazione della rete 10.0.4.0/29 sia stata resa possibile dalla particolare disposizione di quelle reti IP nella topologia in esame: se le reti fossero state assegnate in ordine crescente da sinistra a destra (10.0.4.0/30 tra R1 ed R2, 10.0.4.4/30 tra R3 ed R3, 10.0.4.8/30 tra R3 ed R4) non sarebbero state aggregabili. Infatti le reti remote 4.4/30 e 4.8/30 non possono essere aggregate in un singolo addressing range /29 (i range validi sono 4.0/29, che non comprende la rete 4.8/30, e 4.8/29, che non comprende la rete 4.4/30). Ne consegue che il modo con cui sono assegnati gli indirizzi all’interno della rete riveste un’importanza fondamentale nel permettere o meno l’aggregazione delle route. È interessante notare che il concetto di aggregazione cambia la semantica delle informazioni presenti in ogni route. Mentre la definizione originaria di route prevedeva che ogni route fosse associata ad una rete, a questo punto ogni route è associata ad un address range. In altre parole, l’indicazione network/netmask presente in ogni route non identifica più una rete IP, ma può identificare un insieme di reti IP aggregate, ossia un address range. In aggiunta, un indirizzo che nelle reti originali non era utilizzabile per un host (ad esempio perchè indirizzo di rete oppure broadcast) diventa invece apparentemente usabile nel momento in cui si considerino gli address range aggregati (si veda ad esempio l’indirizzo 10.0.1.255 che è un indirizzo broadcast nella rete originale in figura, mentre diventa apparentemente un indirizzo di un host nella rotta aggregata 10.0.0.0/22). Questo tuttavia non comporta particolari problemi perchè è vero che un eventuale pacchetto destinato a quel (presunto) host viene inoltrato verso la destinazione, ma è vero anche che questo pacchetto verrà prima o poi scartato da uno dei prossimi router che, causa la sua prossimità con la rete di destinazione, non può più gestire gli indirizzi aggregati e deve pertanto avere le rotte maggiormente precise, secondo il principio per cui l’aggregazione è minore muovendosi dal centro della rete alla periferia. Infine, si ricorda che l’aggregazione è inefficace per le reti direttamente connesse. In linea di principio sono route come le altre e potrebbero essere aggregate; in pratica, però, sono configurate in automatico dal router in quanto originate da reti IP direttamente connesse e non sono cancellabili dalla routing 9 table. Pertanto, a differenza delle route di altro tipo (ad esempio quelle statiche), queste route non possono essere sostituite da altre route a causa dell’impossibilità di cancellarle dalla routing table. 1.1.6. Route maggiormente specifiche Il routing IP supporta anche il concetto di route maggiormente specifica. In pratica è possibile definire due route i cui spazi di indirizzamento si sovrappongono parzialmente e in caso di match su ambedue le route ha la meglio quella maggiormente specifica, ossia quella che ha un prefix length maggiore (una route verso uno spazio di indirizzamento /30 è maggiormente specifica rispetto ad una route verso uno spazio /24). La figura seguente può aiutare a chiarire meglio il concetto. Type Network S 10.0.3.0/24 NextHop 10.0.4.1 Type Network S 10.0.0.0/22 R1 .1 NextHop 10.0.4.6 R2 10.0.4.0/30 .2 Cost 1 Cost 1 Network 10.0.2.0/24 R3 10.0.4.4/30 .5 Network 10.0.3.0/24 .6 Network 10.0.0.0/24 Network 10.0.1.0/24 Il router R2 in figura ha due route: una per l’address range 10.0.0.0/22 verso R3, e una per l’address range 10.0.3.0/24 verso R1. Si supponga che il router R2 abbia un pacchetto IP da inoltrare verso l’host 10.0.2.2: questo indirizzo di destinazione è compreso nell’address range 10.0.0.0/22 e pertanto verrà inviato verso destra. Si supponga ora che R2 debba inoltrare un pacchetto all’host 10.0.3.3: questo host appartiene sia all’address range della prima route (10.0.3.0/24) che a quello della seconda (10.0.0.0/22). Dal momento che le route possono riferirsi a percorsi diversi (infatti, la prima punta a sinistra, la seconda a destra) è necessario un criterio univoco per determinare la route vincente. Nel mondo IP, il criterio è che la route maggiormente specifica vince. In questo caso, pertanto, il pacchetto verrà inoltrato verso R1. Questo concetto apre la possibilità di effettuare aggregazioni di route in maniera molto più efficace rispetto a quanto enunciato in precedenza, in quanto l’aggregazione di route IP può in realtà coinvolgere un address range maggiore rispetto a quello risultante dalla pura unione delle route coinvolte. Anche in questo caso ci sia aiuta con una figura per chiarire meglio il concetto. 10 Type C S S S S S S Routing table (R1) Network NextHop 10.0.4.8/30 10.0.4.9 10.0.4.0/30 10.0.4.10 10.0.4.4/30 10.0.4.10 10.0.0.0/24 10.0.4.10 10.0.1.0/24 10.0.4.10 10.0.2.0/24 10.0.4.10 10.0.3.0/24 10.0.4.10 Cost 0 2 1 2 2 3 3 Routing table (R1) Type Network NextHop C 10.0.4.8/30 10.0.4.9 S 10.0.0.0/21 10.0.4.10 Cost 0 1 Reti con lo stesso next hop (reti potenzialmente aggregabili) R1 R2 10.0.4.8/30 .9 R3 10.0.4.4/30 10.0.4.0/30 R4 .10 Network 10.0.2.0/24 Network 10.0.0.0/24 Network 10.0.1.0/24 Network 10.0.3.0/24 In questo esempio è possibile aggregare sotto una stessa route addirittura tutte le destinazioni che hanno lo stesso next hop router (ed evidenziate in figura), ad esempio sostituendole con una singola route per l’address range 10.0.0.0/21. Questo spazio di indirizzamento comprende gli indirizzi da 10.0.0.0 a 10.0.7.255 e quindi raggruppa tutte le destinazioni che erano precedentemente conosciute attraverso le singole route. Questo address range comprenderà anche le destinazioni 10.0.4.8/30 che invece non fanno capo al next hop 10.0.4.10: questo non rappresenta un problema in quanto per queste destinazioni è comunque presente un route maggiormente specifica. È interessante notare come il nuovo address range 10.0.0.0/21 include in realtà altre destinazioni che non sarebbero comprese dalla semplice unione degli spazi di indirizzamento delle singole route, ossia il range di indirizzi che va da 10.0.4.12 a 10.0.7.255. Questo normalmente non rappresenta un problema perchè quelle destinazioni non sono comunque raggiungibili sulla rete e pertanto quello che solitamente succede è che un router inoltri pacchetti per quelle destinazioni in una certa direzione, ma prima o poi un router su quel percorso rileverà che quella destinazione non è raggiungibile e pertanto scarterà il pacchetto. Facendo riferimento all’esempio della figura precedente, si evidenziano i comportamenti della rete a fronte di tre ipotetici pacchetti: • Pacchetto destinato all’host 10.0.1.1: l’indirizzo di destinazione è compreso nella route 10.0.0.0/21 e pertanto viene correttamente inoltrato verso R2. • Pacchetto destinato all’host 10.0.4.10: l’indirizzo di destinazione è compreso sia nello spazio di indirizzamento della route 10.0.0.0/21, che in quello della route 10.0.4.8/30. In questo caso vince la route maggiormente specifica e pertanto il pacchetto viene correttamente inoltrato in instradamento diretto verso la destinazione 10.0.4.10. • Pacchetto destinato all’host 10.0.7.7: l’indirizzo di destinazione è compreso nella route 10.0.0.0/21 e pertanto viene inoltrato verso R2. Ovviamente quella destinazione non esiste nella rete, ma poco importa: il router R2 si accorgerà che quella rete non esiste e pertanto cancellerà il pacchetto dalla memoria senza inoltrarlo da nessuna altra parte. Ovviamente, il router R2 potrebbe non accorgersene (anche lui potrebbe avere una route che comprende anche l’indirizzo 10.0.7.7) ma probabilmente prima o poi qualche router se ne accorgerà e dropperà il pacchetto. 11 Uno dei problemi di che può sorgere utilizzando la tecnica di aggregazione con route più estese (spesso indicate come supernet routes) rispetto allo spazio di indirizzamento delle route originali è la creazione di loop nell’inoltro dei pacchetti. Si supponga ad esempio che R1 in figura abbia una route di default verso destra, mentre R2 abbia una route di default verso sinistra. In questo caso un pacchetto destinato all’host 20.2.2.2 non è compreso in nessuna route specifica e deve pertanto seguire la strada indicata nella default route. A questo punto, però, R1 invierà il pacchetto ad R2, che lo inoltrerà nuovamente ad R1 e cosı̀ via fino a quando il pacchetto verrà tolto dalla rete a causa dell’esaurimento del suo tempo di vita. In generale il problema dei loop può comparire quando si fa uso di supernets: è compito dell’amministatore di rete progettare il routing in modo che questo non accada. Si ricorda infine che la tabella di routing è diversa su ogni router. Pertanto le modalità con cui si possono gestire le aggregazioni varia di router in router a seconda di come possono essere aggregati tra di loro gli spazi di indirizzamento delle varie reti. 1.1.7. Route di default Estendendo ulteriormente il concetto di aggregazione, è possibile vedere come il router R1 potrebbe anche scegliere altri address range per aggregare le sue rotte: invece di specificare l’address range 10.0.0.0/21, potrebbe specificare una default route che servirebbe tutte le destinazioni che si raggiungono attraverso un certo next hop. In questo caso, la routing table di R1 diventerebbe: Type Network C 10.0.4.8/30 S 0.0.0.0/0 NextHop 10.0.4.9 10.0.4.10 Cost 0 1 La scelta di un’opzione piuttosto dell’altra è determinata dal contesto e dalla sensibilità dell’operatore. In generale, con una default route è possibile aggregare tutte le route in una certa direzione, sostituendo N route che convergono sullo stesso next hop con una sola. Tuttavia può essere utilizzata una sola volta (ovviamente non possono esserci due default route). In pratica, la route di default è comunemente usata nel momento in cui una rete utente è collegata ad Internet, in quanto permette di raggiungere tutte le destinazione su internet senza doverle esplicitare una per una. 1.1.8. Route a costi diversi È possibile indicare in una routing table due route alternative a costi diversi, come in questo esempio3 : Type Network S 20.2.2.0/24 S 20.2.2.0/24 NextHop 30.3.3.3 40.4.4.4 Cost 2 3 In questo caso, il router sceglierà la prima route verso la rete 20.2.2.0 in quanto ha costo inferiore ed ignorerà la seconda route. Tuttavia, nel caso in cui la prima route divenisse irraggiungibile (ad esempio l’interfacca verso il next hop 30.3.3.3 subisse un guasto), la prima route diventerebbe inutile e verrebbe utilizzata la seconda route che presenta un percorso alternativo verso la stessa destinazione. Questa configurazione viene comununemente indicata come “route di backup”. 3 Si noti che questo esempio non ha nulla a che fare con la topologia utilizzata sin qui. Infatti, route alternative a costo diverso hanno senso solamente nel caso ci siano percorsi alternativi verso una certa destinazione, cosa qui impossibile dal momento che la topologia non presenta magliature. 12 L’utilità di questa configurazione è comunque molto limitata. Come si è visto dalla teoria, le route statiche di backup tendono a non funzionare in quanto il router non è in grado di rilevare guasti su reti non direttamente connese a sè stesso (anzi, in certi casi non vengono rilevati perfino alcuni di questi guasti; ad esempio il router in esame potrebbe non accorgersi quando l’interfaccia 30.3.3.3 viene spenta) e questo può provocare dei loops nei pacchetti. Infatti la prassi è di usare con molta parsimonia questa funzione nel caso di routing statico; con routing dinamico invece essa non è più necessaria in quanto il protocollo di routing provvede a ricalcolare gli instradamenti senza la necessità della “route di backup”. In secondo luogo, con questa tipologia di configurazione si inserisce un ulteriore livello di ambiguità nelle route dopo quello introdotto dalle route sovrapposte, in quanto un pacchetto può fare matching anche su regole con costi diversi. In caso di ambiguità l’algoritmo di scelta della route privilegierà nell’ordine (1) la route maggiormente specifica, quindi (2) quella a costo inferiore. Questo equivale a dire che le route a costo superiore devono avere lo stesso prefix length di quelle a costo inferiore, altrimenti o non verranno mai scelte (se si riferiscono a supernets) oppure verranno scelte sempre (se sono maggiormente specifiche). Ad esempio, con la seguente routing table: Type Network S 20.2.2.0/24 S 20.2.2.0/23 NextHop 30.3.3.3 40.4.4.4 Cost 2 3 la seconda route non verrà mai scelta per le destinazioni 20.2.2.0/24 in quanto la prima route è maggiormente specifica. Viceversa, con questa configurazione: Type Network S 20.2.2.0/24 S 20.2.2.0/25 NextHop 30.3.3.3 40.4.4.4 Cost 2 3 la seconda route verrà sempre scelta per le destinazioni 20.2.2.0/25 in quanto maggiormente specifica per queste destinazioni, indipendentemente dal costo. L’unico caso in cui il costo entra in gioco nella scelta della route è pertanto quando le due reti destinazioni sono identiche, ma la route differisce per il valore del costo. 1.2. Procedura per la definizione della routing table Avendo evidenziato i concetti alla base del routing e dell’aggregazione delle route, si propone a questo punto una metodologia per la definizione della routing table. Anche se questa metodologia mira semplicemente a ricavare la routing table di ogni router, può essere sfruttata anche per definire un piano di indirizzamento che abbia maggiori capacità di aggregazione. Infatti, come visto in precedenza, l’aggregazione di route dipende fortemente da come sono state assegnate le reti IP sulla topologia in esame e pertanto l’amministratore di rete dovrà assegnare gli indirizzi in modo, se possibile, da favorirne l’aggregabilità nel routing. La metodologia proposta comprende i seguenti passi: • Determinazione della lista delle reti IP presenti nella topologia in esame e tipologia delle reti stesse (reti direttamente connesse / reti remote) • Definizione dell’albero di instradamento verso ogni rete IP individuata al punto precedente 13 • Determinazione della routing table, con una route per ogni rete • Determinazione di possibili aggregazioni di route R1 .1 R2 10.0.0.128/30 .129 .130 R3 10.0.0.132/30 .134 .133 Network: 10.0.2.0/25 .1 .1 Network: 10.0.1.0/24 La spiegazione farà uso della rete di esempio illustrata nella figura seguente. Network: 10.0.0.0/24 È importante notare che la procedura di calcolo della routing table deve essere ripetuta per ogni router; ad esempio nella rete precedente dovrà essere ripetuta 3 volte (in quanto sono presenti 3 router). Infatti, anche se il percorso scelto da un router verso una destinazione D non è completamente svincolato dal percorso che faranno altri router per raggiungere la stessa destinazione (in altre parole, se R1 raggiunge la rete 10.0.0.0/24 mandando i pacchetti verso R2, R2 non può raggiungere la stessa rete mandando i pacchetti verso R1), l’albero di instradamento definisce i percorsi migliori da un punto verso tutte le possibili destinazioni. Ne consegue che, cambiando il punto iniziale da cui vengono calcolati i percorsi (ossia il router di cui si sta calcolando la routing table) cambierà la routing table e pertanto ogni router dovrà calcolare “autonomamente” la sua tabella di instradamento. 1.2.1. Lista e tipologia delle reti IP In questo passo è necessario semplicemente evidenziare quali sono le reti IP presenti nella topologia in esame, distinguendo tra reti IP direttamente connesse (ossia raggiungibili attraverso instradamento diretto dal router in esame) e remote (ossia raggiungibili attraverso instradamento indiretto, ossia il pacchetto viene recapitato al prossimo router verso la destinazione). Il risultato sulla rete di esempio è evidenziato in figura. R1 .1 R2 10.0.0.128/30 .129 .130 R3 10.0.0.132/30 .134 .133 Network: 10.0.2.0/25 .1 .1 Network: 10.0.0.0/24 14 Network: 10.0.1.0/24 1. Lista e tipologia delle reti IP 1.2.2. Definizione dell’albero di instradamento Dato l’elenco delle destinazioni raggiungibili è necessario calcolare l’albero di instradamento, ossia i percorsi seguiti dai pacchetti da un dato router verso tutte le destinazioni. Nel caso di una topologia semplice (come quella in figura) è possibile utilizzare l’innata capacità umana di determinare i percorsi più brevi. Con topologie più complesse è possibile utilizzare algoritmi per il calcolo dello shortest path, ad esempio l’algoritmo di Dijkstra. Il risultato di questo passo sarà la modellizzazione della topologia in termini di grafo aciclico (o albero), rappresentante i percorsi per giungere a tutte le destinazioni presenti nella rete. Il risultato sulla rete di esempio è evidenziato in figura; in questo caso il risultato è particolarmente banale grazie alla mancanza di cicli nella rete originale, che impedisce il formarsi di percorsi multipli verso una stessa destinazione. 2. Definizione dell’albero di instradamento R2 R3 Net1 Ne4 R1 Net3 Net5 Net2 Albero di instradamento R1 Net2 Costi di attraversamento dei link 1 1 Net1 Net3 Net5 1 1 Net4 1 Si noti come in questo risultato siano importanti i costi di raggiungimento delle varie reti, che sono determinati dai costi di attraversamento dei routers (supposti unitari nella rete d’esempio ed evidenziati con il loro valore “1” nell’albero di instradamento). Ad esempio, la rete Net5 sarà raggiungibile a costo 3 a partire dal router R1. I costi sono necessari per poter privilegiare un percorso rispetto ad un altro (e scegliere quello a costo migliore) nel momento in cui percorsi multipli esistono per una stessa destinazione. Si noti anche come i routers non siano presenti nel grafo della topologia: l’obiettivo è quello di determinare il percroso migliore verso ogni destinazione e i router intermedi non offrono nessuna informazione utile nell’albero di instradamento. Pertanto possono essere tranquillamente omessi in questo passo. 1.2.3. Determinazione della routing table Una volta ricavato l’albero di instradamento, la scrittura della routing table è una operazione puramente meccanica. Ogni destinazione (ossia ogni rete IP) deve essere scritta all’interno della routing table con le informazioni richieste (tipologia di route, rete/netmask, next hop, costo). L’unica 15 avvertenza è relativa alla differenza tra le reti connesse/remote a causa principalmente del diverso valore del next hop nei due casi. Cosı̀, ad esempio, per la rete Net2 (direttamente connessa) la entry nella routing table sarà: Type Network C 10.0.2.0/25 NextHop 10.0.2.1 Cost 0 dove la tipologia della route è “C” (“connected”) e il next hop è l’interfaccia del router stesso che viene utilizzata per raggiungere quelle destinazioni in instradamento diretto. Invece, per la rete Net5 (remota) la entry nella routing table sarà: Type Network S 10.0.0.0/24 NextHop 10.0.2.130 Cost 2 dove la tipologia della route è “S” (“static”) e il next hop è l’interfaccia del prossimo router che viene utilizzata per raggiungere quelle destinazioni in instradamento indiretto. Il risultato sulla rete di esempio è evidenziato nella figura seguente, che riporta la routing table di tutti i routers presenti nella topologia in esame. 3. Determinazione della routing table Routing table (R1) Network NextHop 10.0.2.0/25 10.0.2.1 10.0.2.128/30 10.0.2.129 10.0.2.132/30 10.0.2.130 10.0.0.0/24 10.0.2.130 10.0.1.0/24 10.0.2.130 R1 .1 R2 10.0.2.128/30 .129 Cost 0 0 1 2 2 .130 Type C C C S S Routing table (R3) Network NextHop 10.0.2.132/30 10.0.2.134 10.0.0.0/24 10.0.0.1 10.0.1.0/24 10.0.1.1 10.0.2.0/25 10.0.2.133 10.0.2.128/30 10.0.2.133 R3 10.0.2.132/30 .134 .133 Routing table (R2) Type Network NextHop 10.0.2.132/30 10.0.2.133 C 10.0.2.128/30 10.0.2.130 S 10.0.0.0/24 10.0.0.134 S 10.0.1.0/24 10.0.1.134 S 10.0.2.0/25 10.0.2.129 Network: 10.0.2.0/25 C Cost 0 0 1 1 1 .1 .1 Cost 0 0 0 2 1 Network: 10.0.1.0/24 Type C C S S S Network: 10.0.0.0/24 Anche se, come detto in precedenza, il costo non è particolarmente significativo in una routing table, è fondamentale per calcolare il percorso migliore per raggiungere quella destinazione. Si noti pertanto come il costo di attraversamento per giungere alla rete Net1 sia pari a zero, quello per giungere alla rete Net3 sia pari a 1 e quello per giungere alla rete Net4 sia pari a 2. Il costo “S” vicino alla rete Net4 è pertanto ininfluente alla soluzione dell’esercizio ed entrerebbe in gioco solamente qualora ci fossero altre destinazioni raggiungibili oltre Net4. 1.2.4. Determinazione di possibili aggregazioni di route L’ultimo passo si riferisce alla determinazione delle aggregazioni di route ed è, in un certo senso, soggettivo. Il criterio che deve essere sicuramente soddisfatto è quello per cui le route aggregabili sono 16 quelle che condividono lo stesso valore di next hop, e queste route devono essere relative a reti non direttamente connesse (in quanto le route direttamente connesse non possono essere cancellate dalla routing table). La non oggettività dell’operazione sta nel numero di route da aggregare in un certo address range e nell’address range da utilizzare. L’operatore più fare scelte differenti a seconda che privilegi le capacità di l’aggregazione e quindi utilizzi supernet anche molto ampie (fino alla route di default), oppure che cerchi di minimizzarne i possibili effetti collaterali limitandosi a sostituire un certo numero di route con un nuovo address range che sia esattamente equivalente (ossia l’unione degli address range originali deve essere uguale al nuovo address range). La figura seguente propone ambedue le soluzioni: nel caso dei routers R1 ed R2 vengono aggregate due reti /24 con l’equivalente /23, mentre nel caso del router R3 due reti remote (appartenenti a due address range non aggregabili esattamente con un nuovo address range) vengono sostituite da una route di default. Le routing table risultanti sono riportate nella figura seguente. 4. Determinazione di possibili aggregazioni di route Type C C S S S Routing table (R1) Network NextHop 10.0.2.0/25 10.0.2.1 10.0.2.128/30 10.0.2.129 10.0.2.132/30 10.0.2.130 10.0.0.0/24 10.0.2.130 10.0.1.0/24 10.0.2.130 S R1 .1 10.0.0.0/23 Cost 0 0 1 2 2 10.0.2.130 .130 R3 .134 .133 Routing table (R2) Type Network NextHop 10.0.2.132/30 10.0.2.133 C 10.0.2.128/30 10.0.2.130 S 10.0.0.0/24 10.0.0.134 S 10.0.1.0/24 10.0.1.134 S 10.0.2.0/25 10.0.2.129 10.0.0.0/23 Cost 1 1 1 1 1 10.0.2.134 17 2 Routing table (R3) Network NextHop 10.0.2.132/30 10.0.2.134 10.0.0.0/24 10.0.0.1 10.0.1.0/24 10.0.1.1 10.0.2.0/25 10.0.2.133 10.0.2.128/30 10.0.2.133 10.0.2.132/30 Network: 10.0.2.0/25 C S 10.0.2.133 2 R2 10.0.2.128/30 .129 Type C C C S S 0.0.0.0/0 .1 .1 Network: 10.0.0.0/24 1 Cost 0 0 0 2 1 Network: 10.0.1.0/24 S Parte II. Esercizi 18 2. Esercizi 2.1. Esercizio n. 1 Definire l’albero di instradamento di tutti i nodi della rete in figura. Scrivere inoltre la tabella di routing di ogni router, in forma (router di destinazione - next hop router). 3 A B 2 1 2 C D 5 4 E 2.2. Esercizio n. 2 Definire l’albero di instradamento di tutti i nodi della rete in figura. Scrivere inoltre la tabella di routing di ogni router, in forma (router di destinazione - next hop router). A 2 D 3 2 1 B 1 2 E C G 1 1 4 F 19 4 H 2.3. Esercizio n. 3 Data la rete in figura, ricavare la routing table di R1 aggregando le route in modo da: • comprendere spazi di indirizzamento esattamente equivalenti a quelli originali • (oppure) ottenere il minor numero possibile di entry nella routing table. I numeri in corsivo sulla rete rappresentano i costi di attraversamento dei link; si suppongano unitari i costi non esplicitamente indicati in figura. Address range 130.192.0.0/22 .2.1/27 .2.37/30 .2.41/30 R1 1 R2 5 R3 .2.33/30 1 .0.254/24+ .1.126/25 .1.254/25 2.4. Esercizio n. 4 Data la rete in figura, ricavare la routing table di R1 aggregando le route in modo da: • comprendere spazi di indirizzamento esattamente equivalenti a quelli originali • (oppure) ottenere il minor numero possibile di entry nella routing table. I numeri in corsivo sulla rete rappresentano i costi di attraversamento dei link; si suppongano unitari i costi non esplicitamente indicati in figura. Address range 130.192.0.0/22 .2.1/27 .2.37/30 .2.41/30 R1 1 R2 .0.254/24+ .1.126/25 2 R3 .2.33/30 3 20 .1.254/25 2.5. Esercizio n. 5 Data la rete in figura, ricavare la routing table di R1 aggregando le route in modo da: • comprendere spazi di indirizzamento esattamente equivalenti a quelli originali • (oppure) ottenere il minor numero possibile di entry nella routing table. I numeri in corsivo sulla rete rappresentano i costi di attraversamento dei link; si suppongano unitari i costi non esplicitamente indicati in figura. Internet 1.254/23 213.205.24.25/30 Address range 130.192.0.0/22 3 3.158/27 3.186/30 R1 R3 4 1 R2 3.188/30 2.254/24 3.182/29 21 1 3.194/30 R4 3.126/25 3.197/30 3.174/28 2.6. Esercizio n. 6 Data la rete stessa rete dell’esercizio precedente (e indicata in figura), ricavare la routing table di R4 ottenuta cercando di ottenere il minor numero possibile di entry nella routing table. Si evidenzi se il numero di route è maggiore o minore rispetto a quelle presenti nel router R1 e ne si spieghi il motivo. Internet 1.254/23 213.205.24.25/30 Address range 130.192.0.0/22 3 3.158/27 3.186/30 R1 R3 4 1 R2 3.188/30 2.254/24 3.182/29 22 1 3.194/30 R4 3.126/25 3.197/30 3.174/28 2.7. Esercizio n. 7 Data la rete in figura, definire un piano di indirizzamento che: • massimizzi l’aggregazione delle route su R1 • (oppure) minimizzi il numero di indirizzi allocati per la gestione della rete. I numeri in corsivo sulla rete rappresentano i costi di attraversamento dei link; si suppongano unitari i costi non esplicitamente indicati in figura. R1 Address range 130.192.0.0/23 2 R2 R3 60 hosts 120 hosts 23 10 hosts 27 hosts 1 2.8. Esercizio n. 8 Data la rete in figura, definire un piano di indirizzamento che: • massimizzi l’aggregazione delle route su R1 (sia nel caso in cui lo spazio di indirizzamento aggregato sia esattemente equivalente a quello originale, sia nel caso in cui vengano gestite route attraverso supernets) • (oppure) minimizzi il numero di indirizzi allocati per la gestione della rete. I numeri in corsivo sulla rete rappresentano i costi di attraversamento dei link; si suppongano unitari i costi non esplicitamente indicati in figura. R1 Address range 130.192.0.0/24 2 R2 R3 1 70 hosts 80 hosts 24 14 hosts 25 hosts 1 2.9. Esercizio n. 9 Basandosi sull’esercizio precedente e data la rete in figura (identica al caso precedente tranne per i costi assegnati ai links), si definisca un piano di indirizzamento che massimizzi l’aggregazione delle route su R1, sia nel caso in cui lo spazio di indirizzamento aggregato sia esattamente equivalente a quello originale, sia nel caso in cui vengano gestite route attraverso supernets. I numeri in corsivo sulla rete rappresentano i costi di attraversamento dei link; si suppongano unitari i costi non esplicitamente indicati in figura. R1 Address range 130.192.0.0/24 1 R2 R3 1 70 hosts 80 hosts 25 14 hosts 25 hosts 1 2.10. Esercizio n. 10 Realizzare un piano di indirizzamento per la rete in figura che massimizzi l’aggregazione di route sul router R2. Scrivere inoltre la routing table di tutti i routers, supponendo che si voglia massimizzare l’aggregazione delle route (sono ammesse supernets, ma non la route di default). Si noti che per le reti indicate con l’asterisco in figura è prevista l’esigenza di aggiungere un certo numero di hosts in futuro. 120 hosts 160 hosts* 120 hosts* R1 R2 1 2 Address range: 130.192.0.0/22 R3 3 R4 27 hosts 248 hosts 26 2.11. Esercizio n. 11 Realizzare un piano di indirizzamento per la rete in figura che massimizzi l’aggregazione di route sul router R1. Scrivere inoltre la routing table di tutti i routers, supponendo che si voglia massimizzare l’aggregazione delle route (sono ammesse supernets). Si noti che per le reti indicate con l’asterisco in figura è prevista l’esigenza di aggiungere un certo numero di hosts in futuro. 500 hosts 50 hosts* 500 hosts 100 hosts* Internet 1 R2 R1 Address range: 130.192.0.0/21 1 4 33 hosts R3 210 hosts R4 1 5 hosts 27 120 hosts 10 hosts 2.12. Esercizio n. 12 Data la stessa topologia dell’esercizio precedente (ma con diversi costi dei link), realizzare un piano di indirizzamento per la rete in figura che massimizzi l’aggregazione di route sul router R1. Scrivere inoltre la routing table di tutti i routers, supponendo che si voglia massimizzare l’aggregazione delle route (sono ammesse supernets). Si noti che per le reti indicate con l’asterisco in figura è prevista l’esigenza di aggiungere un certo numero di hosts in futuro. 500 hosts 50 hosts* 500 hosts 100 hosts* Internet 1 R2 R1 Address range: 130.192.0.0/21 1 1 33 hosts R3 210 hosts R4 1 5 hosts 28 120 hosts 10 hosts 2.13. Esercizio n. 13 Data la topologia dell’esercizio precedente e le relative routing table degli apparati, il gestore della rete ha deciso di configurare alcune rotte statiche aggiuntive di backup per poter reagire automaticamente ad alcuni guasti che potrebbero verificarsi nella rete. In particolare, il gestore vuole garantire al router R1 la raggiungibilità delle LAN collegate ad R4 (raggiungibili di preferenza attraverso R3) anche a fronte del collegamento R3-R4 (in questo caso si vuole che il percorso sia attraverso R2). Il gestore ha pertanto modificato le routing table di R1 ed R3 come si vede dalla figura seguente (le route direttamente connesse vengono omesse per chiarezza): 500 hosts 130.192.7.224/30 7.225/30 130.192.0.0/23 5.1/24 7.217/30 130.192.7.216/30 130.192.7.128/26 33 hosts 7.129/26 6.1/24 130.192.7.220/30 R3 7.233/30 1 7.209/29 130.192.7.232/30 130.192.6.0/24 130.192.7.208/29 210 hosts 5 hosts R1 (only static routes) ==================================== S 130.192.0.0/21 130.192.7.218 1 S 130.192.6.0/23 130.192.7.230 1 S 130.192.7.220/30 130.192.7.218 1 S 0.0.0.0/0 130.192.7.224 10 S 130.192.7.0/25 130.192.7.218 2 S 130.192.7.192/28 130.192.7.218 2 4.1/24 7.221/30 R2 1 1 130.192.7.228/30 7.230/30 0.1/23 2.1/23 1 R1 130.192.2.0/23 100 hosts* 130.192.5.0/24 Internet 500 hosts 130.192.4.0/24 50 hosts* R4 7.1/25 130.192.7.0/25 120 hosts 7.193/28 130.192.7.192/28 10 hosts R3 (only static routes) ================================== S 130.192.7.0/25 130.192.7.234 1 S 130.192.7.192/28 130.192.7.234 1 S 130.192.7.220/30 130.192.7.234 1 S 0.0.0.0/0 130.192.7.229 2 Determinare se la modifica introdotta dal gestore è efficace; in caso negativo evidenziarne i problemi e proporre eventuali soluzioni migliorative. 29 2.14. Esercizio n. 14 Data la rete in figura, l’host H2 genera un pacchetto IP per l’host H1. Il pacchetto viene recapitato correttamente ad R2, il quale deve provvedere ad instradarlo verso la destinazione. Date le differenti configurazioni del router R2 a livello di routing table ed ARP cache indicate in figura, determinare il percorso del pacchetto nei tre casi. Indicare infine se la soluzione cambierebbe nel caso in cui la rete LAN 1 fosse realizzata con degli switch di livello 2 anzichè con una infrastruttura Ethernet condivisa. LAN 1 IP: 192.168.3.254/24 MAC:00:00:00:DD:DD:DD IP: 192.168.4.254/24 MAC:00:00:00:EE:EE:EE R1 IP: 1392.168.1.254/24 IP: 192.168.0.1/24 MAC:00:00:00:AA:AA:AA IP: 192.168.0.2/24 MAC:00:00:00:BB:BB:BB H1 IP: 192.168.1.1/24 MAC: 00:00:00:11:11:11 DG: 192.168.1.254 R2 config (case 1) R2 IP: 192.168.2.254/24 MAC:00:00:00:CC:CC:CC H2 IP: 192.168.2.2/24 MAC: 00:00:00:22:22:22 DG: 192.168.2.254 R2 config (case 2) R2 config (case 3) Routing table (R2) ================================= Type Network Next Hop Cost S 0.0.0.0/0 192.168.0.1 2 D [... directly connected ...] Routing table (R2) ================================= Type Network Next Hop Cost S 0.0.0.0/0 192.168.1.1 2 D [... directly connected ...] Routing table (R2) ================================= Type Network Next Hop Cost S 0.0.0.0/0 192.168.4.1 2 D [... directly connected ...] ARP cache (R2) ================================== Type Address MAC S 192.168.0.1 00:00:00:DD:DD:DD ARP cache (R2) ================================== Type Address MAC S 192.168.1.1 00:00:00:AA:AA:AA ARP cache (R2) ================================== Type Address MAC S 192.168.4.1 00:00:00:DD:DD:DD 30 Parte III. Soluzioni 31 3. Soluzioni 3.1. Soluzione per l’esercizio n. 1 L’albero di instradamento dei vari nodi è riportato in figura. 3 A B 2 2 5 B 2 1 C 3 A D 2 D 5 4 E 1 2 C 5 4 E 3 A 2 5 3 A 4 B 2 1 C D E B 2 B 2 1 C 3 A D 1 2 C D 5 4 E 4 E L’unica ambiguità è riferita alle destinazioni che hanno strade multiple allo stesso costo (ad esempio il router A ha due strade equivalenti verso la destinazione D). Il disegno riporta una sola di queste soluzioni per questioni di chiarezza, mentre vengono riportate ambedue nelle routing table seguenti. Si precisa che nel caso di percorsi equivalenti, la scelta di uno o dell’altro (dal punto di vista puramente del routing) è completamente arbitraria. Le tabelle dei vari routers saranno le seguenti: Nodo B Nodo A Destinazione Next-hop Destinazione Next-hop B B A A C C C D D B/C D D E C E D 32 Nodo C Nodo D Destinazione Next-hop Destinazione Next-hop A A A B/C B D B B D D C C E E E E Nodo E Destinazione Next-hop A C B D C C D D 33 3.2. Soluzione per l’esercizio n. 2 La soluzione di questo esercizio è analoga a quello precedente. Si riportano gli alberi di instradamento per un sottoinsieme dei router presenti, e tutte le routing table. A 2 2 D 3 G 1 1 4 F A 2 2 A C 1 1 4 F D 1 B 1 2 E 4 H 3 2 2 1 G 4 F 1 2 E 1 1 4 D B C G H 3 1 2 E C 1 B 1 2 D 3 2 2 1 B E A C G 4 1 1 H 4 F 4 H Si noti come alcuni router abbiano percorsi equivalenti per una stessa destinazione (ad esempio C ha due percorsi equivalenti a costo 6 verso A), ma questo non traspare dalla routing table in quanto ambedue fanno capo allo stesso next hop router (D). Nodo A Nodo B Destinazione Next-hop Destinazione Next-hop B B A A C B/E C D D B/E D D E E E A F E F A G E G D H E H D 34 Nodo C Nodo D Destinazione Next-hop Destinazione Next-hop A D A B/G B D B B D D C C E D E G F D F G G D G G H D H G Nodo E Nodo F Destinazione Next-hop Destinazione Next-hop A A A E B A B E C G C E D G D E F F E E G G G E H G H E/H Nodo G Nodo H Destinazione Next-hop Destinazione Next-hop A E A G B D B G C D C G D D D G E E E G F E F G/F H H G G 3.3. Soluzione per l’esercizio n. 3 La routing table del router R1 è indicata nelle tabelle seguenti, differenziata a seconda del criterio scelto per effettuare le aggregazioni. 3.3.1. Route con spazio di indirizzamento equivalente Tipo Rete destinazione Next hop Costo D 130.192.2.0/27 130.192.2.1 0 D 130.192.2.36/30 130.192.2.37 0 D 130.192.2.40/30 130.192.2.41 0 35 S 130.192.0.0/23 130.192.2.38 1 S 130.192.2.32/30 130.192.2.38 1 3.3.2. Route con massimizzazione dell’aggregazione Tipo Rete destinazione Next hop Costo D 130.192.2.0/27 130.192.2.1 0 D 130.192.2.36/30 130.192.2.37 0 D 130.192.2.40/30 130.192.2.41 0 S 0.0.0.0/0 130.192.2.38 1 36 3.4. Soluzione per l’esercizio n. 4 La routing table del router R1 è indicata nelle tabelle seguenti, differenziata a seconda del criterio scelto per effettuare le aggregazioni. 3.4.1. Route con spazio di indirizzamento equivalente Tipo Rete destinazione Next hop Costo D 130.192.2.0/27 130.192.2.1 0 D 130.192.2.36/30 130.192.2.37 0 D 130.192.2.40/30 130.192.2.41 0 S 130.192.0.0/23 130.192.2.38 1 S 130.192.2.32/30 130.192.2.38 1 S 130.192.1.128/25 130.192.2.42 2 In questo caso non è possibile aggregare molto in quanto i percorsi per giungere alle varie reti sono diversi (parte attraverso R2 e parte attraverso R3) e a causa del vincolo di utilizzare uno spazio di indirizzamento equivalente. 3.4.2. Route con massimizzazione dell’aggregazione Tipo Rete destinazione Next hop Costo D 130.192.2.0/27 130.192.2.1 0 D 130.192.2.36/30 130.192.2.37 0 D 130.192.2.40/30 130.192.2.41 0 S 0.0.0.0/0 130.192.2.38 2 S 130.192.1.128/25 130.192.2.42 2 In questo caso di è fatto uso della default route in una direzione (quella che aveva il maggior numero di route singole) per minimizzare il numero di route. 37 3.5. Soluzione per l’esercizio n. 5 La routing table del router R1 è indicata nelle tabelle seguenti, differenziata a seconda del criterio scelto per effettuare le aggregazioni. 3.5.1. Route con spazio di indirizzamento equivalente Tipo Rete destinazione Next hop Costo D 213.205.24.24/30 213.205.24.25 0 D 130.192.3.188/30 130.192.3.189 0 D 130.192.3.184/30 130.192.3.185 0 S 0.0.0.0/0 213.205.24.26 1 S 130.192.2.0/24 130.192.3.188 1 S 130.192.3.160/27 130.192.3.188 1 S 130.192.3.192/29 130.192.3.188 1 S 130.192.0.0/23 130.192.3.186 3 S 130.192.3.128/27 130.192.3.186 3 Si noti che in questo caso la topologia in esame è collegata ad Internet e pertanto è ammesso utilizzare la default route anche nel caso di aggregazione con spazio di indirizzamento equivalente. Infatti, si assume che tutte le destinazioni non presenti nella topologia in esame saranno presenti su Internet; la default route sarà pertanto una route verso tutte queste destinazioni. 3.5.2. Route con massimizzazione dell’aggregazione Tipo Rete destinazione Next hop Costo D 213.205.24.24/30 213.205.24.25 0 D 130.192.3.188/30 130.192.3.189 0 D 130.192.3.184/30 130.192.3.185 0 S 0.0.0.0/0 213.205.24.26 1 S 130.192.2.0/23 130.192.3.188 1 S 130.192.0.0/23 130.192.3.186 3 S 130.192.3.128/27 130.192.3.186 3 Si noti che, essendo la topologia in esame collegata ad Internet, la default route viene tendenzialmente utilizzata per raggiungere quelle destinazioni e non può puù essere utilizzata per aggregare le reti interne. 38 3.6. Soluzione per l’esercizio n. 6 Questo esercizio non è molto diverso dai precedenti. Si nota però una maggiore utilità della default route per il router R4 rispetto al router R1, in quanto questo router raggiunge parecchie destinazioni interne alla topologia in esame con lo stesso next hop utilizzato per raggiungere Internet. In questo caso queste reti interne verranno raggruppate direttamente all’interno della default route senza la necessità di una route esplicita. La routing table di R4, creata in modo da massimizzare l’efficacia dell’aggregazione, risulterà più piccola di quella presente su R1 e diventerà pertanto la seguente: Tipo Rete destinazione Next hop Costo D 130.192.3.196/30 130.192.3.197 0 D 130.192.3.160/28 130.192.3.174 0 D 130.192.3.192/30 130.192.3.194 0 D 130.192.3.0/25 130.192.3.126 0 S 0.0.0.0/0 130.192.3.193 2 S 130.192.0.0/23 130.192.3.198 4 S 130.192.3.128/27 130.192.3.198 4 Si noti che in questo caso il numero di route statiche diminusce di due unità (grazie alla maggiore aggregazione) mentre cresce di una unità il numero di route relative a reti direttamente connesse (a causa del maggior numero di reti direttamente connese al router), route che non possono essere aggregate. La somma totale è comunque inferiore: il numero totale di route nella routing table di R4 diminuisce di una unità rispetto a quelle presenti nel router R1. 39 3.7. Soluzione per l’esercizio n. 7 3.7.1. Indirizzamento volto a massimizzare l’aggregazione delle route su R1 Il primo passo per risolvere l’esercizio consiste nel calcolare gli indirizzi necessari per fare il piano di indirizzamento. Dal momento che le reti direttamente connesse ad R1 non influenzano l’aggregabilità su tale router, vengono per ora trascurate nel computo totale di indirizzi necessari per le due aree definite. Nel calcolo degli indirizzi necessari si distinguono le reti remote raggiungibili da R1 verso R2 (denominate Area 1 ) e quelle invece raggiungibili attraverso R3 (denominate Area 2 ) in quando, essendo raggiungibili in direzioni diverse, non sono evidentemente aggregabili. Si ottiene quindi: • Area 1: 27 (+3) + 120 (+3) indirizzi necessari= 32 + 128 indirizzi allocati= 160 indirizzi • Area 2: 60 (+3) + 10 (+3) indirizzi necessari= 64 + 16 indirizzi allocati= 80 indirizzi Per massimizzare l’aggregazione è necessario che lo spazio di indirizzamento complessivamente allocato alle reti in Area 1 sia disgunto dallo spazio di indirizzamento complessivamente allocato in Area 2. In altre parole, per massimizzare l’aggregabilità delle route è opportuno definire degli spazi di indirizzamento alle aree, e all’interno di questi ricavare poi gli indirizzi per le singole reti. Gli spazi di indirizzamento delle aree saranno poi gli address range “equivalenti” che verranno utilizzati per definire le destinazioni nelle route aggregate. Si scelgono quindi i seguenti address range: • Area 1: 130.192.0.0/24 • Area 2: 130.192.1.0/25 Per quanto riguarda lo spazio di indirizzamento per le reti direttamente connesse ad R1, può essere ricavato sia all’interno dell’address range dell’Area 1, sia all’interno di quello dell’Area 2 (ambedue le aree non utilizzano tutto l’address range allocato ad esse). In questo esercizio si sceglie di utilizzare per queste reti parte dello spazio inutilizzato dell’Area 1. Il piano di indirizzamento risultante sarà il seguente: R1 0.162/30 0.166/30 2 1 R3 0.161/30 0.165/30 0.1/25 1.65/28 1.1/26 130.192.1.0/26 130.192.0.0/25 60 hosts 120 hosts Area 1 130.192.1.64/28 130.192.0.128/27 27 hosts R2 0.129/27 10 hosts 130.192.0.164/30 130.192.0.160/30 Area 2 Ne deriva la seguente routing table di R1 (realizzata senza utilizzare la route di default): 40 Tipo Rete destinazione Next hop Costo D 130.192.0.160/30 130.192.0.162 0 D 130.192.0.165/30 130.192.0.166 0 S 130.192.0.0/24 130.192.0.161 1 S 130.192.1.0/25 130.192.0.165 2 3.7.2. Indirizzamento volto a minimizzare gli indirizzi allocati Se l’obiettivo è invece la minimizzazione degli indirizzi allocati, il piano di indirizzamento si definisce in maniera tradizionale e potrebbe essere il seguente: R1 0.242/30 0.246/30 2 1 R3 0.241/30 0.245/30 0.1/25 0.225/28 0.129/26 130.192.0.128/26 130.192.0.0/25 60 hosts 120 hosts Area 1 130.192.0.224/28 130.192.0.192/27 27 hosts R2 0.193/27 10 hosts 130.192.0.244/30 130.192.0.240/30 Area 2 Si noti che in questo caso è sufficiente uno spazio di indirizzamento /24 per gestire l’intera topologia, mentre nel caso precedente si era resa necessario uno spazio /23. Ne deriva la seguente routing table di R1 (realizzata senza utilizzare la route di default): Tipo Rete destinazione Next hop Costo D 130.192.0.240/30 130.192.0.242 0 D 130.192.0.244/30 130.192.0.246 0 S 130.192.0.0/24 130.192.0.241 1 S 130.192.0.128/26 130.192.0.245 2 S 130.192.0.224/28 130.192.0.245 2 41 3.8. Soluzione per l’esercizio n. 8 In questo caso ambedue le soluzioni coincidono, sia che si persegua la massimizzazione dell’aggregazione oppure che si cerchino di minimizzare gli indirizzi allocati. Infatti, lo spazio di indirizzamento assegnato è cosı̀ ridotto (130.192.0.0./24) che è necessario comunque minimizzare gli indirizzi allocati per poter gestire la topologia in esame. Anzi, alcune reti fisiche (LAN) devono essere partizionate in più reti IP per poter essere gestite. L’indirizzamento risultante è indicato in figura: R1 0.242/30 0.250/30 2 1 130.192.0.244/30 0.246/30 1 0.1/26+ 0.129/27 130.192.0.0/26+ 130.192.0.128/27 0.249/30 0.193/27 0.65/26+ 0.225/28 R3 130.192.0.64/26+ 130.192.0.224/28 70 hosts 80 hosts 14 hosts R2 0.245/30 130.192.0.248/30 130.192.0.192/27 0.241/30 0.161/27 130.192.0.160/27 25 hosts 130.192.0.240/30 Per scrivere la routing table è possibile sfruttare il fatto che le destinazioni connesse ad R3 si possono raggiungere allo stesso costo sia attraverso il link diretto R1-R3, sia attraverso il percorso R1-R2-R3. Si sceglie pertanto questa seconda via che, a parità di costo, diminuisce il numero di route statiche presenti nella routing table. Nel caso in cui lo spazio di indirizzamento aggregato sia esattamente equivalente a quello originale, è necessario tenere in conto che la rete 130.192.0.252/30 non è allocata da nessuna parte e pertanto non può essere parte dell’aggregazione. Pertanto, è necessario scrivere un insieme di righe nella routing table in modo da non comprendere questo spazio. La routing table risultante sarà pertanto la seguente: Tipo Rete destinazione Next hop Costo D 130.192.0.240/30 130.192.0.242 0 D 130.192.0.248/30 130.192.0.250 0 S 130.192.0.0/25 130.192.0.241 2 S 130.192.0.128/26 130.192.0.241 2 S 130.192.0.192/27 130.192.0.241 2 S 130.192.0.224/28 130.192.0.241 2 S 130.192.0.244/30 130.192.0.241 1 Nel caso invece in cui lo spazio di indirizzamento aggregato possa comprendere anche destinazioni non originariamente presenti nella topologia in esame, è possibile aggregare tutte le destinazioni remote con la route 130.192.0.0/24, ottenendo una aggregazione decisamente più efficace del caso precedente. In questo caso la tabella di routing risultante sarà la seguente: 42 Tipo Rete destinazione Next hop Costo D 130.192.0.240/30 130.192.0.242 0 D 130.192.0.248/30 130.192.0.250 0 S 130.192.0.0/24 130.192.0.241 2 Si noti che in pratica si tenderà ad adottare la seconda tabella di routing, a maggior ragione dovuto al fatto che la rete 130.192.252.0/30 non è fisicamente utilizzata sulla topologia in esame, ma è stata assegnata al gestore della rete (lo spazio di indirizzamento assegnato al gestore è 130.192.0.0/24) e ragionevolmente quindi questa rete non è presente altrove. 43 3.9. Soluzione per l’esercizio n. 9 Dal momento che la rete è identica al caso precedente, non ci sono apparentemente differenze a livello di indirizzamento. Tuttavia, il fatto che le reti connesse ad R2 e ad R3 si raggiungano attraverso next hop diversi a partire da R1 (a causa dei diversi costi dei links) rende la situazione maggiormente complessa in quanto le reti sono meno aggregabili. Pertanto riveste una importanza fondamentale per l’aggregabilità la possibilità di posizionare spazi di indirizzamento IP contigui nella stessa area. Ad esempio, utilizzando il piano di indirizzamento proposto nella soluzione precedente le reti 130.192.0.0/26 e 130.192.0.64/26 non sarebbero più aggregabili in una route 130.192.0.0/25 in quanto avrebbero due next hop diversi (uno verso l’Area 1 e l’altro verso l’Area 2). Un possibile nuovo piano di indirizzamento è indicato in figura: R1 0.242/30 0.250/30 1 1 130.192.0.244/30 1 0.1/26+ 0.65/27 130.192.0.0/26+ 130.192.0.64/27 0.246/30 0.249/30 0.193/27 0.129/26+ R3 0.225/28 130.192.0.128/26+ 130.192.0.224/28 70 hosts 80 hosts Area 1 14 hosts R2 0.245/30 130.192.0.248/30 130.192.0.192/27 0.241/30 0.97/27 130.192.0.96/27 25 hosts 130.192.0.240/30 Area 2 In questo caso, le tabelle di routing table risultanti saranno rispettivamente le seguenti. Spazio di indirizzamento equivalente a quello presente nella topologia: Tipo Rete destinazione Next hop Costo D 130.192.0.240/30 130.192.0.242 0 D 130.192.0.248/30 130.192.0.250 0 S 130.192.0.0/25 130.192.0.241 1 S 130.192.0.128/26 130.192.0.249 1 S 130.192.0.192/27 130.192.0.249 1 S 130.192.0.224/28 130.192.0.249 1 S 130.192.0.244/30 130.192.0.249 1 Massimizzazione dell’aggregazione: Tipo Rete destinazione Next hop Costo D 130.192.0.240/30 130.192.0.242 0 44 D 130.192.0.248/30 130.192.0.250 0 S 130.192.0.0/25 130.192.0.241 1 S 130.192.0.128/25 130.192.0.249 1 45 3.10. Soluzione per l’esercizio n. 10 Per determinare il piano di indirizzamento, si calcolano innanzitutto gli indirizzi necessari a gestire ogni rete considerando che il router R2 vedrà tutte le destinazioni remote attraverso due next hop: • Destinazioni remote verso R1 (Area 1): – Rete 120 hosts*: si riservano 256 indirizzi (per espansioni future) – Rete 160 hosts*: si riservano 256 indirizzi (per espansioni future) • Destinazioni remote verso R4 (Area 2): – Rete 248 hosts: si riservano 256 indirizzi – Rete 27 hosts: si riservano 32 indirizzi – Rete punto-punto (R3-R4): si riservano 4 indirizzi • Reti direttamente connesse a R2: – Rete 120 hosts: si riservano 128 indirizzi – Rete punto-punto (R1-R2): si riservano 4 indirizzi – Rete punto-punto (R2-R3): si riservano 4 indirizzi Cercando di assegnare gli indirizzi in modo da privilegiare l’aggregabilità su R2, si potrà procedere come segue: • Reti in Area 1: spazio di indirizzamento /23, utilizzato completamente • Reti in Area 2: spazio di indirizzamento /23, ma non utilizzato completamente (rimangono liberi 512 - 256 - 32 - 4 = 220 indirizzi) • Reti direttamente connesse: sono necessari 128+4+4= 136 indirizzi, che possono essere ricavati dallo spazio di indirizzamento /23 lasciato libero dalle reti in Area 2 La figura seguente visualizza l’allocazione degli indirizzi nello spazio di indirizzamento assegnato 130.192.0.0/22, con riferimento all’area (vista da R2) di appartenenza: 46 130.192.0.0 130.192.0.255 130.192.1.0 130.192.1.31 130.192.1.32 - 130.192.1.35 130.192.1.36 - 130.192.1.39 130.192.1.40 - 130.192.1.43 Address range Area 2 130.192.1.44 130.192.1.127 130.192.1.128 130.192.1.255 130.192.2.0 130.192.2.255 Address range Area 1 130.192.3.0 130.192.3.255 130.192.3.1/24 160 hosts* Il piano di indirizzamento risultante potrà pertanto essere il seguente: 120 hosts 120 hosts* 130.192.1.128/25 130.192.2.0/24 Reti connesse 2.1/25 R1 1.37/30 3.1/24 1.129/25 R2 1 130.192.1.36/30 1.38/30 1.41/30 Area 1 130.192.1.40/30 2 Address range: 130.192.0.0/22 R3 1.33/30 130.192.1.32/30 3 0.1/24 130.192.0.0/24 1.42/30 1.34/30 R4 1.1/27 130.192.1.0/27 27 hosts 248 hosts Area 2 Ne conseguono le seguenti routing table, ricavate in modo da massimizzare l’aggregazione delle route. R1 47 Tipo Rete destinazione Next hop Costo D 130.192.1.36/30 130.192.1.37 0 D 130.192.2.0/24 130.192.2.1 0 D 130.192.3.0/24 130.192.3.1 0 S 130.192.0.0/23 130.192.1.38 2 Tipo Rete destinazione Next hop Costo D 130.192.1.36/30 130.192.1.38 0 D 130.192.1.40/30 130.192.1.41 0 D 130.192.1.128/25 130.192.1.129 0 S 130.192.0.0/23 130.192.1.42 2 S 130.192.2.0/23 130.192.1.37 1 Tipo Rete destinazione Next hop Costo D 130.192.1.32/30 130.192.1.33 0 D 130.192.0.0/24 130.192.0.1 0 S 130.192.0.0/22 130.192.1.34 3 Tipo Rete destinazione Next hop Costo D 130.192.1.32/30 130.192.1.34 0 D 130.192.1.40/30 130.192.1.42 0 D 130.192.1.0/27 130.192.1.1 0 S 130.192.0.0/24 130.192.1.33 3 S 130.192.0.0/22 130.192.1.41 2 R2 R3 R4 48 3.11. Soluzione per l’esercizio n. 11 Per determinare il piano di indirizzamento, si calcolano innanzitutto gli indirizzi necessari a gestire ogni rete considerando che il router R1 vedrà tutte le destinazioni remote attraverso due next hop: • Destinazioni remote verso R2 (Area 1): – Rete 500 hosts: si riservano 512 indirizzi – Rete 500 hosts: si riservano 512 indirizzi – Rete 100 hosts*: si riservano 256 indirizzi (per espansioni future) – Rete punto-punto (R2-R4): si riservano 4 indirizzi • Destinazioni remote verso R3 (Area 2): – Rete 33 hosts: si riservano 64 indirizzi – Rete 210 hosts: si riservano 256 indirizzi – Rete 5 hosts: si riservano 8 indirizzi – Rete 120 hosts: si riservano 128 indirizzi – Rete 10 hosts: si riservano 16 indirizzi – Rete punto-punto (R3-R4): si riservano 4 indirizzi • Reti direttamente connesse a R1: – Rete 50 hosts*: si riservano 128 indirizzi (per espansioni future) – Rete punto-punto (R1-R2): si riservano 4 indirizzi – Rete punto-punto (R1-R3): si riservano 4 indirizzi – Rete punto-punto (R1-Internet): si riservano 4 indirizzi Da questa analisi è evidente come il numero di indirizzi necessari sia sufficiente dato lo spazio di indirizzamento assegnato (1284 indirizzi in Area 1, 476 in Area 2 e 140 per le reti direttamente connesse). Tuttavia, a differenza dell’esercizio precedente, lo spazio di indirizzamento non è facilmente partizionabile in due address range distinti per le due aree1 . La figura seguente visualizza la distribuzione degli spazi di indirizzamento allocati all’interno dell’address range assegnato 130.192.0.0/21, con riferimento all’area (vista da R1) di appartenenza: 1 Si ricordi che gli indirizzi relativi a reti direttamente connesse non sono mai aggregabili e pertanto compariranno sempre come reti “esplicite” all’interno della tabella di routing. Questo tuttavia fa sı̀ che se le supernets sono ammesse (come è di solito) questi indirizzi possano essere ricavati all’interno di spazi di indirizzamento inusati da altre aree, in quanto essi saranno raggiungibili attraverso una route maggiormente specifica. 49 500 hosts 50 hosts* 500 hosts 100 hosts* Internet 1 R1 Address range: 130.192.0.0/21 Reti connesse (spazi di indirizzamento non usati in altre aree) R2 1 R3 33 hosts Area 1 (5 blocchi /24) 4 R4 1 Area 2 (2 blocchi /24) 120 hosts 5 hosts 210 hosts 10 hosts Una possibile soluzione per questo esercizio consiste nel gestire l’aggregazione mediante supernets: in questo caso si può immaginare di indirizzare tutte le reti in Area 1 con l’indirizzo 130.192.0.0/21, sfruttando la route maggiormente specifica 130.192.6.0/23 per tutte le destinazioni in Area 2. Ovviamente questo è possibile se gli indirizzi assegnati in Area 2 sono aggregabili (ossia se si assegnano gli indirizzi 130.192.6.0/24 e 130.192.7.0/24 e non, ad esempio, 130.192.5.0/24 e 130.192.6.0/24 che non sono aggregabili tra di loro). Il piano di indirizzamento risultante potrà pertanto essere il seguente: 500 hosts 130.192.7.224/30 5.1/24 7.217/30 7.225/30 1 7.218/30 130.192.7.216/30 R1 7.229/30 130.192.7.128/26 33 hosts Address range: 130.192.0.0/21 130.192.0.0/23 1 7.129/26 130.192.6.0/24 210 hosts 4.1/24 7.221/30 4 130.192.7.220/30 R3 7.233/30 7.209/29 6.1/24 0.1/23 2.1/23 R2 130.192.7.228/30 7.230/30 130.192.2.0/23 100 hosts* 130.192.5.0/24 Internet 500 hosts 130.192.4.0/24 50 hosts* R4 7.234/30 1 130.192.7.232/30 130.192.7.208/29 7.222/30 7.1/25 130.192.7.0/25 120 hosts 5 hosts 7.193/28 130.192.7.192/28 10 hosts Ne conseguono le seguenti routing table, ricavate in modo da massimizzare l’aggregazione delle route (si ricorda l’utilizzo della defaut route per raggiugnere tutte le destinazioni su Internet). R1 Tipo Rete destinazione 50 Next hop Costo D 130.192.7.216/30 130.192.7.217 0 D 130.192.7.224/30 130.192.7.225 0 D 130.192.7.228/30 130.192.7.229 0 D 130.192.5.0/24 130.192.5.1 0 S 130.192.0.0/21 130.192.7.218 1 S 130.192.6.0/23 130.192.7.230 2 S 130.192.7.220/30 130.192.7.218 1 S 0.0.0.0/0 130.192.7.224 2 Si presti attenzione alla rete punto-punto tra R2 ed R4: il percorso migliore è attraverso il router R2, ma purtroppo ricade nello spazio di indirizzamento della route maggiormente specifica 130.192.6.0/23 che punta nella direzione sbagliata. Pertanto in questo caso è necessario indirizzarla a sua volta con una route maggiormente specifica. R2 Tipo Rete destinazione Next hop Costo D 130.192.7.216/30 130.192.7.218 0 D 130.192.7.220/30 130.192.7.221 0 D 130.192.0.0/23 130.192.0.1 0 D 130.192.2.0/23 130.192.2.1 0 D 130.192.4.0/24 130.192.4.1 0 S 0.0.0.0/0 130.192.7.217 2 La tabella di routing di R2 è molto compressa in quanto, a causa dei costi dei links sulla topologia in esame, tutte le destinazioni non direttamente connesse si raggiungono attraverso il router R1. R3 Tipo Rete destinazione Next hop Costo D 130.192.7.228/30 130.192.7.229 0 D 130.192.7.232/30 130.192.7.233 0 D 130.192.7.208/29 130.192.7.209 0 D 130.192.7.128/26 130.192.7.129 0 D 130.192.6.0/24 130.192.6.1 0 S 130.192.7.0/25 130.192.7.234 1 S 130.192.7.192/28 130.192.7.234 1 S 130.192.7.220/30 130.192.7.234 1 S 0.0.0.0/0 130.192.7.229 2 Tipo Rete destinazione Next hop Costo D 130.192.7.220/30 130.192.7.222 0 R4 51 D 130.192.7.232/30 130.192.7.234 0 D 130.192.7.0/25 130.192.7.1 0 D 130.192.7.192/28 130.192.7.193 0 S 0.0.0.0/0 130.192.7.233 2 52 3.12. Soluzione per l’esercizio n. 12 L’esercizio è decisamente simile a quello precedente. La differenza sta nel fatto che, cambiando i pesi ai links, i percorsi migliori per raggiungere le varie destinazioni possono essere diversi rispetto al caso precedente. In particolare, per quanto riguarda le LAN connesse ad R4 esistono due strade equivalenti che possono essere utilizzate per migliorare le aggregazioni a partire da R1, come si vede dalla figura seguente: 500 hosts 50 hosts* 500 hosts 100 hosts* Internet 1 Reti connesse R1 R2 Address range: 130.192.0.0/21 1 1 33 hosts R3 Area 1 R4 1 Area 2 120 hosts 5 hosts 210 hosts 10 hosts Purtroppo, la particolare dislocazione delle reti IP non permette una aggregazione migliore rispetto a quella già evidenziata nell’esercizio precedente e pertanto il piano di indirizzamento risultante sarà identico a quello precedente: 500 hosts Internet 130.192.7.224/30 7.225/30 130.192.0.0/23 5.1/24 7.217/30 1 7.218/30 130.192.7.216/30 R1 7.229/30 130.192.7.128/26 33 hosts Address range: 130.192.0.0/21 500 hosts 6.1/24 4.1/24 7.221/30 1 130.192.7.220/30 130.192.7.228/30 7.129/26 0.1/23 2.1/23 R2 1 7.230/30 130.192.2.0/23 R3 7.233/30 7.209/29 R4 7.234/30 1 130.192.7.232/30 130.192.6.0/24 130.192.7.208/29 210 hosts 5 hosts 7.1/25 130.192.7.0/25 120 hosts 53 7.222/30 7.193/28 130.192.7.192/28 10 hosts 100 hosts* 130.192.5.0/24 130.192.4.0/24 50 hosts* Ne conseguono le seguenti routing table ricavate in modo da massimizzare l’aggregazione delle route. Si noti come mediamente siano più grandi dell’esercizio precedente in quanto non esiste più il link R2R4 a costo molto alto che, di fatto, impediva ai pacchetti di seguire quella direzione, il che consentiva di aggregare un maggior numero di destinazioni nelle route che seguivano le altre direzioni. R1 Tipo Rete destinazione Next hop Costo D 130.192.7.216/30 130.192.7.217 0 D 130.192.7.224/30 130.192.7.225 0 D 130.192.7.228/30 130.192.7.229 0 D 130.192.5.0/24 130.192.5.1 0 S 130.192.0.0/21 130.192.7.218 2 S 130.192.6.0/23 130.192.7.230 2 S 130.192.7.220/30 130.192.7.218 1 S 0.0.0.0/0 130.192.7.224 2 Tipo Rete destinazione Next hop Costo D 130.192.7.216/30 130.192.7.218 0 D 130.192.7.220/30 130.192.7.221 0 D 130.192.0.0/23 130.192.0.1 0 D 130.192.2.0/23 130.192.2.1 0 D 130.192.4.0/24 130.192.4.1 0 S 130.192.7.232/30 130.192.7.222 1 S 130.192.7.192/28 130.192.7.222 1 S 130.192.7.0/25 130.192.7.222 1 S 0.0.0.0/0 130.192.7.217 2 Tipo Rete destinazione Next hop Costo D 130.192.7.228/30 130.192.7.229 0 D 130.192.7.232/30 130.192.7.233 0 D 130.192.7.208/29 130.192.7.209 0 D 130.192.7.128/26 130.192.7.129 0 D 130.192.6.0/24 130.192.6.1 0 S 130.192.7.0/25 130.192.7.234 1 S 130.192.7.192/28 130.192.7.234 1 S 130.192.7.220/30 130.192.7.234 1 S 0.0.0.0/0 130.192.7.229 2 R2 R3 54 R4 Tipo Rete destinazione Next hop Costo D 130.192.7.220/30 130.192.7.222 0 D 130.192.7.232/30 130.192.7.234 0 D 130.192.7.0/25 130.192.7.1 0 D 130.192.7.192/28 130.192.7.193 0 S 130.192.7.216/30 130.192.7.221 2 S 130.192.0.0/22 130.192.7.221 1 S 130.192.4.0/24 130.192.7.221 1 S 0.0.0.0/0 130.192.7.233 2 55 3.13. Soluzione per l’esercizio n. 13 La soluzione proposta dal gestore di rete presenta numerose criticità. Route di default a costo 10 sul router R1 Presumibilmente il gestore ha alzato il costo della route di default per farla scegliere come “ultima spiagga” quando le altre route non sono adatte. Tuttavia, un valore di costo cosı̀ alto è assolutamente inutile in quanto il costo di una route diventa un parametro di scelta solamente in presenza di due route che puntano alla stessa destinazione. In caso le route puntino a destinazioni diverse (ad esempio perchè si riferiscono a spazi di indirizzamento diversi), la route maggiormente specifica vince. Route a costo superiore per le reti 7.0/25 e 7.192/28 L’intenzione del gestore di rete era presumibilmente quella di definire delle route di backup per le due reti 7.0/25 e 7.192/28, qualora la rotta aggregata 6.0/23 risultasse indisponibile. Tuttavia, per lo stesso motivo evidenziato al punto precedente, queste route verranno sempre scelte come strada da seguire per le destinazioni in esame. Pertanto, se proprio si volessero impostare delle route di backup, la configurazione del router R1 dovrebbe essere almeno modificata in modo definire delle route esplicite per le reti 130.192.7.0/25 e 130.192.7.192/28, in modo che queste destinazioni non vengano instradate attraverso la route aggregata 130.192.6.0/23, quindi ridondare queste due route con altrettante da usare in caso di backup. La routing table di R1 diventerebbe la seguente (omettendo le route dirette): Tipo Rete destinazione Next hop Costo S 130.192.0.0/21 130.192.7.218 1 S 130.192.6.0/23 130.192.7.230 1 S 130.192.7.220/30 130.192.7.218 1 S 130.192.7.0/25 130.192.7.230 1 S 130.192.7.192/28 130.192.7.230 1 S 130.192.7.0/25 130.192.7.218 2 S 130.192.7.192/28 130.192.7.218 2 S 0.0.0.0/0 130.192.7.224 2 Robustezza al guasto R3-R4 Il problema maggiore della soluzione è però il fatto che le route di “backup” per le reti 7.0/25 e 7.192/28 non sono assolutamente efficaci, in quanto R1 non è assolutamente in grado di reagire correttamente al guasto sul link R3-R4. Infatti, anche immaginando che il router R3 si accorga del guasto e che la sua routing table risulti essere quella indicata nella figura seguente (tutte le route che si appoggiavano sul next hop 130.192.7.234 vengono invalidate, e pertanto tutto il traffico destinato a reti non direttamente connesse seguirà la route di defalt che è l’unica rimasta valida), nessuno comunica ad R1 l’esistenza di questo guasto e pertanto il router non può sapere che è necessario utilizzare le route a costo superiore per raggiungere quelle destinazioni. Il risultato, evidenziato in figura, sarà che alla ricezione di un pacchetto destinato ad un host in una di queste due reti il router R1 continuerà ad utilizzare le route a costo 1 verso R3, ma R3 utilizzerà la default route e spedirà quel pacchetto indietro ad R1 (le route utilizzate sono indicate nella figura in italic). Il pacchetto entrerà in loop e ci rimarrà, rimbalzando tra R1 ed R3, fino a che il suo tempo di vita scade (il valore del campo TTL nell’header IP diventa zero). 56 500 hosts 130.192.7.224/30 7.225/30 5.1/24 7.217/30 130.192.7.128/26 130.192.2.0/23 0.1/23 2.1/23 1 130.192.7.216/30 R1 33 hosts 130.192.0.0/23 1 1 130.192.7.220/30 130.192.7.228/30 7.230/30 7.129/26 6.1/24 4.1/24 7.221/30 R2 R3 7.233/30 1 7.209/29 130.192.6.0/24 210 hosts R1 (only static routes) =================================== S 130.192.0.0/21 130.192.7.218 1 S 130.192.6.0/23 130.192.7.230 1 S 130.192.7.220/30 130.192.7.218 1 S 0.0.0.0/0 130.192.7.224 10 S 130.192.7.0/25 130.192.7.218 2 S 130.192.7.192/28 130.192.7.218 2 130.192.7.232/30 130.192.7.208/29 5 hosts 100 hosts* 130.192.5.0/24 Internet 500 hosts 130.192.4.0/24 50 hosts* R4 7.1/25 130.192.7.0/25 120 hosts 7.193/28 130.192.7.192/28 10 hosts R3 (only static routes) ================================== S 130.192.7.0/25 130.192.7.234 1 S 130.192.7.192/28 130.192.7.234 1 S 130.192.7.220/30 130.192.7.234 1 S 0.0.0.0/0 130.192.7.229 2 Purtroppo non c’è soluzione a questo problema in quanto è intrinseco all’utilizzo delle route di backup con il routing statico. Non è pertanto possibile proporre soluzioni migliorative al gestore se non quella di adottare un protocollo di routing dinamico all’interno della sua rete. 57 3.14. Soluzione per l’esercizio n. 14 3.14.1. Caso 1 Il router R2 rileva che il pacchetto deve seguire la default route e pertanto deve essere consegnato al next hop 192.168.0.1. Questo indirizzo è direttamente raggiungibile attraverso la sua interfaccia di destra; inoltre il suo indirizzo MAC associato (indirizzo a cui consegnare la trama a livello data-link) è già conosciuto in quanto presente nella ARP cache. Pertanto, il router R2 inoltrerà il pacchetto verso il router R1, inserendo però l’indirizzo 00:00:00:DD:DD:DD come indirizzo Ethernet di destinazione. Tale trama verrà però scartata dal router R1 in quanto l’indirizzo MAC presente come destinazione non coincide con quello presente sulla sua interfaccia. Di conseguenza, il pacchetto generato da H2 non arriverà mai a destinazione e verrà droppato da R1. 3.14.2. Caso 2 Il router R2 rileva che il pacchetto deve seguire la default route e pertanto deve essere consegnato al next hop 192.168.1.1. Tuttavia, questo indirizzo non fa parte delle reti IP direttamente connesse ad R2 e pertanto R2 non ha idea di come inoltrare il pacchetto al next hop indicato nella tabella di routing. Il fatto che il MAC address relativo a questo indirizzo IP sia presente nella ARP cache non è di nessun aiuto, in quanto il router R2 abortirà l’invio del pacchetto prima di consultare l’ARP cache. Questa tabella viene infatti consultata quando si vuole scoprire l’indirizzo MAC di un host direttamente raggiungibile, condizione che non vale per l’indirizzo 192.168.1.1. Di conseguenza, anche in questo caso il pacchetto generato da H2 non arriverà mai a destinazione e verrà droppato da R2. 3.14.3. Caso 3 Il router R2 rileva che il pacchetto deve seguire la default route e pertanto deve essere consegnato al next hop 192.168.4.1. Questo indirizzo è direttamente raggiungibile attraverso la sua interfaccia ethernet con indirizzo 192.168.4.254; inoltre il suo indirizzo MAC associato (indirizzo a cui consegnare la trama a livello data-link) è giaà conosciuto in quanto presente nella ARP cache. Pertanto, il router R2 inoltrerà il pacchetto verso la LAN1, inserendo l’indirizzo 00:00:00:DD:DD:DD come indirizzo Ethernet di destinazione. Tale trama verrà pertanto ricevuta dal router R2 stesso ma sull’interfaccia 192.168.3.254, in quanto l’indirizzo MAC presente come destinazione coincide con quello presente su quella interfaccia2 . A questo punto il pacchetto verrà nuovamente esaminato da R2 che ri-prenderà le stesse decisioni già applicate in precedenza. Di conseguenza, anche in questo caso il pacchetto generato da H2 non arriverà mai a destinazione ma ciclerà sulla LAN 1 fino a quando esaurirà il suo tempo di vista (IP TTL) e verrà finalmente droppato da R2. 3.14.4. LAN 1 realizzata in tecnologia switching La tecnologia utilizzata per realizzare la LAN1 (“shared” oppure “switched”) non ha nessuna influenza nella soluzione dell’esercizio. 2 Si noti come l’indirizzo del next hop contenuto nella routing table (ossia 192.168.4.1) è assolutamente svincolato dall’indirizzo effettivo dell’interfaccia che riceve questo pacchetto sulla LAN (ossia 192.168.3.254). 58