Esercizi di riepilogo: Routing

Documenti analoghi
RETI DI CALCOLATORI II

4c. Esercizi sul livello di Rete Instradamento in Internet

Fondamenti di Internet e Reti

Open Shortest Path First (OSPF)

Routing dinamico: OSPF

Routing IP. IP routing

Introduzione. Il routing permette la comunicazione tra due nodi differenti anche se non sono collegati direttamente

CORSO DI RETI DI CALCOLATORI II (Docente Luca Becchetti) Esercizi su instradamento e tabelle di routing 1

RETI DI CALCOLATORI II

4b. Esercizi sul livello di Rete Inoltro in IP

Suddivisione di grandi reti in aree (1/3)

Corso di Laurea in Informatica Esame di Reti Prof. Panzieri frame con source address uguale a MAC_UNI X X X X X

Reti di Calcolatori:

Dr. S. Greco Polito, Instradamento

Routing. Parte prima

Fondamenti di Internet e Reti. Antonio Capone, Matteo Cesana, Ilario Filippini, Guido Maier

Algoritmo di Dijkstra

Routing. Forwarding e routing

Reti di Calcolatori 1

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori a.a. 2009/10

INTERNET e RETI di CALCOLATORI A.A. 2015/2016 Capitolo 4 Instradamento e Algoritmi di instradamento Fausto Marcantoni

Spanning Tree Protocol (STP) DIET Dept

Laboratorio di Reti di Comunicazione ed Internet Mod. 2

Redistribuzione route esterne in OSPF

Instradamento per servizi di tipo circuito virtuale. Dr. S. Greco Polito,

Sommario. Il modello TCP/IP. Introduzione al modello TCP/IP. Imbustamento in OSI. TCP/IP e OSI Applicazione (telnet, ftp, smtp,...

Protocolli di Routing

Instradamento in IPv4

R. Cusani - F. Cuomo, Telecomunicazioni - Network layer: Routing in IP, Maggio 2010

Parte II - Reti di Calcolatori ed Internet IL LIVELLO RETE

Routing statico. Routing statico. Tolleranza ai guasti. Routing statico. Fase di progetto. 09CDUdc Reti di Calcolatori.

Formato del datagramma IP

Il routing in Internet Interior Gateway Protocols

Routing nelle reti a pacchetto

Routing IP A.A. 2006/2007. Walter Cerroni. Routing gerarchico in Internet

Corso di Reti di Telecomunicazioni. Giovanni Schembra. Trasmissione trame su canale broadcast

Esercizi: Telecomunicazioni parte Reti

RIP: Routing Information Protocol

Commutazione di pacchetto

ROUTER NOTE. Dispositivo attivo di rete che lavora a livello 3 della pila ISO-OSI, si occupa di instradare pacchetti di dati tra reti eterogenee

Strato di rete (parte 3) Funzione di instradamento: generalità

RTT costante pari a 0.5 secondi; primo RTO= 2*RTT;

Reti di calcolatori. Lezione del 10 giugno 2004

Internet Protocol Versione 4: instradamento e routing. Aspetti di forwarding e routing del protocollo IPv4

Routers e LAN aggregati in regioni prendono il nome di Autonomous System quando sono controllati dalla stessa amministrazione; in un AS:

Livello di Rete. Prof. Filippo Lanubile. Obiettivo

IGRP Interior Gateway Routing Protocol

Seconda Prova in itinere Esempio

Configurazione delle interfacce di rete

Politecnico di Milano Advanced Network Technologies Laboratory. Esercizi Inoltro

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2011/12)

4a. Esercizi sul livello di Rete - Indirizzamento

Il modello TCP/IP. Sommario

Networking e Reti IP Multiservizio

Parte II: Reti di calcolatori Lezione 17

28/05/2015 Laura Ricci

Lezione n.8 LPR- Informatica Applicata

Domande di Riepilogo (1)

Prova 2-8 Luglio 2016

Reti a commutazione di pacchetto

Livello rete strato di Rete

la trasmissione è regolata solamente dall algoritmo per il controllo del flusso prima di inviare l ACK.

Reti di Comunicazione e Internet

Appello 18 Luglio Importante: usare lo spazio dopo ogni esercizio per le risposte. Esercizio 1 Esercizio 2 Esercizio 3 Domande Laboratorio

Il Sistema di Routing. Routing nell Interrete. Routing con Informazioni Parziali. Propagazione delle Rotte

P2p la teoria dei sistemi complessi per modellare reti p2p

RETI DI CALCOLATORI. Domande di riepilogo Quarta Esercitazione. Quali sono le differenze tra Bridge, Router e Gateway?

Open Shortest Path First

Evoluzione del livello di rete

Appello Esempio d esame. Es1 (6 pt) Es2 (6 pt) Es3 (6 pt) Ques (9 pt) Lab (6pt)

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 20 Luglio 2005

II prova in itinere - Rete Internet (ing. Giovanni Neglia)

TFA 2014/15 SISTEMI E RETI DI CALCOLATORI PER L'INSEGNAMENTO UNITA' DIDATTICA: ALGORITMI DI ROUTING

Politecnico di Milano Advanced Network Technologies Laboratory. ESERCIZI da Temi d Esame e Ripasso

Reti di calcolatori a.a. 2005/06 Prima verifica in itinere

Marco Listanti. Esercitazione 7 DIET

Esercizi di riepilogo: Processamento di traffico

Programmazione in Rete

Packet Tracer: simulatore di RETE. (Router.pkt)

Algoritmi e protocolli di Routing

Parte I. Ibrido MPLS. Figura 1.1

Marco Listanti. Indirizzamento IP. DIET Dept. Telecomunicazioni (Canale 2) - Prof. Marco Listanti - A.A. 2016/2017

Sistemi e Tecnologie della Comunicazione

Definizione. Introduzione alle MANET. Host Mobili (2) Host Mobili (1)

Reti di calcolatori. Lezione del 18 giugno 2004

ESERCIZI SVOLTI. Eserczio

Protocolli strato 3. Strato 3: Instradamento. Gruppo Reti TLC. Funzioni strato rete. Funzioni strato rete. Instradamento. Costo

Funzioni e architettura logica Ricezione e filtraggio

Open Shortest Path First

Livello di Rete. Prof. Filippo Lanubile. Obiettivo

SWITCH. 100 Mb/s (UTP cat. 5E) Mb/s SWITCH. (UTP cat. 5E) 100 Mb/s. (UTP cat.

RETI DI CALCOLATORI Home Work ritardi e livello applicativo

Piano esecutivo. INFN CNAF cnaf GARR-B. Sommario. GARR-B Piano Esecutivo. Introduzione. Versione Cristina Vistoli INFN-CNAF

BGP BEST PATH and Attribute value. Massimiliano Sbaraglia

Appunti sulle Reti. Routing in Internet. Ver.1 - Testo scritto da Pizzichetti Pasquale, Treviso marzo 1998,

Pier Luca Montessoro (si veda la nota di copyright alla slide n. 2) 1

Indirizzi IP, Classi, Subnetting, NAT

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Le Reti Informatiche

Appello 20 Luglio Tempo a disposizione per lo svolgimento: 2 ore Avvertenza: Si usi lo spazio dopo ogni quesito per lo svolgimento.

Transcript:

Politecnico di Torino Corso di Tecnologie per Reti di Calcolatori Esercizi di riepilogo: Routing Fulvio Risso October 8, 00

Contents I. Esercizi 4. Distance Vector 5.. Distance Vector con e senza Split Horizon......................... 5.. Distance Vector e Triggered Updates............................ 6.3. Convergenza del Distance Vector ()............................ 7.4. Convergenza del Distance Vector ()............................ 8.5. Convergenza del Distance Vector (3)............................ 9.6. Convergenza del Distance Vector (4)............................ 0. Link State.. Convergenza del Link State ()................................. Convergenza del Link State ()............................... 3.3. Determinazione del Link State Database con OSPF in area singola........... 4.4. OSPF con area multipla................................... 5 3. Domande di teoria 6 3.. Algoritmi di Forwarding e Routing............................. 6 3.. RIP.............................................. 7 3.3. Link State........................................... 8 3.4. OSPF............................................. 9 II. Soluzioni 0 4. Distance Vector 4.. Distance Vector con e senza Split Horizon......................... 4... Split Horizon disabilitato.............................. 4... Split Horizon abilitato................................ 4.. Distance Vector e Triggered Updates............................ 4.3. Convergenza del Distance Vector ()............................ 3 4.3.. Fault........................................ 3 4.3.. Fault........................................ 3 4.4. Convergenza del Distance Vector ()............................ 4 4.5. Convergenza del Distance Vector (3)............................ 5 4.5.. Partenza a freddo.................................. 5 4.5.. Tempo di convergenza................................ 5 4.5.3. Guasto (route poisoning non abilitato)....................... 5 4.5.4. Guasto (route poisoning abilitato)......................... 6 4.6. Convergenza del Distance Vector (4)............................ 8 4.6.. Partenza a freddo.................................. 8

4.6.. Guasto........................................ 30 4.6.3. Guasto con hold-down................................ 3 4.6.4. Tempo di convergenza................................ 33 5. Link State 34 5.. Convergenza del Link State ()............................... 34 5... Accensione di R................................... 34 5... Guasto........................................ 35 5.. Convergenza del Link State ()............................... 36 5... Accensione di R3................................... 36 5... Shortest Path Spanning Tree............................ 36 5..3. Guasto........................................ 37 5.3. Determinazione del Link State Database con OSPF in area singola........... 39 5.3.. Albero di instradamento............................... 39 5.3.. Routing Table.................................... 39 5.3.3. Link State Database................................. 4 5.3.4. Designated e Backup Designated Router...................... 4 5.4. OSPF con area multipla................................... 4 6. Domande di teoria 43 6.. Algoritmi di Forwarding e Routing............................. 43 6.. RIP.............................................. 45 6.3. Link State........................................... 46 6.4. OSPF............................................. 47 3

Part I. Esercizi 4

. Distance Vector.. Distance Vector con e senza Split Horizon Sia data le rete sottostante, nella quale ogni router scambia informazioni di routing attraverso un protocollo di tipo distance vector che segue fedelmente l algoritmo teorico. Si scrivano i distance vector generati da R non appena questo router rileva il guasto, differenziandone il comportamento a seconda che l algoritmo di split horizon sia disabilitato oppure abilitato. R R R3 9.68..9/30 9.68../4 9.68../30 9.68..6/30 9.68.4./4 R4 9.68.3./4 5

.. Distance Vector e Triggered Updates Sia data le rete sottostante, nella quale ogni router scambia informazioni di routing attraverso un protocollo di tipo distance vector che segue fedelmente l algoritmo teorico con l aggiunta delle Triggered Updates. Si scrivano i distance vector scambiati tra R ed R4 a fronte del rilevamento del guasto da parte di R, supponendo che i router abbiano l algoritmo di Split Horizon with Poisonous Reverse abilitato. R R R3 9.68..9/30 9.68../4 9.68../30 9.68..6/30 9.68.4./4 R4 9.68.3./4 6

.3. Convergenza del Distance Vector () Sia data le rete sottostante, nella quale ogni router scambia informazioni di routing attraverso un protocollo di tipo distance vector che segue fedelmente l algoritmo teorico. Supponga che nella rete si possano verificare due guasti, identificati nel disegno come Fault e Fault. Si calcoli dopo quanto tempo il router R4 vedrà sparire dalla sua routing table la rete 9.68..0/4 nei due casi, supponendo che: i router non facciano uso di Triggered Updates i router abbiano un Route Invalid Timer di 80s e un Route Flush Timer di 40s l algoritmo di Route Poisoning sia disabilitato l algoritmo di Split Horizon sia abilitato su tutti i router. R S R R3 R4 Fault Fault 9.68..0/4 7

.4. Convergenza del Distance Vector () Sia data le rete sottostante, nella quale ogni router scambia informazioni di routing attraverso un protocollo di tipo distance vector che segue fedelmente l algoritmo teorico, e che si verifichi ad un certo punto un guasto come indicato nella figura. Si calcoli dopo quanto tempo il router R4 vedrà sparire dalla sua routing table la rete 9.68..0/4, supponendo che: i router facciano uso di Triggered Updates, che sono ritardate di 5s i router abbiano un Route Invalid Timer di 80s e un Route Flush Timer di 40s l algoritmo di Route Poisoning sia abilitato l algoritmo di Split Horizon sia abilitato su tutti i router. R R R3 R4 9.68..0/4 8

.5. Convergenza del Distance Vector (3) Data la rete rappresentata in figura, ipotizzando che su ogni router sia configurato un protocollo di routing basato su distance vector che non implementi alcun accorgimento per incrementare la stabilità e la velocità di convergenza:. Simulare la partenza a freddo di tale protocollo, elencando i distance vector scambiati fino al raggiungimento di una situazione stabile.. Ipotizzando che i messaggi di update siano scambiati in modo sincrono, con una cadenza di 30s (update timer), qual è il tempo di convergenza della rete? 3. Data la rete a regime, simulare un guasto sul link C tra R ed R3, sia nel caso in cui non sia presente un meccanismo di route poisoning, sia nel caso in cui questo sia presente. Che differenze di comportamento si rilevano tra i due casi? 9

Net E R Link A Link B R Link C R3 Net D Net F.6. Convergenza del Distance Vector (4) H G R4 C R3 D B R A R E F Data la rete rappresentata in figura, ipotizzando che su ogni router sia configurato il protocollo RIP con split horizon:. Simulare la partenza a freddo, elencando i distance vector scambiati fino al raggiungimento di una situazione stabile. 0

. Data la rete a regime, simulare un guasto sull interfaccia di R attestata sulla rete F. 3. Ripetere il punto, ipotizzando che sia implementato un meccanismo di route hold-down (holddown timer = 80s). 4. Data la rete di Figura a regime simulare l inserimento di un router RIP (R5) sulla rete E (il router R5 ha due interfacce: una si affaccia sulla rete E e l altra si affaccia sulla rete I). 5. Ipotizzando che i messaggi di update siano scambiati in modo sincrono, con una cadenza di 30s (update timer), qual è il tempo di convergenza della rete nel caso proposto nel punto 4?

. Link State.. Convergenza del Link State () Data la rete rappresentata in figura, ipotizzando che su ogni router sia configurato un protocollo link-state (si supponga inoltre che il costo di tutti i link sia unitario):. Simulare le operazioni effettuate dal protocollo quando R viene acceso, descrivendo i messaggi scambiati sulla rete (supporre che R e R3 siano già operativi che la rete sia in una situazione stabile e che il meccanismo usato dall algoritmo sia lo stesso di OSPF).. Supponendo la rete in una situazione stabile, simulare un guasto sul link C tra R e R3 (si ipotizzi che il meccanismo usato dall algoritmo sia lo stesso di OSPF). Net E R Link A Link B R Link C R3 Net D Net F

.. Convergenza del Link State () Data la rete rappresentata in figura, ipotizzando che su ogni router sia configurato un protocollo link-state (i costi dei link sono indicati nell immagine):. Simulare le operazioni effettuate dal protocollo quando R3 viene acceso, descrivendo i messaggi scambiati sulla rete (supporre che R, R e R4 siano già operativi, che la rete sia in una situazione stabile e che il meccanismo usato dall algoritmo sia lo stesso di OSPF).. Calcolare lo shortest path spanning tree per ogni router. 3. Supponendo la rete in una situazione stabile, simulare un guasto sul link C tra R e R3 (si ipotizzi che il meccanismo usato dall algoritmo sia lo stesso di OSPF). 4. Il guasto sul link scatena qualche cambiamento nelle routing table? H G R4 C 3 R3 D B R A 4 R E F 3

.3. Determinazione del Link State Database con OSPF in area singola Data la rete sottostante composta da un insieme di router e di links i cui costi di attraversamento sono indicati in blu, determinare: l albero di instradamento dei vari router la routing table dei vari router il link state database presente sui router. Indicare infine se dalla lettura del database sia possibile stabilire gli indirizzi del Designated Router e del Backup Designated Router per quanto riguarda la rete NetL. NetA NetB R NetF 4 R NetG 3 NetL NetM R3 NetC NetH R5 NetI 3 R4 NetE NetD Si supponga che l intera rete appartenga ad un solo dominio di tipo Link State (es. OSPF in area 0). 4

.4. OSPF con area multipla Si consideri la rete in figura dove sono indicati router, reti e costi associati alle interfacce dei router. Nell ipotesi di usare il protocollo di routing OSPF e di suddividere la rete in 3 aree come indicato, disegnare la rete vista dal Router R. N () Network (cost) R R N () N3 () R3 R4 N8 () N9 () N0 () N4 () N5 () R8 R9 R0 R5 R6 N6 () N () R7 N7 () 5

3. Domande di teoria 3.. Algoritmi di Forwarding e Routing. Quali sono le principali differenze tra le tecniche denominate forwarding by network address e label swapping?. A cosa serve un algoritmo di routing? 3. A cosa serve un algoritmo di forwarding? 4. In cosa consiste un routing loop? In quali circostanze può verificarsi? 5. Che cos è un black-hole? In quali circostanze può verificarsi? 6. Il routing dinamico è sempre preferibile al routing statico? Argomentare. 7. In cosa consiste il selective flooding? Quali accorgimenti richiede rispetto al flooding puro? 8. Comparare il routing centralizzato col routing isolato, evidenziando vantaggi e svantaggi delle due tecniche. 9. Quali informazioni vengono scambiate tra i nodi di rete che utilizzano un algoritmo di routing di tipo distance vector? 0. Cos è un triggered update?. Quali miglioramenti apporta la tecnica dello split-horizon ad un algoritmo di tipo distance vector? Che tipo di problemi non è in grado di risolvere?. A cosa serve l hold-down timer? 6

3.. RIP. Che cos è il RIP?. Quale tipo di metrica utilizza? Qual è la metrica che indica una rete irraggiungibile? 3. Descrivere il funzionamento dei timer del protocollo RIP 4. Dopo quanti update mancati una route viene etichettata come irraggiungibile? 5. A cosa servono i messaggi di tipo request nel RIP? 6. Qual è la maggiore differenza tra le due versioni del protocollo RIP? 7. Che cos è e a cosa serve il route poisoning? 7

3.3. Link State. Quali sono le informazioni trasportate nei pacchetti link state?. A che cosa servono i pacchetti di Hello? 3. Descrivere il meccanismo usato dai routers per sincronizzare i rispettivi link state database 4. Come vengono calcolate le tabelle di routing in un algoritmo link state? 5. In quale modo gli algoritmi link state garantiscono la coerenza della rete? 6. Perchè le reti che utilizzano un protocollo link state convergono più velocemente rispetto a quelle che fanno uso di protocolli distance vector? 7. Perchè i numeri di sequenza sono importanti nei protocolli link state? 8. Illustrare come le reti broadcast (es. LAN Ethernet) vengono viste e gestite negli algoritmi di routing link state 8

3.4. OSPF. Che cos è OSPF?. Che cos è un area stub? 3. Per quale motivo in OSPF viene utilizzato il concetto di area? 4. Che cos è un area border router? 5. Che cos è un network link state? 6. Che cos è un router link state? 7. Perchè la sommarizzazione è importante in OSPF? 9

Part II. Soluzioni 0

4. Distance Vector 4.. Distance Vector con e senza Split Horizon 4... Split Horizon disabilitato Quando il router R rileva il guasto indicato in figura, l algoritmo del distance vector prevede che vengano eseguiti i seguenti passi:. Cancellazione dei distance vector provenienti dal link non più funzionante (che sono memorizzati all interno del router); in questo caso viene eliminato il vettore generato da R;. Fusione dei distance vector rimanenti; 3. Calcolo della nuova tabella di routing, e se questa cambia rispetto alla versione precedente, viene inoltrato un nuovo distance vector; in questo caso la tabella varia, poichè, subito dopo il guasto, R tenterà di utilizzare R4 oppure R3 per raggiungere, ad esempio, la rete 9.68..0/4. Questo comportamento è naturalmente errato, ma i router R3 e R4 non sono in grado di riconoscere il guasto verificatosi, pertanto nelle loro routing table compare ancora quella rete, avente come next hop R (che viene creduto ancora valido), e quindi la rete viene annunciata nei loro distance vector. Pertanto, uno dei possibili distance vector generati da R subito dopo aver rilevato il guasto è: 4... Split Horizon abilitato DV(R) Rete annunciata Costo 9.68..0/30 3 9.68..4/30 9.68..8/30 9.68..0/4 4 9.68.3.0/4 9.68.4.0/4 Nel caso in cui l algoritmo di split horizon sia abilitato, la situazione è totalmente differente. In questo caso infatti, i router R3 e R4, nei distance vector generati verso R, non annunciano più la rete 9.68..0/4, perchè i due router utilizzano proprio R come next hop per quella route. Di conseguenza, i distance vector inviati da R verso i link ai quali si trovano connessi R3 e R4 sono, rispettivamente: DV(R) verso R3 Rete annunciata Costo 9.68..4/30 9.68.3.0/4 DV(R) verso R4 Rete annunciata Costo 9.68..8/30 9.68.4.0/4

4.. Distance Vector e Triggered Updates Nel momento in cui R rileva il guasto, il meccanismo delle triggered updates prevede che si attenda un tempo casuale (per evitare intasamenti nella rete e accumulare altre possibili rilevazioni di guasto). Dopo questa attesa, il router invia sui suoi link (e quindi anche verso R4) un pacchetto di triggered update, contenente le informazioni sulle sole route che sono cambiate in seguito alla variazione di connettività; in questo caso quindi, in questo pacchetto verranno annunciate le reti 9.68..0/4 e 9.68..0/30 a costo infinito. Di conseguenza, R4, dopo aver ricevuto il triggered update da R, rileverà a sua volta una variazione delle route nella routing table (poichè una rete è diventata irraggiungibile), e quindi genererà anche lui un triggered update, contenente le stesse informazioni di quello precedente. Inoltre, utilizzando l algoritmo di split horizon con l opzione Poisonous Reverse abilitata, due possibili distance vector scambiati tra R e R4 dopo il guasto sono: DV(R) verso R4 Rete annunciata Costo 9.68..4/30 infinito 9.68..8/30 9.68.3.0/4 infinito 9.68.4.0/4 DV(R4) verso R Rete annunciata Costo 9.68..4/30 infinito 9.68..8/30 infinito 9.68.3.0/4 9.68.4.0/4 infinito

4.3. Convergenza del Distance Vector () 4.3.. Fault Istante 0 (secondi): Si verifica il guasto; R non lo rileva (poichè non gli arriva il segnale di link down, essendo il guasto oltre lo switch) e continua a annunciare la rete; Istante 80: R, essendo scaduto il route invalid timer, rileva il guasto, e inizia a inviare i distance vector senza la rete; R3 non rileva comunque il guasto e continua a annunciare la rete; Istante 360: R3, essendo scaduto il route invalid timer, rileva il guasto, e inizia a inviare i distance vector senza la rete; R4 non rileva comunque il guasto e continua a annunciare la rete; Istante 540: R4, essendo scaduto il route invalid timer, rileva il guasto, e inizia a inviare i distance vector senza la rete; La rete è comunque ancora presente nella sua routing table; Istante 780: R4, essendo scaduto il route flush timer, rimuove la rete dalla sua routing table; Tutte queste tempistiche possono essere soggette ad un offset che va da 0 a 30 secondi, in base all istante in cui si verifica il guasto rispetto all ultimo distance vector inviato da R e ricevuto da R. 4.3.. Fault Istante 0 (secondi): Si verifica il guasto; R lo rileva (essendo il guasto prima del collegamento con lo switch) e non annuncia più la rete 9.68..0/4; Istante 80: R3, essendo scaduto il route invalid timer, rileva il guasto, e inizia a inviare i distance vector senza la rete; R4 non rileva comunque il guasto e continua a annunciare la rete; Istante 360: R4, essendo scaduto il route invalid timer, rileva il guasto, e inizia a inviare i distance vector senza la rete; La rete è comunque ancora presente nella sua routing table; Istante 600: R4, essendo scaduto il route flush timer, rimuove la rete dalla sua routing table; Tutte queste tempistiche possono essere soggette ad un offset che va da 0 a 30 secondi, in base all istante in cui si verifica il guasto rispetto all ultimo distance vector inviato da R e ricevuto da R3. 3

4.4. Convergenza del Distance Vector () Istante 0 (secondi): Si verifica il guasto; R lo rileva e riconosce come irraggiungibile la rete 9.68..0/4; Istante 5: R invia un triggered update su tutte le interfacce, annunciando la rete a costo infinito (essendo il route poisoning abilitato); R3 rileva quindi il guasto e riconosce come irraggiungibile la rete; Istante 0: R3 invia un triggered update su tutte le interfacce, annunciando la rete a costo infinito (essendo il route poisoning abilitato); R4 rileva quindi il guasto e riconosce come irraggiungibile la rete; Istante 50: R4, essendo scaduto il route flush timer, rimuove la rete dalla sua routing table; 4

4.5. Convergenza del Distance Vector (3) 4.5.. Partenza a freddo Siccome in questo specifico caso non viene implementata nessuna particolare opzione (come lo split horizon), ogni router invierà lo stesso distance vector su tutte le sue interfacce. Per simulare la partenza a freddo, si suppone di inizializzare la rete alimentando tutti i nodi contemporaneamente. In questo stato, ciascuno dei nodi è caratterizzato unicamente da una conoscenza locale, e dopo un certo numero di passi (corrispondenti a scambi di distance vector), la rete raggiunge una situazione stabile: Passo DV(R) A C D DV(R) A B E DV(R3) B C F Passo DV(R) A B C D E F DV(R) A B C D E F DV(R3) A B C D E F 4.5.. Tempo di convergenza Se si suppone che i messaggi scambiati siano sincroni, si può osservare, dal passo precedente, che dopo il primo scambio di distance vector tutti i router conoscono tutte le reti (quindi i vettori annunciati non cambiano più). Il tempo necessario affinchè si verifichi questa situazione è pari al route update timer; in questo caso quindi, 30 secondi. 4.5.3. Guasto (route poisoning non abilitato) Nel caso in cui il route poisoning non sia abilitato, una possibile simulazione della rete dopo il guasto è:. R e R3 rilevano immediatamente il guasto; entrambi da questo momento in poi utilizzano come next hop R per le route che prima erano raggiungibili attraverso il link ora guasto (C, D e F); i distance vector inviati da R e R3 sono pertanto: 5

DV(R) A B C 3 D E F 3 DV(R3) A B C 3 D 3 E F. R, ricevendo i nuovi distance vector da R e R3 rileva che il costo per la rete C è aumentato, e di conseguenza il suo distance vector cambia in: DV(R) A B C 4 D E F Si verifica chiaramente un fenomeno di count to infinity, in cui ad ogni scambio di distance vector aumenta di un unità il costo verso la destinazione C. 4.5.4. Guasto (route poisoning abilitato) Nel caso in cui il route poisoning sia abilitato, una possibile simulazione della rete dopo il guasto è:. R e R3 rilevano immediatamente il guasto; quando inviano i rispettivi distance vector, annunciano la rete C a costo infinito, poichè è divenuta irraggiungibile; inoltre, entrambi da questo momento in poi utilizzano come next hop R per le route che prima erano raggiungibili attraverso il link ora guasto (D e F); i distance vector inviati da R e R3 sono pertanto: DV(R) A B C infinito D E F 3 DV(R3) A B C infinito D 3 E F. R, ricevendo i nuovi distance vector da R e R3 rileva che la rete C è diventata irraggiungibile da entrambe le direzioni, e di conseguenza il suo distance vector cambia in: 6

DV(R) A B C infinito D E F In questo caso, siccome il route poisoning è abilitato, e quindi le route irraggiungibili vengono annunciate a costo infinito, non si ha nessun fenomeno di instabilità sulla rete. 7

4.6. Convergenza del Distance Vector (4) 4.6.. Partenza a freddo Siccome in questo specifico caso è attivo il meccanismo dello split horizon, ogni router invierà un distance vector diverso a seconda dell interfaccia sulla quale questo viene inoltrato. Per simulare la partenza a freddo, si suppone di inizializzare la rete alimentando tutti i nodi contemporaneamente. In questo stato, ciascuno dei nodi è caratterizzato unicamente da una conoscenza locale, e dopo un certo numero di passi (corrispondenti a scambi di distance vector), la rete raggiunge una situazione stabile: Passo DV(R) su A D E DV(R) su D A E DV(R) su E A D DV(R) su A B F DV(R) su B A F DV(R) su F A B DV(R3) su B C G DV(R3) su C B G DV(R3) su G B C DV(R4) su C D H DV(R4) su D C H DV(R4) su H C D 8

Passo DV(R) su A C D E H DV(R) su D A B E F DV(R) su E A B C D F H DV(R) su A B C F G DV(R) su B A D E F DV(R) su F A B C D E G DV(R3) su B C D G H DV(R3) su C A B F G DV(R3) su G A B C D F H DV(R4) su C A D E H DV(R4) su D B C G H DV(R4) su H A B C D E G 9

Passo 3 DV(R) su A C D E H G 3 DV(R) su D A B E F DV(R) su E A B C D F G 3 H DV(R) su A B C F G DV(R) su B A D E F H 3 DV(R) su F A B C D E G H 3 DV(R3) su B C D G H DV(R3) su C A B E 3 F G DV(R3) su G A B C D E 3 F H DV(R4) su C A D E H DV(R4) su D B C F 3 G H DV(R4) su H A B C D E F 3 G 4.6.. Guasto Dall istante in cui si verifica il guasto, uno dei possibili scenari sulla rete è: 30

. R rileva immediatamente il guasto (ma supponendo i triggered updates disabilitati, non invia comunque nessuna informazione in rete);. Allo scadere dell update timer, R invia i suoi distance vector, simili a quelli del passo precedente, tranne per il fatto che la rete F non viene più annunciata, poichè è diventata irraggiungibile (e si suppone disabilitato il route poisoning): DV(R) su A B C G DV(R) su B A D E H 3 3. R3 non riceve più nessun annuncio della rete F (da ogni direzione), ma continua ad annunciarla fino allo scadere del suo route invalid timer nel suo distance vector verso R4: DV(R3) su C A B E 3 F G 4. Dal punto di vista di R4, nulla è cambiato per ora, poichè R3 non ha ancora invalidato la route, quindi il suo distance vector verso R è: DV(R4) su D B C F 3 G H 5. R non riceve più l annuncio della rete F da R, ma continua a ricevere quello da R4 (a costo 3). Allo scadere del suo route invalid timer, assumerà come next hop proprio R4 per la rete F, e la annuncierà nel suo distance vector verso R: DV(R) su A C D E F 4 H G 3 3

A questo punto, si può verificare il fenomeno del count to infinity, in cui R annuncierà la rete F a costo 5 verso R3 e così via, poi R3 la annuncierà a costo 6 verso R4,... 4.6.3. Guasto con hold-down Dall istante in cui si verifica il guasto, uno dei possibili scenari sulla rete è:. R rileva immediatamente il guasto (ma supponendo i triggered updates disabilitati, non invia comunque nessuna informazione in rete);. Allo scadere dell update timer, R invia i suoi distance vector, simili a quelli in caso di rete stabile, tranne per il fatto che la rete F non viene più annunciata, poichè è diventata irraggiungibile (e si suppone disabilitato il route poisoning): DV(R) su A B C G DV(R) su B A D E H 3 3. R3 non riceve più nessun annuncio della rete F (da ogni direzione), ma continua ad annunciarla fino allo scadere del suo route invalid timer nel suo distance vector verso R4: DV(R3) su C A B E 3 F G 4. R non riceve più l annuncio della rete F da R, ma continua a ricevere quello da R4 (a costo 3). Allo scadere del suo route invalid timer tuttavia, la precedente route viene dichiarata irraggiungibile e questo scatena l attivarsi dell hold-down timer, che blocca la route per 80 secondi; in questo intervallo di tempo, il suo distance vector verso R non conterrà la rete F (a differenza del caso precedente, in cui l assenza dell hold-down permetteva al router di cambiare immediatamente la route): DV(R) su A C D E H G 3 3

In questo caso, il fenomeno del count to infinity può quindi essere evitato, perchè R ha congelato la route relativa a F (nel caso precedente invece, alla scadenza del route invalid timer veniva immediatamente preso come next hop R4, e questo comportava l inizio del count to infinity). In questa situazione quindi, tutta la rete ha il tempo di accorgersi del guasto. Si noti comunque che non si ha la certezza di evitare il count to infinity: tutto dipende dalle tempistiche con le quali vengono mandati gli update dai router; potrebbe capitare infatti, che nel momento in cui R termina l hold-down, R4 stia ancora inviando gli annunci per la rete F a costo 3; questo potrebbe nuovamente portare al verificarsi del fenomeno. 4.6.4. Tempo di convergenza Se si ipotizza che la fase in cui vengono scambiati i messaggi di RIP Update e RIP Request tra R e R5 avvenga in un tempo trascurabile e che i messaggi di update siano scambiati in modo sincrono tra i router, è necessario attendere 60 secondi affinchè la rete riconverga: Istante 0 (secondi): solo R e R5 sono a conoscenza della rete I; Istante 30: R invia il distance vector aggiornato sulle sue interfacce, quindi anche R e R4 rilevano I; Istante 60: converge. R e R4 inviano il distance vector aggiornato, quindi anche R3 rileva I; la rete Si noti che questo tempo di convergenza può essere notevolmente diminuito se si abilitano i triggered updates. 33

5. Link State 5.. Convergenza del Link State () 5... Accensione di R Quando viene acceso R, si verificano due fasi: Neighbor discovery: permette a R di rilevare i router ad esso adiacenti, in questo caso R e R3; Database Synchronization: il processo permette ai router di sincronizzare i database, scambiandosi messaggi fino a quando tutti i router non avranno le stesse informazioni a disposizione; Più in dettaglio, i seguenti passi avvengono sia sul link A tra R e R che sul link C tra R e R3; per semplicità viene analizzato il comportamento e il traffico sul solo link A:. R diventa attivo e invia un pacchetto di Hello sull interfaccia connessa al link A; questo pacchetto non conterrà nessuna informazione (mentre in situazioni di rete stabile contiene l elenco dei vicini già conosciuti e identificati dal router mittente);. Dopo aver ricevuto il pacchetto di Hello di R, R identifica il nuovo vicino, e nei suoi successivi pacchetti di Hello, invia questa informazione (aggiungendo R alla lista dei router adiacenti conosciuti); 3. Dopo aver ricevuto il primo pacchetto di Hello da R, R ha la conferma di essere stato identificato correttamente dal suo vicino (poichè il suo ID compare nei pacchetti appena ricevuti); di conseguenza, genera un pacchetto Database Description vuoto (senza LSA summary) per iniziare la fase di negoziazione del master/slave sul link (necessaria per la procedura di sincronizzazione); 4. R risponde al precedente pacchetto con un altro Database Description, sempre necessario per la negoziazione master/slave; viene eletto master il router che ha l ID maggiore (in questo caso si suppone R); 5. Dopo aver rilevato che R è il master, R invia un Database Description indicando che durante questa fase è lo slave; questo pacchetto viene popolato con gli header LSA contenuti nel suo Link State Summary List; 6. R invia un altro Database Description, contenente gli header LSA ricavati dal rispettivo Link State Summary List; 7. R invia un pacchetto di acknowledgment in risposta al Database Description appena ricevuto. Questo processo continua, con R che invia Database Description e poi aspetta la conferma di ricezione, fino a quando R invia l ultimo Database Description (contenente l ultimo LSA Summary); 8. Dopo aver ricevuto l ultimo Database Description, R controlla la sua Link State Request List, e vede che ovviamente non è vuota, poichè contiene tutti i LSA header che gli sono stati comunicati da R e che prima non erano conosciuti (perchè il router è stato appena acceso); 34

9. Anche R ha degli LSA header pendenti nella sua Link State Request List, in quanto il router R ha inviato l LSA header relativo alla rete I; 0. R invia pacchetti di Link State Request esplicitando gli LSA a lui mancanti, e R comunica le informazioni richieste nei pacchetti di Link State Update; questo avviene fino a quando la Link State Request List di R non è vuota; ovviamente avviene lo stesso anche nell altra direzione, in quanto R deve poter ottenere l LSA relativo alla rete I; 5... Guasto Nel caso si verifichi un guasto sul link C, entrambi i router R e R3 rilevano immediatamente il problema (grazie al segnale di link down) ed effettuano i seguenti passi:. Ricalcolo della tabella di routing, poichè l informazione topologica in loro possesso è cambiata;. Invio di un Link State Update speciale, contenente l informazione che invalida la rete divenuta irraggiungibile (ad esempio nell implementazione cisco questo viene fatto assegnando all opzione age il valore 3600); questo pacchetto è inviato in flooding su tutta la rete; attraverso il suo invio si comunica agli altri router che dovranno immediatamente cancellare le informazioni memorizzate precedentemente e ricalcolare la tabella di routing; 3. Viene attesa la ricezione dei rispettivi acknowledgment, per confermare la corretta ricezione del precedente update; se non viene ricevuto l acknowledgment da un particolare router, il pacchetto di link state update viene di nuovo inoltrato, ma questa volta in unicast (prima era inviato in multicast) direttamente al router che non ha confermato la ricezione; 35

5.. Convergenza del Link State () 5... Accensione di R3 Questa fase è sostanzialmente uguale a quella dell esercizio precedente; la negoziazione master/slave, lo scambio di database description e la sequenza di pacchetti link state request/update avviene sia tra R3 e R che tra R3 e R4. 5... Shortest Path Spanning Tree Router R H G R4 C 3 R3 D B R A 4 R E F Router R H G R4 C 3 R3 D B R A 4 R E F 36

Router R3 H G R4 C 3 R3 D B R A 4 R E F Router R4 H G R4 C 3 R3 D B R A 4 R E F 5..3. Guasto Al verificarsi del guasto, i router R e R3 eseguiranno gli stessi passi elencati nell esercizio precedente. In questo caso, i cambiamenti nelle tabelle di routing sono: Tutti i router eliminano l informazione relativa alla rete C; Nel ricalcolo della nuova topologia, i router che utilizzavano il link C per raggiungere altre destinazioni avranno uno shortest path spanning tree diverso rispetto a quello precedente, ed 37

eseguendo l algoritmo per il calcolo della tabella di routing, otterranno route con next hop differenti rispetto a prima. 38

5.3. Determinazione del Link State Database con OSPF in area singola L esercizio include tre domande, le cui soluzioni vengono presentate singolarmente. 5.3.. Albero di instradamento L albero di instradamento si ottiene calcolando l albero dei cammini minimi da ogni router verso la ogni possibile destinazione (le reti NetX ) utilizzando l algoritmo di Dijkstra. Nel disegno si riportano le soluzioni per quanto riguardano i router R ed R5. NetA NetB R NetF R 4 NetA NetB R NetF R 4 NetG NetG 3 NetL NetM R3 NetC 3 NetL NetM R3 NetC NetH NetH R5 NetI 3 R4 R5 NetI 3 R4 NetE NetD NetE NetD Per quanto riguarda gli altri router, gli alberi di instradamento si ricavano in modo analogo. 5.3.. Routing Table La routing table si ricava seguendo, per ogni possibile destinazione, il next hop indicato dall albero di instradamento minimo (ricavato al punto precedente). In questa soluzione vengono adottati le seguenti convenzioni in quanto utilizzate dal protocollo IP: Il costo per raggiungere una certa rete include il costo di attraversamento della rete stessa. Ad esempio, il costo di raggiungere la rete NetA da R è pari a e non 0. In altre parole, il costo di attraversamento è inteso come un costo di attraversamento dell interfaccia del router anzichè come un costo di attraversamento della rete. Le reti connesse ad un router hanno come Next Hop il router stesso. Ad esempio il next hop per raggiungere la rete NetA da R è il router R stesso. La figura seguente riporta (in forma letterale) gli indirizzi di tutte le interfacce del router che sono necessarie ai fini della compilazione della routing table. 39

NetA NetB R R_F NetF 4 R_A R_L R_M R_B R_F R R_G NetG 3 NetL NetM R3 R3_G R3_C R3_H NetC NetH R5 NetI R4_I R5_I 3 R4 R5_L R5_E R4_M R4_D NetE NetD R4_H La routing table risultante è riportata nella seguente tabella (la seconda e la terza colonna sono riferite rispettivamente ai router R ed R5): Destinazione Next hop (R) Cost (R) Next hop (R5) Cost (R5) NetA R A R L 4 NetB R F 5 R L,R4 I 8 NetC R4 M 5 R4 I 6 NetD R4 M 3 R4 I 4 NetE R5 l 4 R5 E NetF R F 4 R L 7 NetG R F,R4 M 6 R4 I 7 NetH R4 M 4 R4 I 5 NetI R4 M 5 R5 I 3 NetL R L 3 R5 L 3 NetM R M R L,R4 I 5 Si noti come per raggiungere la rete NetF da R5 il percorso più conveniente passi attraverso il next hop R. Tuttavia, la rete NetF non viene utilizzata per raggiungere la rete NetB: in questo caso il percorso più conveniente passa attraverso il next hop R4. Per quanto riguarda la rete NetM, invece, esistono due percorso equivalenti a partire da R5, che può pertanto scegliere indifferentemente o R o R4 come next hop. 40

5.3.3. Link State Database Il Link State Database include solamente LSA di tipo Router Link e Network Link, in quanto (a) la rete include solamente un area OSPF, che (b) non connessa è ad altri domini. I Router Link riporteranno le adiacenze dei vari router con (a) le reti IP presenti, (b) i router adiacenti, (c) le eventuali reti di transito generate dall OSPF per gestire le LAN con più di routers. I Network Link riporteranno i dati relativi alle reti di transito; in questo caso sarà presente un solo Network Link relativo alla rete NetL che è l unica rete di transito presente nella topologia indicata. La soluzione per quanto riguarda i router R, R4 ed R5 è riportata in figura. La soluzione per quanto riguarda i router R ed R3 viene omessa per brevità. Router LSA (Router R, #items: 6) Router Link (Link to a stub network) Router Link (Link to a stub network) Router Link (Link to a stub network) Router Link (Link to a stub network) Router Link (Point-to-point link to another router) Router Link (Point-to-point link to another router) Router Link (Link to a transit network) Link ID (Network): NetA Link ID (Network): NetF Link ID (Network): NetM Link ID (Network): NetL Link ID (Neighbor RouterID): R Link ID (Neighbor RouterID): R4 Link ID (DR IP address): R5_L Link Data (Netmask): MaskA Link Data (Netmask): MaskF Link Data (Netmask): MaskM Link Data (Netmask): MaskL Link Data (Router If. Addr.): R_F Link Data (Router If. Addr.): R_M Link Data (Router If. Addr.) R_L Router LSA (Router R4, #items: 7) Router Link (Link to a stub network) Router Link (Link to a stub network) Router Link (Link to a stub network) Router Link (Link to a stub network) Router Link (Point-to-point link to another router) Router Link (Point-to-point link to another router) Router Link (Point-to-point link to another router) Link ID (Network): NetM Link ID (Network): NetH Link ID (Network): NetI Link ID (Network): NetD Link ID (Neighbor RouterID): R Link ID (Neighbor RouterID): R3 Link ID (Neighbor RouterID): R5 Link Data (Netmask): MaskM Link Data (Netmask): MaskH Link Data (Netmask): MaskI Link Data (Netmask): MaskD Link Data (Router If. Addr.): R4_M Link Data (Router If. Addr.): R4_H Link Data (Router If. Addr.): R4_I Router LSA (Router R5, #items: 5) Router Link (Link to a stub network) Router Link (Link to a stub network) Router Link (Link to a stub network) Router Link (Point-to-point link to another router) Router Link (Link to a transit network) Network Link State (Router R5, #items: ) Netmask: MaskL Attached Routers: R, R5 Link ID (Network): NetL Link ID (Network): NetI Link ID (Network): NetE Link ID (Neighbor RouterID): R4 Link ID (DR IP address): R5_L Link Data (Netmask): MaskL Link Data (Netmask): MaskI Link Data (Netmask): MaskE Link Data (Router If. Addr.): R5_I Link Data (Router If. Addr.) R5_L 5.3.4. Designated e Backup Designated Router L indirizzo IP del Designated Router si può ricavare dal LSA relativo al Router Link verso la rete di transito (ad es. il sesto LSA contenuto nel RouterLSA di R), ed è riportato nel campo Link ID. Per quanto riguarda il Backup Designated Router non è specificato esplicitamente nel database OSPF. In questo caso è facilmente ricavabile considerando che sulla rete NetL vi sono solamente router e che essendo R5 il Designated Router, R dovrà per forza essere il Backup (a meno che il campo Priority ne impedisca la sua elezione). In generale, l identità del Backup Designated Router è ricavabile qualora si sia in grado di intercettare un pacchetto OSPF Hello sulla LAN di transito, in quanto questi pacchetti riportano sia l indirizzo IP del Designated Router che quello del Backup Designated Router. 4

5.4. OSPF con area multipla La vista della rete da parte del router R è la seguente: N R R R4 N N3 R3 4 5 3 5 4 6 N8 N9 N0 N N4 N5 N6 N7 4

6. Domande di teoria 6.. Algoritmi di Forwarding e Routing. Nella tecnica di forwarding by network address ogni pacchetto deve contenere l indirizzo del nodo destinatario della comunicazione, il quale viene usato come chiave di accesso alla tabella di routing. Nel Label Swapping invece, viene inserita una particolare informazione detta label all interno di ogni pacchetto in transito, la quale contribuisce ad identificare univocamente il percorso che verrà effettuato dal pacchetto. Le due tecnologie sono profondamente diverse sotto vari aspetti: Semplicità: il primo non richiede nessuna fase di setup, nè il mantenimento di alcun stato; nel secondo è necessario preparare il percorso e mantenere lo stato di ogni sessione; Scalabilità del processo di forwarding: il primo è decisamente più scalabile del secondo, grazie al fatto che non è necessario mantenere nessuno stato per le sessioni; Scalabilità del processo di routing: il primo può portare ad avere tabelle di routing estremamente grandi; nel secondo le tabelle sono più piccole; Efficienza: nel primo gli header possono essere di dimensioni abbastanza notevoli; nel secondo sono senza dubbio più snelli ; Multipath: il primo non supporta percorsi multipli tra due destinazioni; il secondo offre nativamente questa possibilità;. Un algoritmo di routing ha lo scopo di trovare quale è il percorso migliore all interno di una rete data per tutti i nodi della rete. Più formalmente, è un processo che, in automatico, è in grado di procedere alla disseminazione delle informazioni di routing in una rete. Un generico algoritmo di routing può essere classificato sulla base delle sue caratteristiche, tra cui semplicità, robustezza, ottimalità, stabilità, equità. 3. Lo scopo di un algoritmo di forwarding è quello di determinare qual è la migliore porta di uscita verso una destinazione, a fronte di un pacchetto entrante in un nodo di rete. In generale un algoritmo di forwarding opera indipendentemente su ogni nodo della rete, non ha una conoscenza globale della rete e utilizza informazioni locali al nodo per l inoltro dei pacchetti. 4. Il fenomeno del routing loop avviene quando un pacchetto viene rimpallato ciclicamente su un insieme di più nodi. Si verifica quando alcune route della rete innescano un percorso circolare. Rappresenta una situazione particolarmente pericolosa perché i pacchetti all interno del loop circolano nella rete finché non sono scartati per eccessivo time to live, situazione che può portare al progressivo intasamento della rete. 5. Un black-hole è un fenomeno che si verifica quando i pacchetti verso una data destinazione sono inviati ad un router il quale, non disponendo di un percorso per la destinazione, li scarta. 6. Sebbene il routing statico, essendo un algoritmo non adattativo, presenti numerosi svantaggi, tra cui l incapacità di modificare i percorsi a fronte di un guasto, rappresenta una tecnologia estremamente semplice che permette al gestore di controllare con estrema precisione i percorsi 43

del traffico sulla rete (anche se è necessario un suo intervento manuale per il loro reinstradamento in presenza di variazioni topologiche). Può quindi essere una buona scelta in un ambiente poco dinamico (ad esempio una rete periferica) e di piccole dimensioni, in cui non si ha un alta frequenza di variazione delle route e della topologia. 7. Il selective flooding è un algoritmo che cerca di limitare i problemi del flooding tradizionale (principalmente l altissimo carico indotto sulla rete) senza perderne i vantaggi (cioè l altissima probabilità che il pacchetto giunga a destinazione). Per far si che questo sia possibile, è necessario che ogni nodo emetta i pacchetti con un numero di sequenza crescente ed univoco, che permetta ad ogni router di riconoscere se un pacchetto è già stato ricevuto (e quindi evitare di trasmetterlo) oppure no (e quindi inviarlo in tutte le direzioni tranne quella da cui è arrivato). Bisogna inoltre riservare una quantità di memoria aggiuntiva nei nodi, poichè vanno memorizzati i numeri di sequenza di tutti i pacchetti, per poter verificare se sono già passati. 8. Vantaggi routing centralizzato: gestione della rete molto accurata; facilità nell eseguire il debugging della rete; Svantaggi routing centralizzato: introduce un single point of failure (il nodo centrale) nella rete; poco adatto in reti con elevata frequenza di variazione delle route 9. Nel distance vector, ogni nodo comunica tutte le informazioni di connettività in suo possesso a tutti i router adiacenti. Le informazioni sono trasportate in una unità chiamata appunto distance vector, che contiene: la lista delle destinazioni raggiungibili; la direzione che si può utilizzare per raggiungere le destinazioni; il costo per raggiungimento delle destinazioni; 0. Un triggered update è una tecnica per migliorare il tempo di convergenza in una rete che utilizza un protocollo di routing di tipo distance vector, come il RIP, al prezzo di generare traffico addizionale. Un triggered update permette ad un router di annunciare un cambiamento di metrica in una entry della sua routing table quasi immediatamente, invece di aspettare il prossimo aggiornamento periodico, come previsto dalla teoria dell algoritmo. I triggered update sono inviati dopo un piccolo intervallo di tempo (casuale) rispetto alla rilevazione del cambiamento, per impedire intasamenti della rete.. Lo split horizon modifica il principio base di funzionamento di un algoritmo di tipo distance vector, permettendo di differenziare i vari vettori inviati sulle linee di un router (che secondo l algoritmo classico dovrebbero essere tutti uguali). Questo permette di ottenere una serie di vantaggi, tra cui impedire il loop tra due nodi e rendere la convergenza della rete più veloce. Tuttavia non è in grado di far fronte a loop che investono maglie composte da più nodi, in quanto ha una visione locale della rete.. L hold-down timer impedisce ad un router di modificare le route che fanno riferimento ad un link sul quale si è rilevato un guasto, così da lasciare un intervallo di tempo in cui gli altri nodi possono riconfigurarsi, ed evitare un routing loop. 44

6.. RIP. Il Routing Information Protocol (RIP) è un protocollo di routing tra i più usati su reti locali ed aiuta i router ad adattarsi dinamicamente ai cambiamenti dei collegamenti di rete, scambiandosi informazioni riguardo a quali reti ogni router può raggiungere e quanto siano lontane. RIP è un protocollo di tipo distance-vector e usa l algoritmo Bellman-Ford. In molti ambienti di rete RIP non è la prima scelta tra i protocolli di routing poiché il tempo di convergenza è lungo e ha una scalabilità della rete modesta se confrontato con le alternative disponibili, inoltre il basso numero di hop supportati limita severamente la grandezza della rete. D altra parte, è molto facile da configurare ed è implementato anche nei router di fascia bassa.. Di default, RIP utilizza una metrica basata sul numero di links che vengono attraversati per raggiungere la destinazione. Questa distanza è espressa come un numero intero variabile tra e 5; 6 rappresenta una distanza infinita, cioè una rete irraggiungibile. 3. Il protocollo RIP prevede l utilizzo di vari tipi di timers: Routing update timer (default 30 s): intervallo di tempo per l invio degli annunci Route invalid timer (default 90 s): intervallo di tempo dopo il quale una route è dichiarata irraggiungibile (distanza posta ad infinito) Route flush timer (default 70 s): intervallo di tempo dopo il quale la route è cancellata dalla routing table Timer per i triggered updates: sono inviati con un ritardo casuale compreso tra e 5 secondi, per evitare intasamenti della rete e per far sì di poter eventualmente comunicare più cambi di route con un messaggio solo. 4. In assenza di guasti, ogni 30 secondi un router x manda il proprio distance vector a tutti i suoi vicini. Ognuno di essi a sua volta manderà al router x il proprio distance vector. Il router x riceve quindi ogni 30 secondi diversi distance vector che userà per aggiornare la propria tabella di routing e calcolare quindi una nuova stima del suo vettore. Se uno dei vicini non invia il proprio distance vector per 90 secondi (la durata di default del route invalid timer), lo si considera irraggiungibile e si assegna distanza infinita. Con i valori di default, questo avviene quindi dopo 3 update mancati. 5. I messaggi di request vengono normalmente inviati da un router appena acceso per venire a conoscenza delle route della rete; questo permette di velocizzare il tempo di convergenza della rete, senza dover attendere lo scadere del routing update timer. 6. La versione del RIP ingloba diversi miglioramenti rispetto all originale. Tale protocollo, per mantenere la retrocompatibilità con il suo predecessore, usa una metrica basata sugli hop (massimo 5). Nell ambito degli update, però, invia informazioni relative alle subnet (permettendo di trasferire quindi le maschere di rete) e prevede un meccanismo di autenticazione basato su password. Inoltre, a differenza della versione, invia gli update in multicast. 7. Il route poisoning è un meccanismo utilizzato dai router per comunicare l irraggiungibilità di alcune route. In particolare, una route irraggiungibile (ad esempio un interfaccia fisica che si scollega dalla rete) viene annunciata a costo infinito, mentre secondi l algoritmo classico questa non dovrebbe essere più annunciata. Permette di aumentare la velocità di convergenza della rete, e quindi evitare i problemi che si possono verificare durante il transitorio. 45

6.3. Link State. Il Link State memorizza la coppia link-costo per ogni nodo adiacente conosciuto dal nodo in esame. Di conseguenza, ogni riga del LS conterrà le informazioni relative alla destinazione (il nome del nodo adiacente sul quale il link termina) e al costo relativo. Se, ad esempio, un nodo ha quattro nodi adiacenti, esso propagherà un pacchetto contenente quattro righe corrispondenti alle quattro adiacenze.. I pacchetti di Hello permettono di implementare il riconoscimento delle adiacenze. Attraverso lo scambio di questi messaggi, l algoritmo è in grado di accorgersi autonomamente della presenza / mancanza dei nodi adiacenti senza fare affidamento a meccanismi esterni quali il segnale link-up. 3. Il meccanismo è implementato nell algoritmo di bringing up adjiacencies. Questo componente permette ad un nodo di evitare di attendere l invio del LS da parte di tutti i nodi e prevede che il nodo si attivi facendo un apposita query ai suoi nodi vicini richiedendo loro il database. Ogni qualvolta un nodo rileva di avere una nuova adiacenza, effettuera una fase di sincronizzazione del proprio database con il nodo adiacente in modo da essere operativo prima possibile e velocizzare la convergenza della rete. 4. Il Link State ingloba l algoritmo SPF (che è in grado di calcolare il cammino migliore tra due nodi) per il calcolo della routing table. A partire dal database topologico (che ogni nodo si è calcolato nelle fasi precedenti dell algoritmo), è possibile, mediante semplici passi, ottenere l albero di instradamento, e quindi la routing table. 5. L idea dei protocolli di routing link state è di mantenere una copia sincronizzata del database sullo stato dei link in tutti i nodi della rete. In questo modo, se tutti i nodi contengono lo stesso database ed eseguono lo stesso algoritmo per la creazione delle tabelle di routing, i percorsi sono coerenti e non si verificano loops. 6. Le reti che utilizzano algoritmi link state hanno una convergenza estremamente rapida grazie al fatto che i pacchetti contenenti i link state si propagano molto velocemente sulla rete. A differenza dei link state, infatti, i distance vector vengono ricavati dalla tabella di routing, pertanto ogni nodo deve prima ricavare la tabella di routing, poi generare il proprio vettore e propagarlo. Tutto questo richiede molto più tempo rispetto al primo caso. 7. A seguito di frequenti variazioni di topologia un router può ricevere un pacchetto link state vecchio dopo uno nuovo, quindi deve essere in grado di valutare il più recente. Pertanto, quando un nodo riceve un pacchetto link state confronta il numero di sequenza del pacchetto con quello dell ultimo pacchetto ricevuto da quel nodo, e se il numero di sequenza indica che il pacchetto è più recente di quello memorizzato, allora viene memorizzato e inoltrato a tutti i nodi collegati (eccetto quello da cui è stato ricevuto); in caso contrario il pacchetto viene scartato. 8. Per gestire le reti broadcast, viene introdotta l idea dello pseudo-nodo, o nodo fittizio, che trasforma la rete da magliata a stellare. Ogni router della rete, infatti, rileverà una sola adiacenza con lo pseudo-nodo stesso il quale farà da transito per il calcolo della topologia. Lo pseudo-nodo non è un nodo aggiuntivo inserito in sostituzione della rete broadcast, ma i protocolli reali selezionano un particolare router e lo designano come pseudo-nodo. Questa modifica virtuale di topologia non influenza tuttavia il computo delle route per i router partecipanti alla rete broadcast. 46