SlideShare uma empresa Scribd logo
1 de 37
Baixar para ler offline
 Routing: RIP, OSPF, BGP




             Università degli studi dell'Aquila
    Facoltà di Scienze Matematiche Fisiche e Naturali
               Dipartimento di Informatica


    Reti di Calcolatori, A.A. 2006­2007



                  Routing:
           trattazione dei protocolli 
               RIP, OSPF e BGP



                    Lorenzo Sfarra, 159645         




1
 Routing: RIP, OSPF, BGP




                                       Indice


    1 Introduzione e concetti basilari
        1   Introduzione
        2   Routing
        3   Routing table

    2 Routing Statico e Dinamico
        1   Routing Statico
        2   Routing Dinamico
        3   Protocolli di routing Classful e Classless
        4   Autonomous System

    3 RIP: Routing Information Protocol
        1   Convergenza
        2   Il problema delle subnet
        3   Percorso predefinito
        4   Punti chiave del RIP e compatibilità tra le diverse versioni

    4 OSPF: Open Shortest Path First
        1   Introduzione
        2   Costi e metrica
        3   Tipi di area
        4   Tipi di router
        5   Formato dei pacchetti e scoperta dei router vicini
        6   Il protocollo Hello
        7   Scambio di informazioni
        8   Gestione dei percorsi
        9   Link virtuali

    5 BGP: Border Gateway Protocol
        1   Funzionamento del BGP

2
 Routing: RIP, OSPF, BGP

        2   Messaggi BGP
        3   Attributi
        4   Load Balancing
        5   Connessione a Internet
        6   Possibili problematiche ed eventuali soluzioni
        7   Implementazioni Open Source del BGP


    6. Fonti




3
 Routing: RIP, OSPF, BGP


    Introduzione e concetti basilari


                                 Introduzione
Il metodo utilizzato nel documento è quello di partire da concetti espressi in maniera poco 
formale e, eventualmente, poco completa, per poi formalizzare e completare i concetti 
espressi nel corso del documento.
Termini e concetti saranno specificati e spiegati più o meno dettagliatamente in base 
all'importanza che ricoprono nell'argomento trattato.
Senza entrare nel merito di argomenti non strettamente inerenti all'argomento trattato, 
verranno brevemente descritti in questa prima parte del documento alcuni termini e 
concetti indispensabili in quanto collegati ai concetti trattati.




4
 Routing: RIP, OSPF, BGP




                                       Routing
Una prima definizione informale di Routing:

              Con il termine routing ci si riferisce alla selezione dei percorsi 
                     sui quali mandare i dati in una rete di computer.

Per cui, se uno studente dal laboratorio dell'Università dell'Aquila vuole effettuare il 
download della cartina della città di Londra da un sito web locale (quindi, “fisicamente” 
collocato a Londra), i diversi pacchetti IP che occorre acquisire per questa operazione 
devono seguire un certo percorso da Londra al computer del laboratorio dell'Università 
dell'Aquila dal quale lo studente sta compiendo questa operazione.
Il percorso stesso è composto in linea generale dalle due macchine interessate 
nell'operazione e da diversi router che si trovano “nel mezzo” del percorso.
Quindi, cambiando  la definizione precedente, possiamo ottenerne una leggermente più 
accurata:

                 Con il termine routing si indica la selezione dei percorsi 
                    sui quali mandare i dati in una rete di computer 
                   in termini di operazioni per muovere un pacchetto 
               da un router all'altro per raggiungere la destinazione finale,
                                secondo determinate regole.



                                 Routing Table

È stato introdotto il concetto di router perchè ha un'importanza centrale nell'argomento 
trattato.
Un caso basilare: prendiamo un router con alcune reti direttamente connesse ad esso. 
Il router avrà un accesso “immediato” a queste reti, senza bisogno di operazioni o 
meccanismi per scoprire come accedere ad esse. 
Possiamo dire che, una volta che queste reti sono connesse al router e attivate, sono 
automaticamente visibili nella routing table del router in questione. 




5
 Routing: RIP, OSPF, BGP


Nella sua forma basilare, una routing table deve contenere almeno due informazioni: 

    1. la rete di destinazione;
    2. il prossimo “passo” da compiere verso questa rete.

Queste informazioni sono entrambe indispensabili: un router non conosce il percorso 
completo per raggiungere una destinazione, ma solamente il passo successivo per 
raggiungerla.
Come la routing table possiede o acquisisce queste informazioni?




          Routing Statico e Dinamico
La definizione di routing finora fornita è ancora ben lontana dall'essere completa.
Prima di definire il routing statico e quello dinamico e rispondere alla domanda 
precedente è bene citare un concetto essenziale:
cosa si intende per percorso più corto.
Ci sono diversi elementi che porteranno a definire un determinato percorso come il più 
corto; uno di questi, intuitivamente, è il numero di passi (hops) tra la posizione corrente e 
la destinazione. Il solo conteggio del numero di passi spesso può non essere un buon 
metodo, in quanto alcuni dei passi del percorso scelto potrebbero includere tratti in quel 
momento inutilizzabili, o saturi dato il traffico di dati intenso.
Quindi la scelta del percorso più corto dipende da diversi fattori:

    ●   Numero di passi;
    ●   Traffico;
    ●   Throughput, ovvero la capacità di trasmissione effettivamente utilizzata;
    ●   affidabilità;
    ●   altro



                                Routing Statico

Immaginando di essere in una città che non conosciamo, e di dover raggiungere un luogo 


6
 Routing: RIP, OSPF, BGP

preciso, chiediamo telefonicamente a qualche amico (che ha la possibilità di consultare 
una cartina su internet, per esempio) di indicarci la strada dal luogo in cui siamo fino al 
luogo in cui vogliamo arrivare.
L'amico ci fornirà informazioni sul percorso da seguire, sulla strada da percorrere, 
quando cambiare strada, ecc... 
A prescindere dalle scelte fatte dal nostro informatore per individuare il percorso, non 
possedeva alcuna informazione sulla situazione attuale, come ad esempio la possibilità 
che una strada da lui indicata fosse chiusa per lavori in quel giorno.
Con le giuste proporzioni possiamo dire che c'è un'analogia tra la situazione descritta e 
l'impostazione di percorsi statici per la nostra rete.
Un amministratore di rete, come il nostro informatore, indica un percorso che deve essere 
seguito per raggiungere una determinata rete: ad esempio, potrebbe impostare che per 
raggiungere la rete 192.168.1.0/24 si debba passare per un determinato router piuttosto 
che altri.
Questa impostazione è permanente, statica: l'amministratore non sa che in un 
determinato istante di tempo il percorso indicato non è percorribile, così come il nostro 
amico consultando la cartina e indicandoci la strada non poteva sapere dei lavori in corso.
Anche in presenza di un percorso alternativo e perfettamente funzionante che potrebbe 
portare alla stessa destinazione, non potrebbe essere usato a meno che l'amministratore 
di rete imposti con un altro comando di utilizzare questo percorso al posto di quello non 
funzionante.
Questo chiaramente rappresenta un notevole svantaggio.
Un altro degli evidenti svantaggi del routing statico è che, al crescere della rete, la 
manutenzione della stessa diventa sempre più problematica.



                             Routing Dinamico
I protocolli che permettono il routing dinamico si basano sull'idea di permettere ad ogni 
router di scoprire automaticamente i percorsi da seguire per raggiungere la destinazione.
Se alcuni percorsi vengono aggiunti e/o altri percorsi non sono più utilizzabili, con il 
routing dinamico la routing table è automaticamente modificata per riflettere questo 
cambiamento. 
Questo porta alla necessità di un aggiornamento frequente per scoprire i cambiamenti 
avvenuti in tempi ragionevolmente rapidi.
Gli algoritmi in uso maggiormente rilevanti per questo scopo sono: Distance Vector (DV) e 
Link State.
Per quanto riguarda il primo, ogni router “interroga” tutti i router a lui vicini per 
carpirne i percorsi conosciuti. Ogni router, quindi, può carpire i percorsi conosciuti di tutti 

7
 Routing: RIP, OSPF, BGP

i router vicini: se un percorso che ottiene da un router non è nella routing table, questo 
percorso verrà aggiunto, se invece il percorso è già presente, i due vengono confrontati e 
verrà tenuto quello di minor lunghezza.
Un grave problema del DV è la possibilità che un errore abbia una espansione molto 
rapida e su larga scala: se un router ha delle informazioni errate, l'errore non 
condizionerà solamente il router in questione ma tutti, dato che le informazioni verranno, 
prima o poi, acquisite dagli altri router della rete (se non si interviene per evitarlo o se 
non c'è un metodo che può prevenire o risolvere automaticamente una situazione di 
questo tipo).
Per quanto riguarda il secondo, si tratta del routing basato sullo stato del colegamento, e 
viene utilizzato un tipo di algoritmo in cui la topologia dell'intera rete e tutti i costi dei 
collegamenti sono noti.
In un protocollo link state ogni nodo della rete acquisisce informazioni sullo stato dei 
collegamenti adiacenti ed inoltra queste informazioni a tutti gli altri nodi della rete 
tramite un pacchetto Link State trasmesso tramite un algoritmo di link state  
broadcast.Quando un nodo riceve un Pacchetto Link State confronta il numero di 
sequenza del pacchetto con quello dell'ultimo pacchetto ricevuto da quel nodo:
    •   se il numero di sequenza indica che il pacchetto è più recente di quello 
        memorizzato, il nuovo pacchetto viene memorizzato e inoltrato a tutti i nodi 
        collegati, eccetto quello da cui è stato ricevuto; 
    •   se il numero di sequenza è invariato il pacchetto viene scartato; 
    •   se il numero di sequenza indica che il pacchetto ricevuto è meno recente di quello 
        memorizzato, quest'ultimo viene trasmesso al nodo mittente. 


Ogni nodo memorizza i pacchetti ricevuti e costruisce una mappa completa e aggiornata 
della rete: il Link State Database, ottenendo così gli stessi risultati.
Ogni router, usando l'argoritmo di Dijkstra, calcola il percorso più corto per una 
determinata destinazione.
Con il routing dinamico, quindi, oltre a scoprire il percorso migliore, si ha la possibilità di 
scoprire automaticamente un eventuale percorso alternativo se quello migliore per 
qualche ragione risulta non utilizzabile. Questo libera gli amministratori di rete dal 
compito di indicare manualmente il percorso di ogni rete e intervenire prontamente 
cambiando manualmente un determinato percorso che non è più utilizzabile, almeno 
temporaneamente.




8
 Routing: RIP, OSPF, BGP


                          Protocolli di routing 
                          Classful e Classless

Nei protocolli classful, la netmask dell'indirizzo IP non è richiesta perchè la lunghezza 
della maschera è parte dell'indirizzo IP stesso: una ispezione dei primi n bit dei 32 bit 
dell'indirizzo IP permettevano di capire a quale classe apparteneva l'indirizzo (classi A, B, 
C, o molto raramente anche D ed E). Il Classful Networking è considerato obsoleto 
nell'attuale internet.
Protocolli meno recenti, quali RIP e IGRP, appartengono alla famiglia dei protocolli 
classful. Protocolli più recenti, quali OSPF e RIP­2, sono classless.
Con la parola “classless” si indica che le decisioni di routing non sono legate alla classe 
dell'indirizzo IP (A, B o C), ma potrebbero essere basate su qualunque porzione dei 32 bit 
dell'indirizzo IP, come specificato dalla mask.
Questo implica che nelle comunicazioni interne alla rete, i pacchetti dei protocolli 
classless devono fornire almeno una informazione aggiuntiva rispetto ai protocolli 
classful, ovvero la subnet mask. Un'altra caratteristica dei protocolli classless è il 
supporto di CIDR, il cui uso primario è quello di ridurre la grandezza della routing table 
aggregando diversi indirizzi in un unica voce. Ad esempio, tutti gli indirizzi tra 
192.168.0.0 e 192.168.255.0 possono essere così rappresentati con 192.168.0.0/16.




                           Autonomous System

Si definisce Autonomous System (AS) una rete sotto una singola autorità amministrativa, 
che ne deciderà in tutto e per tutto il comportamento e le caratteristiche: si definiscono 
Interior Gateway Protocols (IGPs) i protocolli di routing che agiscono all'interno di un AS.
Al contrario, i protocolli che supportano il routing tra i diversi AS rappresentano gli 
Exterior Gateway Protocols (EGPs). Ad ogni AS è assegnato un numero, chiamato AS  
number (ASN). Gli ASN rappresentano una informazione estremamente importante in 
quanto identificano univocamente la rete a cui sono assegnati.
L'entità responsabile dell'assegnazione degli ASN è la Internet Assigned Numbers 
Authority (IANA), responsabile anche di altre assegnazioni, come gli indirizzi IP.
Si può fare una suddiviosione in tre tipologie di Autonomous System:



9
 Routing: RIP, OSPF, BGP

     ●   multihomed AS: è un AS che mantiene connessioni tra più ISP. Può quindi 
         rimanere connesso a internet anche nell'eventualità di un malfunzionamento 
         completo di uno dei suoi ISP. Non permette invece il traffico tra un ISP e l'altro al 
         suo interno;
     ●   stub AS: è un AS che è connesso ad un unico ISP. Dati spediti/ricevuti a/da una 
         destinazione al di fuori dell'AS devono attraversare questa connessione. Un 
         esempio di stub AS è la rete di un campus;
     ●   transit AS: è un AS che fornisce una connessione attraverso se stesso tra diverse 
         reti ad esso connesse. Una qualsiasi rete P può connettersi ad una qualsiasi rete S 
         attraverso un transit AS. Gli ISP sono sempre dei transit AS, dovendo “per 
         definizione” (e per business) connettere diverse reti.




                        RIP: Routing 
                    Information Protocol

Il RIP è un esempio di Distance Vector e fa parte della famiglia degli IGP.
In realtà il RIP vanta tre versioni, RIPv1 (definito nel RFC 1058), RIPv2 (RFC 2453) e 
RIPng (RFC 2080), delle quali si documenterà l'idea di base, comune, ed eventualmente 
evidenziate le differenze.

Come già detto, un router ha nella sua routing table tutte le reti direttamente connesse 
ad esso, e questo ancor prima di qualsiasi aggiornamento con altri router.
A questo punto, il router può scambiare con i router vicini varie informazioni sui percorsi, 
tramite “interrogazioni” ogni <tot> secondi (30 secondi di default).
In particolare, c'è un preciso formato del pacchetto RIP, ed i pacchetti vengono spediti e/o 
ricevuti usando il protocollo UDP.
Quindi, il pacchetto RIP ha un formato predefinito, di 9 campi come mostrato n        ella 
figura che segue, che associa un numero che rappresenta la grandezza in byte ad ogni 
campo.
La figura è presa direttamente dal RFC 1058.
La grandezza in byte è specificata tra parentesi, e ad ogni campo è associata una breve 
descrizione. L'unica aggiunta alla figura del RFC è la lettera scritta tra parentesi prima 
della descrizione del campo, aggiunta per far riferimento al campo stesso nel corso del 
documento con maggiore facilità.

10
 Routing: RIP, OSPF, BGP




           0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
         +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
         | (A)command(1) | (B)version (1)|       (C)must be zero (2)       |
         +---------------+---------------+-------------------------------+
         |(D)address family identifier(2)|    (C)must be zero (2)          |
         +-------------------------------+-------------------------------+
         |                          (E) IP address (4)                     |
         +---------------------------------------------------------------+
         |                         (C) must be zero (4)                    |
         +---------------------------------------------------------------+
         |                         (C) must be zero (4)                    |
         +---------------------------------------------------------------+
         |                           (F) metric (4)                        |
         +---------------------------------------------------------------+
                                          .
                                          .



     ●   A: rappresenta il comando, ovvero se il pacchetto è una richiesta o una risposta. La 
         prima richiede, appunto, ad un router di inviare la parsing table (tutta o parte di 
         essa); la seconda potrebbe essere la risposta ad una richiesta o può rappresentare 
         un regolare aggiornamento, contenente informazioni della routing table;
     ●   B: rappresenta il numero di versione del RIP;
     ●   C: rappresenta un campo non usato;
     ●   D: Address­Family Identifier (AFI): rappresenta l'address family usata, poichè RIP 
         è designato per mantenere informazioni dei percorsi per diversi protocolli. Per 
         esempio, l'AFI per IP è 2;
     ●   E: specifica l'indirizzo IP;
     ●   F: specifica la metrica, ovvero quanti router sono stati attraversati (in gergo, 
         quanti passi (hop) sono stati fatti). Un valore tra 1 e 15 indica un percorso valido, 
         16 indica un percorso non raggiungibile.

Sono permesse fino a 25 occorrenze di AFI, indirizzo IP e metrica in un singolo pacchetto 
RIP.
Le cose sono leggermente diverse per quanto riguarda le versioni più recenti del RIP: ad 
esempio, il RIPv2 permette di includere maggiori informazioni in un singolo pacchetto e 
fornisce un semplice meccanismo di autenticazione che non è supportato nel RIPv1; una 
breve descrizione del RIPv2 è presente alla fine della sezione dedicata al RIP, 
sottolineando soprattutto la relazione tra le due versioni.
Un router che riceve uno di questi pacchetti, lo interpreterà per aggiornare 
eventualmente i dati che già possiede: se il pacchetto contiene il percorso per una rete di 

11
 Routing: RIP, OSPF, BGP

destinazione sconosciuta, si aggiunge il percorso; se il percorso è conosciuto ma 
l'aggiornamento ne contiene uno con una metrica inferiore, viene modificata la routing 
table, sostituendo al vecchio percorso quello appena ricevuto; se il percorso è conosciuto e 
la metrica è maggiore di quella del percorso attualmente utilizzato, semplicemente si 
ignora l'aggiornamento, o si aggiorna solamente nel caso in cui l'aggiornamento provenga 
dalla stessa fonte del percorso più breve attualmente in uso.
Cosa succede se ci sono due percorsi di costo equivalente? Alcuni particolari sono 
direttamente collegati al router in questione e relativa implementazione, ma si possono 
certamente indicare delle linee guida per casi come questo.
La routing table conterrà entrambi i percorsi, e la divisione del traffico tra i due sarà 
decisa dalla modalità di switching, tra cui il Process Switching e il Fast Switching.
Il primo semplicemente bilancia il traffico pacchetto dopo pacchetto tra i due percorsi; 
richiede un uso della CPU intenso perchè esamina la routing table ad ogni pacchetto e 
decide su quale percorso indirizzare il pacchetto stesso.
Con il Fast Switching invece la routing table è consultata solo per il primo pacchetto, in 
quanto le informazioni necessarie sono salvate in una cache; tutti gli altri pacchetti che 
devono arrivare alla medesima destinazione seguiranno il percorso indicato nella cache.


                                  Convergenza
I cambiamenti nella rete sono molto comuni, sia a causa di un intervento prestabilito, sia 
per cause del tutto inaspettate. Un collegamento fisicamente danneggiato, un nuovo 
collegamento introdotto, malfunzionamenti di alcuni router, sono solo alcune delle cause 
di cambiamento. I router della rete non rifletteranno i cambiamenti immediatamente, 
poichè con il RIP la loro conoscenza della rete stessa si basa sui dati che man mano 
apprendono dai router vicini. Per cui ci sarà un periodo di tempo in cui i router dovranno 
man mano aggiornare le loro informazioni per riflettere questi cambiamenti; quando tutti 
i router avranno portato a termine questo aggiornamento, si dice che la convergenza è 
completata; una definizione parallela indica che, quando tutti i router in una rete operano 
con le stesse informazioni, la rete stessa si dice converged.
Questo implica che durante la convergenza, alcune parti della rete potrebbero non essere 
raggiungibili a causa dei percorsi non ancora aggiornati in alcune routing table e rende 
un argomento molto importante la rapidità con cui viene portata a termine la procedura 
di aggiornamento. 
Uno dei metodi che velocizzano questa procedura è chiamato triggered update, che indica 
che un router che scopre un cambiamento nella metrica di un percorso manda un 
aggiornamento ai suoi vicini senza aspettare il prossimo ciclo di aggiornamento: 
l'aggiornamento non contiene la routing table completa, ma solo le informazioni sul 
percorso cambiato. Grazie al triggered update, la convergenza tra due router può 

12
 Routing: RIP, OSPF, BGP

risultare più veloce fino a 30 secondi.
Ci sono divere problematiche da risolvere durante la convergenza.
Prendiamo l'esempio di un router A che perde la connessione a una rete ad esso 
direttamente connessa, e che prima che riesca a comunicare il cambiamento al router B 
vicino, quest'ultimo gli spedisca la sua routing table. Questa routing table conterrà anche 
il percorso non più funzionante e rimosso da A, al costo di un hop poichè passante per A 
stesso. Dato che il primo router ora non ha più nessuna voce che indichi come arrivare a 
quel percorso, salva la voce relativa poichè “pensa” che il router comunicante (B) abbia il 
percorso per raggiungere la destinazione: il costo ora è 2 hop. Ma ora, il secondo router 
aggiorna il suo percorso, che diventa di 3 hop, e il procedimento continuerebbe così fino al 
raggiungimento del valore 16 della metrica. Una soluzione a questo problema è quella di 
non permettere ad un router di mandare un aggiornamento attraverso una certa 
interfaccia su qualsiasi percorso che è stato appreso attraverso quell'interfaccia stessa 
(split horizon).
In altre parole, la regola dello split horizon proibisce ad un router di annunciare una 
rete attraverso un'interfaccia che il router stesso utilizza per raggiungere quella 
destinazione. Questo meccanismo cerca di prevenire la formazione di anelli di routing, e 
nell'esempio precedente, il ciclo non si sarebbe creato.
Eliminare un percorso errato a volte richiede di scambiare diversi pacchetti di 
aggiornamenti finchè il costo del percorso raggiunge la cifra 16. Questo è chiamato 
counting to infinity perchè RIP incrementa il costo del percorso finchè questo non 
diviene più grande della metrica valida (quindi, finchè non raggiunge il valore 16). 
Comunemente si afferma che queste condizioni rallentano la convergenza di routing, in 
quanto ci vuole molto tempo per riflettere un cambiamento di uno stato in una rete.
La scelta del numero 16 è un compromesso tra il tempo di convergenza e il diametro della  
rete. Per diametro della rete si intende la misura delle dimensioni della rete in termini di 
hop (o di altri tipi di metrica). Se fosse stato scelto un numero più alto, la convergenza 
della rete sarebbe stata molto lunga, mentre un numero più basso implicherebbe una 
convergenza più rapida ma il valore del diametro della rete RIP sarebbe più piccolo.
La tecnica del triggered update può essere combinata con il poison reverse, che prevede 
che, quando un router trova un link non più funzionante, il suo prossimo aggiornamento 
per quel percorso conterrà una metrica di 16, e tutti gli altri router al prossimo 
aggiornamento rifletteranno questa situazione; se, appunto, combiniamo i due metodi, 
una volta trovato un collegamento non funzionante o la metrica di un percorso cambiata a 
16, verrà subito spedito un aggiornamento a tutti i router vicini che a loro volta 
metteranno il percorso in questione nello stato hold­down, che assicura che informazioni 
non corrette non verranno propagate nella rete.




13
 Routing: RIP, OSPF, BGP


                        Il problema delle subnet
Come già detto, gli algoritmi di routing si differenziano anche come classful e classless. 
Riassumendo brevemente, i primi operano nei classful boundaries, cioè non gestiscono le 
subnet (detti anche FLSM, Fixed Lenght Subnet Mask); i secondi gestiscono 
pienamente le subnet, quindi operano senza le limitazioni date dalle classi di 
appartenenza, e supportano VLSM,  Variable Lenght Subnet Mask.
Il RIP fa parte della prima categoria descritta, e questa è una limitazione non 
indifferente: la probabile causa è il fatto che RIP è il più datato tra i protocolli di routing 
dinamico oggi in uso, in quanto le specifiche risalgono al 1988. Non a caso, nel 1995 è 
stato pubblicato l'RFC 1388 che specifica il successore di RIP, RIPv2, che presenta una 
valida alternativa in ambienti in cui non si possono ignorare le subnet.
In realtà, se pur con pesanti limitazioni, si può affrontare questa situazione anche con il 
RIP. Poichè, come abbiamo detto, il RIP è FLSM, consente di utilizzare il subnetting 
mantenendo però la netmask fissa per tutta la rete. 
Se un aggiornamento è della stessa major class della interfaccia da cui proviene il router 
assegna la stessa netmask dell’interfaccia; se un aggiornamento è di major class 
differente assumerà una maschera naturale ma se nella tabella di routing vi è un’altra 
sottorete qualsiasi della stessa major class, scarta l’aggiornamento.



                           Percorso Predefinito

Una routing table non deve necessariamente contenere tutti i percorsi nella rete per 
raggiungere tutte le destinazioni.
Questa affermazione è possibile grazie alla presenza del default route.
Quando un router non possiede un percorso specifico per arrivare ad una certa 
destinazione, controlla di avere un default route nella routing table, e se è così invia ad 
esso i pacchetti per quella destinazione. Milioni di percorsi in internet possono essere 
rappresentati da una semplice voce, corrispondente al default route.
In RIP, il default route è rappresentato con l'indirizzo IP 0.0.0.0, conveniente anche per la 
sua assenza di ambiguità che si potrebbe creare con le classi di indirizzi IP.
I vantaggi di un percorso predefinito sono evidenti. In particolare, la routing table non 
dovrà contenere migliaia di percorsi: questo implica che la banda della rete e la CPU del 
router stesso sono notevolmente allegeriti per quanto riguarda le operazioni di 
aggiornamento.
Tuttavia, presenta anche alcuni svantaggi: se il router deve inviare dei dati ad una 

14
 Routing: RIP, OSPF, BGP

destinazione non attiva, non funzionante o non ancora definita, i pacchetti sono inviati 
ugualmente nella rete, attraverso il percorso predefinito.



                   Punti chiave del RIP e 
              compatibilità tra le diverse versioni

RIP è un protocollo relativamente semplice, affidabile e facilmente configurabile.
La struttura è molto consistente, testimoniato dal fatto che le diverse versioni che lo 
hanno caratterizzato lavorano bene insieme.
Tuttavia, a causa di alcune problematiche introdotte precedentemente, rappresenta 
un'ottima scelta per reti di piccole dimensioni ed omogenee, ma per reti di grandi 
dimensioni la scelta migliore difficilmente ricadrà su di esso.


Alcune ragioni sono:

     ●   La gestione della banda e dei ritardi è pressoché nulla;
     ●   Lo scambio di aggiornamenti ogni 30 secondi sui percorsi non è efficiente, 
         soprattutto per reti di grandi dimensioni;
     ●   Il tempo di convergenza può essere molto (troppo) alto;
     ●   Variable Length Subnet Mask (VLSM) non è supportato, in quanto non vengono 
         scambiate informazioni sulla subnet mask tramite gli aggiornamenti;
     ●   il diametro della rete viene ristretto a 15 passi.

Il RIPv2 non è trattato in questo documento, ma per rafforzare la tesi della struttura 
robusta del RIP e della compatibilità tra le versioni, possiamo notare alcuni concetti 
chiave.
Innanzitutto, RIPv2 non è un protocollo basato sulla prima versione ma rielaborato 
completamente dal principio: in sostanza, è il RIPv1 con alcuni campi addizionali nel 
pacchetto di aggiornamento, che forniscono alcune funzionalità in più.
È quindi inevitabile che anche il RIPv2 soffrirà degli stessi problemi sulla convergenza e 
erediterà molti limiti del predecessore, come il limite di 16 hops.
Ad ogni modo, contiene anche diversi miglioramenti.
Un primo miglioramento, che fornisce un servizio necessario all'evoluzione delle reti in 
questi anni, è l'integrazione delle informazioni sulla subnet mask, che lo rende un 
protocollo classless, che supporta il VLSM. Un'altra aggiunta importante è 


15
 Routing: RIP, OSPF, BGP

l'autenticazione: ogni pacchetto può tenere traccia delle informazioni sull'autenticazione 
per convalidare la fonte dei pacchetti ricevuti; questa è una caratteristica completamente 
assente nel RIPv1, che automaticamente riteneva affidabile qualsiasi vicino che 
trasmettesse attraverso il protocollo UDP sulla porta 520, senza alcun vincolo o controllo 
di alcun genere.
L'autenticazione è importante per due ragioni principali.
Prima di tutto per una questione di sicurezza: se un intruso riesce ad accedere alla rete, e 
comincia ad annunciare percorsi RIP, potrebbe creare danni molto seri.
Il secondo motivo è prevenire alcuni tipi di malfunzionamento. Ad esempio, se un router 
viene erroneamente connesso alla rete, non potrà comunque partecipare nelle operazioni 
che riguardano il routing se viene prevista una password.
Inoltre, RIPv2 prevede un tag per ogni percorso che non è usato da RIP, ma potrebbe 
essere usato per fornire diverse informazioni, come ad esempio la fonte del percorso 
quando il percorso stesso è importato da un altro AS.
Queste informazioni addizionali rispetto al RIPv1 sono possibili utilizzando quei campi 
del pacchetto che erano inutilizzati o per scelta tecnica impostati per non contenere 
nessun altro valore oltre lo zero (must be zero, come mostrato nella figura riportata 
precedentemente).
Questa scelta ha un ruolo fondamentale anche nella compatibilità tra le due versioni: il 
RIPv1 può in questo modo processare anche gli aggiornamenti provenienti dal RIPv2, 
semplicemente ignorando il valore di questi campi.




                       OSPF: Open 
                    Shortest Path First

                                  Introduzione

L'OSPF è un protocollo Link State appartenente alla “famiglia” dei protocolli IGP.
Il nome SPF deriva dall'algoritmo SPF di Dijkstra mentre il significato della “O” iniziale 
è “open”, ovvero liberamente descritto in una fonte a cui tutti possono accedere 
liberamente, l'RFC 2328.


16
 Routing: RIP, OSPF, BGP

È un protocollo di routing gerarchico come vedremo in seguito, mentre il RIP è un 
protocollo flat, ovvero non vi è nessuna gerarchia nella rete e ogni router possiede i 
percorsi per ogni destinazione della rete.
Una architettura gerarchica permette il supporto di sistemi notevolmente estesi, poichè 
ogni area è responsabile solamente dei propri percorsi; il RIP ad esempio non aveva un 
supporto adeguato per reti estese, in quanto al crescere della rete corrispondeva un 
overhead nel routing. Il percorso più breve viene calcolato tramite l'algoritmo di Dijkstra 
applicato alla topologia della rete, descritta matematicamente sottoforma di grafo, che 
viene appresa tramite pacchetti LSA (Link State Advertisement).
Ponendo se stesso come radice, ogni router esegue l'algoritmo SPF per calcolare il 
percorso più breve per ogni rete nel grafo, e la routing table è costruita a partire 
dall'albero che viene ottenuto come output dall'algoritmo.
Questo algoritmo è estremamente potente ed efficace, ma è estremamente dispendioso in 
termini di utilizzo della CPU, e questo costo cresce rapidamente, parallelamente alla 
crescita della topologia della rete. Il problema è certamente da non sottovalutare, ma non 
è un problema critico, in quanto come già detto l'OSPF si basa su una struttura 
gerarchica che permette la suddivisione della rete in sottoreti più piccole a cui verrà 
applicato l'algoritmo.
In seguito si vedrà come avviene la comunicazione tra le varie sottoreti.




                                      Costi e Metrica
Ogni router esegue l'algoritmo SPF di Dijkstra per calcolare il percorso più breve.
Ad ogni modo, nell'RFC 2328 non viene specificato come un router dovrebbe calcolare i 
costi di una rete connessa, pertanto il compito viene lasciato all'associazione/ente che 
implementerà le caratteristiche.
Ad esempio, Cisco calcola questa cifra nel modo seguente:

                                    10 8
     Costo =   _________________________________________________________________

                   bandwith dell'interfaccia in bit per secondo

con il risultato arrotondato per difetto; analizzando alcuni casi comuni, possimo notare 
che in questo modo il costo per Ethernet a 10 Mbps è 10, per Fast Ethernet (100 Mbps) è 
1, per un 56 kbps è 64.
Con queste premesse, l'algoritmo SPF di Dijkstra calcola il percorso più corto per ogni 


17
 Routing: RIP, OSPF, BGP

rete nel grafo, il quale, usando la terminologia di OSPF, viene chiamato topological  
database o link state database. Ogni router esegue questo algoritmo con se stesso come 
nodo sorgente e il risultato rappresenta i percorsi per ogni rete dal router stesso; per 
questo motivo, queso costituisce la routing table per il router.
I cambiamenti in una rete sono sempre possibili, e per ognuno di questi cambiamenti 
l'algoritmo SPF di Dijkstra deve essere eseguito di nuovo.
Il tempo di esecuzione dell'algoritmo è E log E, dove E è il numero degli archi del grafo 
(che rappresentano i collegamenti tra i vertici, rappresentanti i router).
Per quanto riguarda l'applicazione dell'algoritmo, al crescere della rete corrisponde un 
consumo sempre più elevato di memoria e CPU in ogni router: non è pertanto indicata la 
gestione di reti estese. Comunque, come già detto, la soluzione è suddividere la rete in 
aree più piccole e applicare l'algoritmo su di esse.



                                    Tipi di area

Un'area è composta da un insieme di router che condividono lo stesso ID dell'area, che è 
univoco.
Grazie alla possibilità di raggruppare router e reti in un'area, l'OSPF può confrontarsi 
anche con reti molto grandi, superando i limiti descritti precedentemente: una rete può 
crescere teoricamente senza limiti, suddividendola in aree, e se un'area diventa troppo 
grande, può essere a sua volta suddivisa in una o più aree.
Al contrario delle reti flat (RIP, IGRP) nella quali ogni router ha le stesse responsabilità e 
gli stessi compiti, lo schema gerarchico di una rete OSPF impone una struttura nella 
quale router e aree sono differenziati in base ai ruoli che ricoprono.
In seguito si formalizzerà quanto detto, indicando i diversi tipi di aree e di router.


                                   Backbone Area

È il cuore di una rete OSPF. È conosciuta anche con il nome di  area zero. Tutte le altre 
aree sono connesse ad essa, e il routing tra le aree avviene attraverso un router connesso 
alla backbone area. La backbone area è responsabile della distribuzione di informazioni 
tra aree nonbackbone. L'area ID di valore 0 (0.0.0.0) è riservato per la backbone area.
Tutte le aree OSPF devono essere connesse alla backbone area.


                                       Stub Area

18
 Routing: RIP, OSPF, BGP



Una  stub area è un'area che non riceve percorsi esterni, fuori dai limiti dell'autonomous 
system, ma riceve i percorsi dal AS, anche se il percorso proviene da un'altra area.
Una stub area tipicamente ha bisogno di un percorso di default a cui mandare i dati per 
destinazioni esterne. Tra le limitazioni derivanti da queste caratteristiche, una stub area 
ha comunque il vantaggio di ridurre l'utilizzo delle risorse, quali CPU e memoria.


                               Totally stubby Area


Una totally stubby area (TSA) è simile alla stub area appena discussa, ma non dà 
informazioni sui percorsi che conosce, ovvero non manda nessun Link­State  
Advertisement. L'unico percorso che una totally stubby area riceve è il percorso di default 
da un'area esterna, la backbone area. Questo percorso permette alla TSA di comunicare 
con il resto della rete.


                               Not­so­stubby Area

Una not­so­stubby area (NSSA) è un tipo di stub area che ha una restrizione in meno: può 
supportare connessioni esterne. Per ogni altro aspetto hanno le stesse caratteristiche 
delle stub area.
Per cui, ogni area configurata come stub area che ha bisogno del supporto per connessioni 
esterne può essere cambiata in una NSSA.
Cisco ne implementa una versione proprietaria chiamata NSSA totally stubby area.



                                 Tipi di router

OSPF definisce diversi tipi di router. Le distinzioni che seguono sono logiche, nel senso 
che un router può anche ricadere in più di una delle classificazioni riportate.


                               Area border router

19
 Routing: RIP, OSPF, BGP



Un area border router (ABR) è un router che connette una o più aree OSPF alla principale 
rete backbone. È considerato un membro di tutte le aree a cui è connesso. Un ABR 
possiede diverse copie del link­state database in memoria, una per ogni area.


                 Autonomous system boundary router

Un autonomous system boundary router (ASBR) è un router connesso a più di un AS e 
scambia informazioni con router in altri AS. ASBR solitamente eseguono un protocollo di 
routing non­IGP, come il BGP.
Un ASBR è utilizzato per distribuire i percorsi ricevuti da altri AS all'interno del proprio 
AS; ci si riferisce a questi percorsi importati con il nome di percorsi esterni (external  
routes).


                                  Internal Router

In questo caso, la descrizione è molto breve e semplice: un internal router (IR) ha 
interfacce in una sola area.

                                 Backbone Router

Ci si riferisce ad un router con un'interfaccia nell'area 0 con la definizione backbone  
router. Un backbone router può avere interfacce su altre aree. La definizione include 
quindi tutti gli area border router, ma un backbone router potrebbe anche essere un 
router che è connesso solamente ad altri backbone router, e che non è parte di nessuna 
altra area escludendo l'area zero. Quindi, un ABR è sempre anche un backbone router, ma 
un backbone router non è necessariamente un area border router.

                            Designated Router e
                         Backup Designated Router




20
 Routing: RIP, OSPF, BGP

Il designated router (DR) e il Backup Designated Router (BDR) sono eletti tra tutti i 
router di una rete multiaccesso.
Il DR è eletto in base a diversi criteri:
     1. vengono scartati tutti i router OSPF con priorità 0, che non potranno quindi mai 
        diventare un DR o BDR;
     2. viene segnato l'ID del DR e del BDR attuali;
     3. tra tutti i router che dichiarano loro stessi come Backup Designated Router viene 
        eletto il nuovo BDR. Tutti i router candidati ad essere DR automaticamente 
        escludono loro stessi dal candidarsi ad essere BDR. Tra i router candidati, quello 
        con priorità più alta verrà eletto BDR; se nessun router dichiara di essere BDR 
        sono esaminati tutti i router che che non hanno già dichiarato se stessi come DR;
     4. tra tutti i router che dichiarano loro stessi come Designated Router viene eletto il 
        nuovo DR. Se non ci sono candidati ad essere DR, viene automaticamente scelto il 
        BDR appena eletto;
     5. deve essere assicurato che nessun router dichiari se stesso sia come DR che come 
        BDR. A tal proposito si ripetono i passi precedenti se:
                  ●   il router che sta effettuando il calcolo è il nuovo DR;
                  ●   il router che sta effettuando il calcolo è il nuovo BDR;
                  ●   il router che sta effettuando il calcolo non è più il DR;
                  ●   il router che sta effettuando il calcolo non è più il BDR;
     6. lo stato dell'interfaccia sarà propriamente impostato; se ad esempio il router che 
        sta effettuando il calcolo è il nuovo Designated Router lo stato sarà DR, se è il 
        nuovo Backup Designated Router lo stato sarà Backup, DRother altrimenti;
     7. se l'identita' del Router Designato o del Router Designato di Backup e' cambiata 
        viene invocato l'evento AdjOk? su tutti i vicini il cui stato è almeno 2­Way: questo 
        causerà una situazione in cui le adiacenze potrebbero dover essere riesaminate. 
Perchè eleggere DR e BDR?
Se consideriamo una rete di diversi router e che in un router cambia il database che 
mantiene le informazioni topologiche della rete, se questo scambia con tutti gli altri 
router della rete le nuove informazioni ci sarà un grande traffico di pacchetti OSPF 
(overhead).
Con la presenza del DR e del BDR, invece, ogni router dialoga solamente con essi, dato 
che il DR e il BDR provvedono a inoltrare le informazioni a tutti i router.


21
 Routing: RIP, OSPF, BGP

Il DR quindi possiede una completa conoscenza della topologia della rete. È per questo 
che il DR può farsi carico di inviare ai vari router gli eventuali aggiornamenti, evitando 
così l'overhead causato se ogni router dovesse mandare aggiornamenti a tutti gli altri.
L'elezione del DR e del BDR avviene in ogni rete multiaccesso, per cui un router potrebbe 
essere un DR su una interfaccia ma non su un'altra.



                        Formato dei Pacchetti e
                      Scoperta dei Router Vicini

I router OSPF devono scoprire l'esistenza di ogni altro router prima di poter scambiare le 
informazioni con essi. Una volta che un router ha completato il suo database topologico, 
può utilizzare l'algoritmo SPF per calcolare il percorso più breve per ogni destinazione.
Le informazioni “viaggiano” all'interno dei pacchetti OSPF.
I pacchetti OSPF sono incapsulati direttamente in IP, con il campo per il protocollo 
impostato a 89. L'indirizzo IP di destinazione in OSPF dipende dal tipo di rete.
OSPF utilizza due indirizzi IP multicast sulle reti broadcast e point­to­point: 224.0.0.5 
per tutti i router OSPF e 224.0.0.6 per i router DR e BDR.
Utilizzare indirizzi multicast è più efficiente dell'utilizzo di IP broadcast, in quanto, se 
fossero usati questi ultimi, tutti i dispositivi connessi dovrebbero ricevere il pacchetto 
broadcast, aprirlo ed eventualmente scartarlo se non stanno eseguendo OSPF.
L'intestazione di tutti i pacchetti OSPF è comune. La seguente figura, presa direttamente 
dall' RFC 2328, mostra il formato dell'intestazione dei pacchetti OSPF: 


       0                   1                    2                  3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
     |    Version #   |      Type      |          Packet length        |
     +---------------+---------------+-------------------------------+
     |                            Router ID                            |
     +---------------------------------------------------------------+
     |                             Area ID                             |
     +-------------------------------+-------------------------------+
     |            Checksum             |      AuType                   |
     +-------------------------------+-------------------------------+
     |                         Authentication                          |
     +---------------------------------------------------------------+

22
 Routing: RIP, OSPF, BGP

       |                       Authentication                          |
       +---------------------------------------------------------------+



Una breve descrizione dei campi:
     1. Version #: La versione di OSPF in uso. La versione corrente è la 2.
     2. Type: Il tipo di pacchetto OSPF. I tipi di pacchetto sono 5 (che verranno descritti in 
        seguito):
                  ●   Tipo 1: Hello;
                  ●   Tipo 2: Database Description;
                  ●   Tipo 3: Link State Request;
                  ●   Tipo 4: Link State Update;
                  ●   Tipo 5: Link State Ack;
     3. Packet length: la grandezza del pacchetto OSPF, includendo l'intestazione;
     4. Router ID: l'ID del router che ha originato il pacchetto OSPF;
     5. Area ID: l'ID dell'area della rete in cui questo pacchetto è stato mandato;
     6. Checksum: il checksum per l'intero pacchetto, inclusa l'intestazione;
     7. Au Type: il tipo dello schema di autenticazione in uso. I possibili valori per questo 
        campo sono:
                  ●   0: nessuna autenticazione;
                  ●   1: autenticazione con testo in chiaro;
                  ●   2: MD5 checksum;
     8. Authentication: i dati per l'autenticazione.



                                  Il Protocollo Hello


Ogni router genera pacchetti hello su ogni sua interfaccia abilitata per farlo.
I router quindi scoprono i rispettivi vicini (neighbors) rimanendo in ascolto di tali 
pacchetti.
Il formato di un pacchetto hello, così come mostrato nell'RFC 2328, è il seguente:

23
 Routing: RIP, OSPF, BGP

            0                    1                      2                    3
            0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |    Version #   |         1        |           Packet length        |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |                              Router ID                             |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |                               Area ID                              |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |            Checksum               |               AuType           |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |                          Authentication                            |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |                          Authentication                            |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |                            Network Mask                            |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |          HelloInterval            |     Options     |    Rtr Pri   |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |                        RouterDeadInterval                          |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |                         Designated Router                          |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |                     Backup Designated Router                       |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |                               Neighbor                             |
          +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
          |                                  ...                               |




Tralasciando delle spiegazioni date precedentemente, i campi significativi sono:
     ●   Router ID: è il nome univoco che distinguerà il router nel grafo della rete. La 
         prima volta che OSPF verrà eseguito in un router, proverà ad assegnargli un 
         Router ID: se non può essere stabilito, il processo termina immediatamente. Per 
         scoprire il router ID, si sceglie l'indirizzo IP più alto per quanto riguarda le 
         interfacce di loopback; se non ci sono interfacce di loopback, sceglie l'indirizzo più 
         alto tra le interfacce attive. Il router ID viene scelto una volta per tutte, e se ad 
         esempio l'interfaccia che ha fornito tale ID non è più attiva, il router ID non 
         cambia;
     ●   Checksum: il checksum per il pacchetto hello;
     ●   Network Mask: la maschera della rete dell'interfaccia su cui viene mandato il 
         pacchetto hello;
     ●   HelloInterval: il tempo che deve passare tra un pacchetto hello e il successivo. Il 
         valore predefinito è 10 secondi;


24
 Routing: RIP, OSPF, BGP

     ●   Options: le capacità opzionali supportate dal router;
     ●   Rtr Pri: la priorità del router. Utilizzata nel calcolo del DR; se il valore di questo 
         campo è 0, il router è escluso dalla possibilità di diventare DR o BDR;
     ●   RouterDeadInterval: il numero di secondi prima di dichiarare il router dead 
         (significato letterale: morto). Il numero di secondi rappresenta il tempo in cui il 
         router non riceve pacchetti hello;
     ●   Designated Router: l'identità del DR per questa rete. In questo caso è 
         identificato dal suo indirizzo IP. Se questo campo contiene il valore 0.0.0.0 non c'è 
         alcun Designated Router;
     ●   Backup Designated Router: l'identità del BDR per questa rete, identificato dal 
         suo indirizzo IP. Se questo campo contiene il valore 0.0.0.0 non c'è alcun Backup 
         Designated Router;
     ●   Neighbor: i Router ID di ogni router da cui si è ricevuto un pacchetto hello 
         all'interno dell'ultimo dead­interval.

Per quanto riguarda le relazioni tra neighbor, possiamo distinguere:
   ● reti point­to­point: i router in queste reti stabiliscono sempre una adiacenza;
   ● reti broadcast: i router in questa rete mantengono una adiacenza solo con il DR e 
      con il BDR, mantenendo una relazione bidirezionale (2­way) con gli altri router;
   ● Non­broadcast multi­access (NBMA) networks: i router in queste reti 
      stabiliscono adiacenze solo con il DR e il BDR;
   ● Virtual Link: i router su link virtuali stabiliscono sempre un'adiacenza.



                         Scambio di informazioni
Per descrivere i contenuti del database Link­State tra i router viene usato il pacchetto 
database description (DD); potrebbero essere usati diversi pacchetti per descrivere il 
database. OSPF richiede che solo i router adiacenti debbano rimanere sincronizzati sul 
database topologico che descrive l'area cui appartengono. Questo porta ad una riduzione 
del traffico sulla rete. Il processo di sincronizzazione del database parte non appena si 
cerca di stabilire una adiacenza. Per questo scopo è usata una procedura poll­response, in 
cui un router è designato come master e l'altro come slave. Il master manda pacchetti DD 
(polls) ai quali verrà “risposto” con pacchetti DD mandati dallo slave (response). Per 
assicurare che la risposta ricevuta sia effettivamente corrispondente alla domanda 
effettuata, viene utilizzato un numero di sequenza, ovvero un intero di 32 bit. 
Concluso l'intero processo di sincronizzazione, l'adiacenza viene considerata pienamente 
funzionante e mantenuta attiva tramite l'invio ad intervalli regolari di pacchetti Hello. 


25
 Routing: RIP, OSPF, BGP

Il formato del pacchetto Database Description, così come mostrato nell'RFC 2328, è molto 
simile ai pacchetti Link State Request e Link State Acknowledgement,  ed è il seguente:
         0                   1                     2                    3
         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |    Version #   |        2       |           Packet length         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                            Router ID                              |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                             Area ID                               |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |            Checksum             |               AuType            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         Authentication                            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                         Authentication                            |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |          Interface MTU          |     Options     |0|0|0|0|0|I|M|MS
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                       DD sequence number                          |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                                                   |
       +-                                                                 -+
       |                                                                   |
       +-                        An LSA Header                            -+
       |                                                                   |
       +-                                                                 -+
       |                                                                   |
       +-                                                                 -+
       |                                                                   |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |                                ...                                |

I campi chiave nell'header LSA sono: advertising router, LS type e link state ID: questi 
campi insieme univocamente identificano l'LSA. Il primo è l'ID del router che ha generato 
l'header LSA, il secondo identifica l'LSA che segue e il terzo dipende dal tipo di LS. Una 
volta ricevuti gli headers LSA dei pacchetti DD, entrambi i router controllano se questa 
parte della rete è già contenuta nei loro database LS. Per fare ciò vengono confrontati i 
campi appena citati dell'header LSA nel database LS del router: se non viene trovato 
alcun risultato, o se il risultato trovato ha un numero di sequenza più basso, viene 
richiesto l'LSA completo, usando il pacchetto link state request. In risposta a questo 
pacchetto, un router invia un link state update contenente l'LSA, che descrive la parte 
della rete in questione. Tutti i link state update vengono “riscontrati” tramite i pacchetti 
link state acknowledgment.
Ci sono diversi tipi di LSA, differenti per struttura, funzione e per il nome che assumono 
a seconda del tipo. Sono brevemente riassunti nella seguente tabella:



26
 Routing: RIP, OSPF, BGP

                  Tipo LS                                  descrizione LSA
tipo 1                                        Sono i router LSA.
                                              Descrivono gli stati delle interfacce del 
                                              router.



tipo 2                                        Sono i network LSA. 
                                              Descrivono l'insieme dei router collegati 
                                              alla rete.


tipo 3 / tipo 4                               Sono i summary LSA.
                                              Descrivono i percorsi tra le aree.
                                              Originati dagli ABR, i summary LSA di 
                                              tipo 3 descrivono i percorsi per le reti, 
                                              mentre i summary LSA di tipo 4 descrivono 
                                              i percorsi per i ASBR


tipo 5                                        Sono gli AS­external­LSA. Originati dagli 
                                              ASBR, descrivono i percorsi per le 
                                              destinazioni esterne all'AS. Un route di  
                                              default per l'AS può essere descritto anche 
                                              da un AS­external­LSA.



                         Gestione dei percorsi

Al contrario dei RIP, l'OSPF non raggruppa automaticamente i percorsi: i meccanismi per 
farlo devono essere impostati manualmente su un ABR o ASBR. Ma, sempre al contrario 
del RIP che gestiva solo numeri di rete classful, permette un raggruppamento su un 
qualunque numero di bit. Sebbene necessario per ridurre la grandezza del database che 
mantiene la topologia della rete, questo processo in OSPF è molto dispendioso in termini 
di risorse quali la memoria del router, e soprattutto in reti molto grandi questo rallenta 
tutti gli altri processi, incluso il calcolo del percorso più corto.
L'inter­area route summarization è attuata sugli ABR ed è applicata ai percorsi 
all'interno dall'AS; L'external route summarization agisce invece per i percorsi esterni ed 


27
 Routing: RIP, OSPF, BGP

è attuata sugli ASBR. Per tutti i motivi già detti, per mettere la summarization negli 
ABR e negli ASBR, gli indirizzi IP devono essere assegnati attentamente: innanzitutto, 
bisogna allocare abbastanza indirizzi ad ogni area per permettere l'espansione della 
stessa; inoltre, impostare un limite di bit su cui effettuare il raggruppamento dei percorsi.
Questa è la descrizione di una situazione ideale, ma spesso non possibile, in quanto ci 
sono delle situazioni in cui, per esempio, un amministratore di rete si trova a gestire una 
rete ereditata da una gestione precedente che è ben lontana da quella ideale appena 
descritta.


                                  Link Virtuali

Lo standard OSPF richiede che tutte le aree non­zero siano connesse alla backbone area. 
Nella maggior parte dei casi si tratta di un collegamento fisico attraverso un ABR. In 
alcuni casi invece una connessione fisica non permette a tutte le aree di collegarsi 
direttamente alla backbone, ma è possibile per un'area collegarsi fisicamente solamente 
ad un'altra area non­zero. In questo caso, deve essere usato un Virtual Link che permette 
di collegare l'area sprovvista di un collegamento fisico all'area zero con la backbone stessa 
attraverso la seconda area non­zero (chiamata Transit Area).
Ci sono alcune limitazioni e raccomandazioni a proposito dei Virtual Link:
    ● La transit area deve essere Normal o NSSA. Non può essere Stub o TSA;
    ● i virtual links riducono l'intuitività della rete e dovrebbero essere evitati. Sono 
        indicati per soluzioni temporanee o per impossibilità di implementare una 
        connessione fisica.




                BGP: Border Gateway
                      Procol

Al contrario del RIP e dell'OSPF, della famiglia degli IGP, che sono designati per il 
routing intra­AS, il BGP è un Exterior Gateway Protocol (EGP), designato per il routing 
inter­AS.
Quindi il BGP è utilizzato per impostare il routing tra una coppia qualunque di AS, per 
connettere una rete client ad un ISP, e collegare tra loro gli ISP.


28
 Routing: RIP, OSPF, BGP

Una differenza sostanziale rispetto ai protocolli precedenti è che il BGP è un protocollo di 
routing a indicazione di percorso (path vector), che non usa metriche di carattere tecnico 
ma prende le decisioni di instradamento basandosi su politiche (regole) determinate da 
ciascuna rete.
Il BGP ha diverse versioni, maturate nel corso del tempo. Fu definito per la prima volta 
nel RFC 1105, nell'anno 1989. Fu aggiornato nel 1990, definendo nell'RFC 1163 il BGP­2.
Ancora, il BGP­3 fu definito nell'RFC 1267 nell'anno 1991, e il BGP­4 nell'RFC 1771 
(1995). Quest'ultima versione è la prima che supporta dei meccanismi molto importanti 
spiegati in seguito, che potrebbero assicurargli un “ciclo di vita” più lungo delle versioni 
precedenti, in quanto si adatta all'evoluzione di Internet: tutte le versioni precedenti sono 
ormai considerate obsolete.
Il protocollo BGP è stato creato per sostituire il protocollo di routing EGP e consentire un 
instradamento completamente decentralizzato, concetto molto importante per internet.
Anche le reti IP private di maggiori dimensioni possono trovare benefici dall'uso del BGP, 
ad esempio nel caso del collegamento di un gran numero di reti OSPF, una situazione in 
cui il protocollo OSPF non è in grado di scalare in modo efficiente. Un altro motivo che 
può spingere all'uso del BGP è la configurazione di una rete in multihoming (termine che 
implica la capacità di comunicare utilizzando più di una interfaccia network alla volta, 
usando lo stesso protocollo di rete) per offrire una maggiore ridondanza.
Tra i protocolli di routing, il BGP è l'unico a utilizzare il TCP come protocollo di trasporto.




                       Funzionamento del BGP

Lo scopo del BGP è la trattazione del routing inter­AS, molto diverso dal routing intra­AS 
visto con il RIP, per esempio. Sono state create nuove strutture per il supporto del routing 
inter­AS.
Al contrario dei protocolli della famiglia degli IGP, nel BGP non c'è alcun metodo per 
scoprire automaticamente i router vicini; l'amministratore di rete deve definirli 
manualmente.
Protocolli quali RIP e OSPF scambiano numerosi aggiornamenti. BGP opera in un modo 
molto diverso da essi, e gli aggiornamenti sono strettamente controllati.
Il BGP funziona attraverso la gestione di una tabella di reti IP, o prefissi, che forniscono 
informazioni sulla raggiungibilità delle diverse reti tra più Autonomous System.
Per supportare la routing table di Internet, BGP deve supportare un numero di prefissi 
superiore a 70000.
Con questa cifra, aggiornare ogni 30 secondi (come il RIP) la routing table con gli 


29
 Routing: RIP, OSPF, BGP

attributi associati sarebbe davvero molto costoso. Per questo motivo, la tabella dei prefissi 
viene scambiata solamente una volta, ovvero quando i neighbor vedono per la prima volta 
ogni altro neighbor. Gli aggiornamenti BGP quindi annunciano solamente nuovi prefissi o 
“eliminano” prefissi precedentemente annunciati, portando ad un overhead piuttosto 
ridotto. Questo però introduce un nuovo problema. Se un router A perde un collegamento 
con un router B, tutti i percorsi conosciuti attraverso B saranno eliminati; se il router A 
ha un secondo percorso migliore attraverso un altro neighbor, C, non lo scoprirà mai in 
quanto non vi sono aggiornamenti periodici in BGP. Questo potrebbe essere risolto 
mantenendo tutti i prefissi conosciuti nella BGP table. Il problema così è risolto, ma ne 
introduce a sua volta un altro: la BGP table potrebbe richiedere una quantità di memoria 
elevata, proporzionalmente al numero di neighbor.
In reti complesse quali appunto quelle inter­AS, una metrica singola (come gli hop per il 
RIP) non è sufficiente, per cui vengono introdotti diversi attributi che descrivono i 
percorsi per le diverse destinazioni, permettendo agli amministratori di rete di 
implementare varie policy di routing.
Per quanto riguarda la relazione tra neighbor, si possono distinguere due tipologie di 
BGP, ovvero External­BGP (E­BGP) e Internal­BGP (I­BGP), che rispettivamente 
vengono applicati sui neighbor in diversi AS, oppure nello stesso AS. La presenza 
dell'IBGP potrebbe rappresentare un controsenso rispetto alla “definizione” del BGP, 
ovvero di un protocollo che si occupa del routing inter­AS. L'I­BGP, invece, è utilizzato per 
propagare le tabelle BGP attraverso l'AS per mantenere una policy di routing consistente.

IGP come il RIP, implementano relazioni con tutti i neighbor direttamente connessi, 
mentre queste relazioni in BGP­4 sono una relazione uno­a­uno tra due gateway.
Una volta avviato il processo BGP, ogni gateway deve specificare i suoi neighbor, o peer.
I peer E­BGP hanno una restrizione che impone loro di essere connessi direttamente, al 
contrario degli I­BGP.
Quando un peer esegue un aggiornamento, l'indirizzo IP NEXT­HOP è modificato 
nell'indirizzo IP dell'interfaccia del router che lo ha originato, mentre questo non avviene 
per l'I­BGP.
Poichè tutti gli scambi BGP sono tra una coppia di speaker BGP, è possibile basarsi su 
una connessione affidabile, per cui viene utilizzato il protocollo di trasporto TCP sulla 
porta 179.
Un router BGP che instrada il traffico IBGP è chiamato un transit router. I router che si 
trovano ai confini di un AS e che usano EBGP per scambiare informazioni con l'ISP sono i 
border o edge router.


                                 Messaggi BGP

30
 Routing: RIP, OSPF, BGP



Ci sono quattro tipologie di messaggi BGP: Open, update, notification e keep­alive.
Un messaggio open è spedito subito dopo che il three­way handshake TCP è completato.
Il suo compito è aprire una sessione di comunicazione tra peer; i messaggi open sono 
confermati utilizzando un messaggio keep­alive e deve essere confermato prima che i 
pacchetti update, notification e keep­alive possano essere scambiati.
Ogni messaggio open spefica diversi parametri:
    ● il numero che rappresenta la versione del BGP;
    ● il numero che rappresenta l'AS;
    ● l'hold timer, ovvero la durata dell'inattività ammessa prima che il peer che ha 
       spedito il messaggio open chiuda la sessione;
    ● identificatore BGP: è rappresentato dell'indirizzo di loopback più alto del router e 
       la sua funzione è quella di identificare univocamente il router che ha spedito il 
       messaggio open;
    ● Lunghezza dei parametri opzionali.


Ogni peer BGP potrebbe autenticare ogni altro peer utilizzando l'algoritmo MD5, 
utilizzando il campo dei parametri opzionali.
Un messaggio update è utilizzato per fornire aggiornamenti di routing ad altri sistemi 
BGP, permettendo di costruire una visione consistente della topologia della rete: 
annunciano prefissi ad un peer BGP. Questi aggiornamenti sono effettuati mediante TCP 
per assicurare un trasferimento affidabile e per assicurarsi, appunto, che le informazioni 
arrivino a destinazione. Prima o poi un malfunzionamento della rete o alcuni 
cambiamenti faranno sì che il peer che annuncia un prefisso perderà il suo percorso per il 
prefisso che annuncia, per cui c'è la necessità, da parte dei messaggi update, di fornire 
anche la possibilità di “ritirare” i prefissi annunciati precedentemente.
Un messaggio notification è inviato quando viene individuata una condizione di errore. 
L'utilizzo principale è quello di chiudere una sessione attiva e informare tutti i router 
connessi del perchè la sessione è stata chiusa: per fare ciò viene utilizzato il campo error  
code che identifica il tipo di errore.
Un messaggio keep­alive notifica i peer BGP che un dispositivo è attivo; questo tipo di 
messaggio è spedito in un periodo di tempo tale da assicurare che la sessione non scada 
(ad esempio, i router Cisco utilizzano un valore pari a 60 secondi).




                                      Attributi

31
 Routing: RIP, OSPF, BGP



Ogni prefisso in un messaggio di aggiornamento BGP è accompagnato da una lista di 
attributi, che permettono all'AS di implementare delle policy di routing.
Il numero degli attributi è variabile, in quanto si distinguono in attributi obbligatori 
(mandatory) e attributi discrezionali (discretionary): per cui, ogni messaggio di 
aggiornamento avrà sicuramente il numero di attributi mandatory ma gli attributi 
discretionary potrebbero essere anche non inviati.
Ancora, si possono suddividere gli attributi in due categorie: well­known e optional.
I primi rappresentano gli attributi che devono essere riconosciuti da tutte le 
implementazioni del BGP, mentre quelli optional non hanno bisogno di essere supportati 
da tutte le implementazioni.
Una ulteriore suddivisione mostra altre due categorie di attributi: transitive e non­
transitive.
Un attributo non­transitive ha significato solo per l'AS che riceve l'aggiornamento; 
l'attributo non viene “fatto notare” agli altri AS. Per quanto riguarda un attributo 
transitive, invece, si tratta di un attributo con significato globale ed è inoltrato negli 
aggiornamenti agli altri AS.
Elencando alcuni attributi, abbiamo: Local Preference, usato per scegliere un punto di 
uscita preferito dall'AS locale. Origin è un attributo che permette i indicare come il BGP 
ha conosciuto un percorso particolare. Il valore potrebbe essere:

  •   IGP: il percorso è interno all'AS d'origine;

  •   EGP: il percorso è conosciuto tramite BGP;

  •   Incomplete: l'origine del percorso non è conosciuto o è stato appreso in un altro 
      modo.


AS_path è un attriubuto rappresentato da una lista ordinata di numeri di AS: quando un 
"avvertimento" per un percorso passa attraverso un AS, il numero di questo AS è 
aggiunto alla lista. Next­hop è l'attributo che definisce l'indirizzo IP del border router 
che dovrebbe essere usato come next­hop per le destinazioni elencate nel campo network  
layer reachibility field. L'attributo Community fornisce un modo per raggruppare alcune 
destinazioni, chiamate comunità, alle quali possono essere applicate decisioni di routing. 



32
 Routing: RIP, OSPF, BGP


                                Load Balancing

BGP è un protocollo Distance Vector che utilizza la metrica più bassa per selezionare il 
percorso migliore per una certa destinazione, analogamente al RIP, ma al contrario di 
quest'ultimo, il processo per decidere il percorso migliore è decisamente più complesso, in 
quanto entrano in gioco diversi fattori quali gli attributi definiti.
Il caso più semplice si ha quando c'è un solo percorso per un dato prefisso, e se questo è il 
caso, il processo di decisione termina immediatamente.
Se invece non è questo il caso, l'algoritmo per decidere il percorso prende come input il 
numero dei percorsi verso lo stesso prefisso. Ogni percorso possiederà una serie di 
attributi, e l'output di questo algoritmo è il percorso migliore per quel prefisso, e sarà il 
candidato per essere aggiunto nella routing table.
Secondo quanto specificato nell'RFC 1771, BGP mantiene solo un percorso per una certa 
destinazione. Questo porta ad uno scenario in cui è impossibile bilanciare il carico del 
traffico dei dati su percorsi diversi. Ad ogni modo, è possibile usare un protocollo della 
famiglia IGP per tener conto del bilanciamento tra AS.
Prendiamo il caso di un router che deve selezionare un percorso tra altri percorsi con la 
stessa distanza amministrativa: in questo il router sceglie il percorso con la metrica 
inferiore. Ogni processo di routing calcola i costi differentemente e i costi potrebbero 
essere manipolati per ottenere un bilanciamento del carico.
Se il router riceve e installa diversi percorsi con lo stesso costo per una destinazione, è 
possibile avere un bilanciamento del carico.




                         Connessione a Internet

Ci sono diverse considerazioni che devono essere fatte prima di implementare una 
connessione reale ad internet, che ne riguarderanno performance, affidabilità e costi. 
Possiamo elencare alcune alternative per quanto riguarda la connessione fisica tra un 
client e un ISP.
La prima è chiamata Singly­homed. Un circuito singono potrebbe essere adeguato per una 
piccola organizzazione con un traffico limitato. L' organizzazione quindi deciderà un ISP e 
deciderà la velocità dell'accesso al circuito. Ovviamente, il problema principale è che se 

33
 Routing: RIP, OSPF, BGP

questo circuito singolo diventa non funzionante, l'intera organizzazione non potrà 
usufruire di internet. Una soluzione è la scelta del multi­homed allo stesso ISP. Facendo 
questa scelta, l'organizzazione può implementare circuiti multipli tra se stessa e l'ISP, 
garantendo così una certa affidabilità. Il prezzo da pagare è una gestione più complessa: i 
collegamenti devono essere della stessa velocità?E quale velocità?Come distribuire il 
traffico nei collegamenti?
Una terza possibilità è il multi­homed a ISP differenti. Una organizzazione potrebbe 
considerare di affidarsi a più ISP per una affidabilità ancora maggiore, garantendo da 
eventuali malfunzionamenti nel collegamento al singolo ISP.
Se distinguiamo il traffico tra outbound, ovvero il traffico dal client a Internet, e inbound, 
ovvero il traffico da internet al client, possiamo vedere opzioni distinte che caratterizzano 
l'uno e l'altro. Innanzitutto, bisogna specificare che questi flussi di dati non devono assere 
simmetrico.
Per quanto riguarda le opzioni che possiamo vedere riguardo al traffico outbound, 
troviamo:

  •   il default route. Il metodo più semplice per definire percorsi a destinazioni esterne. 
      Il default route (0.0.0.0) sarà per qualunque destinazione se non possediamo un 
      percorso specifico per la destinazione stessa.;

  •   routing table parziale insieme al default route. Prendiamo il caso di un client 
      multi­homed a due ISP differenti. è molto probabile che i due percorsi outbound 
      non sono uguali, perchè ad esempio alcune reti sono più vicine attraverso un 
      percorso, altre sono più vicine attraverso l'altro percorso. Le opzioni di scelta sono 
      due: o il router client sceglie di importare un set di percorsi parziale da ogni ISP e 
      usare il default route per i percorsi rimanenti, oppure di importare la routing table 
      completa.

  •   routing table completa. Avere a disposizione una quantità di dati così elevata 
      assicurata una scelta molto accurata. Ma, come già detto, ci sono più di 70000 
      prefissi in internet, e quindi verrebbero richieste quantità di risorse come memoria 
      e CPU davvero elevate.
Le decisione per quanto riguarda il traffico inbound sono prese nelle routing table in AS 
esterni. Il client può impostare alcuni attributi BGP per "influenzare" la scelta, anche se 
spesso gli ISP hanno le loro policy di routing e potrebbe ignorare o sovrascrivere questi 
campi, per cui un procedimento come quello descritto deve essere "concordato" tra 
clientISP.


34
 Routing: RIP, OSPF, BGP



                     Possibili problematiche ed
                            eventuali soluzioni

Il BGP prevede una procedura di smorzamento, chiamata damping, che permette di 
ridurre gli effetti della volatilità degli instradamenti. Tale fenomeno può essere causato 
dall'interruzione e dal successivo ripristino dei collegamenti a livello di WAN / WLAN 
oppure da errori di configurazione o gestione dei router. In assenza di damping è possibile 
che gli instradamenti vengano inseriti ed eliminati dalle routing table con grande 
rapidità e questo può avere un impatto rilevante sul carico di lavoro dei router e di 
conseguenza sulla stabilità complessiva delle procedure di instradamento.
Nel processo di damping la volatilità di un instradamento subisce una diminuzione 
esponenziale. La prima volta che un instradamento và e viene in breve tempo per la 
prima volta, per qualsiasi ragione, il damping non interviene; vengono così conservati i 
tempi di risposta consueti del BGP. Quando l'evento si presenta una seconda volta, il BGP 
ignora il prefisso per un certo tempo, e le occorrenze successive vengono ritardate secondo 
una progressione esponenziale. Quando le anomalie sull'instradamento in questione sono 
cessate ed è trascorso un opportuno lasso di tempo, i prefissi possono essere ripristinati 
partendo da zero.
A causa della maggiore velocità dei collegamenti delle dorsali e dei processori dei router, 
alcuni architetti di rete hanno immesso una voce riguardante il fatto che il damping non 
sia più importante come una volta, in quanto i router sono in grado di assorbire molto più 
rapidamente le modifiche alla routing table. Alcuni hanno persino suggerito che il 
damping in queste condizioni possa peggiorare la situazione invece di migliorarla. Questo 
argomento è ancora controverso e oggetto di numerose ricerche.
Uno dei problemi più gravi del protocollo BGP, ma in realtà dell'intera infrastruttura di 
Internet, deriva dalla crescita della routing table della stessa Internet. Se la routing table 
globale crescesse fino al punto in cui la sua gestione dovesse superare le capacità di 
memoria e di potenza di calcolo dei router meno recenti, questi non sarebbero più in 
grado di agire adeguatamente da gateway per le parti di Internet collegate ad essi. 
Inoltre, cosa forse ancor più importante, le routing table più grandi richiedono tempi più 
lunghi per stabilizzarsi dopo una modifica sostanziale nella connettività, garantendo nel 
frattempo solo una connettività ridotta, o talvolta assente.
Fino al 2001 la routing table globale era in crescita esponenziale e minacciava di dare 
luogo, col tempo, ad una interruzione generalizzata della connettività. Nel tentativo di 

35
 Routing: RIP, OSPF, BGP

contrastare questa eventualità, è in corso uno sforzo congiunto degli ISP per mantenere al 
minimo le dimensioni della routing table globale, attraverso il ricorso ai meccanismi di 
Classless InterDomain Routing (CIDR) e aggregazione degli instradamenti.
Questi sforzi hanno rallentato la crescita della tabella di routing sino a riportarla a un 
andamento lineare, allontanando in modo significativo il momento in cui sarà necessario 
sostituire i router più datati.
Un'altra eventualità è il network black hole, che può avvenire intenzionalmente o essere 
una conseguenza di una configurazione errata. Il network black hole intenzionale è una 
tecnica per “scartare” il traffico attraverso un AS. Per quanto riguarda una 
configurazione errata, è dovuta comunemente a una routing table non completa.
Un Autonomous System con IBGP deve avere tutti i suoi peer IBGP connessi ad ogni altro 
in una “grande maglia” (full mesh) dove appunto ogni peer può “dialogare” con ogni altro 
direttamente. Questa configurazione richiede che ogni router mantiene una sessione 
aperta a ogni altro router. In reti grandi, questo numero di sessioni potrebbe degradare la 
performance dei router, con un ampio utilizzo della memoria o richieste eccessiva a carico 
della CPU. Per ovviare a questo problema sono state introdotte relativamente di recente 
nel BGP alcune tecniche, come ad esempio Route reflectors e BGP confederation, che sono 
state designate come alternative al BGP full­mesh, anche se esse stesse introducono altri 
problemi.




           Implementazioni Open Source del BGP

Ci sono numerose implementazioni del BGP. Questo elenco rappresenta alcune di esse, 
con la caratteristica di essere open source:
     ●   GNU Zebra, suite rilasciata con licenza GPL che supporta BGP4;
     ●   Quagga, un fork di GNU Zebra per sistemi Unix­like;
     ●   OpenBGPD, con licenza BSD, implementato dal team di OpenBSD;
     ●   XORP, eXtensible Open Router Platform, suite con licenza BSD;
     ●   BIRD, per sistemi Unix­like, con licenza GPL.




36
 Routing: RIP, OSPF, BGP




                                         Fonti

Il documento si basa su diverse fonti. Le principali sono:


     ●   Cisco TCP/IP Routing Professional Reference ­ Chris Lewis (McGraw­Hill)
     ●   IP Routing – Ravi Malbotra (O'REILLY)
     ●   RFC 1058 (RIPv1)
     ●   RFC 2453 (RIPv2)
     ●   RFC 4271 (BGP versione 4)
     ●   RFC 2328 (OSPF versione 2 aggiornata)
     ●    
         http://en.wikipedia.org 




37

Mais conteúdo relacionado

Mais procurados

OSPF External Route Summarization
OSPF External Route Summarization OSPF External Route Summarization
OSPF External Route Summarization NetProtocol Xpert
 
Protocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPngProtocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPngMax Benana
 
CCNP Switching Chapter 4
CCNP Switching Chapter 4CCNP Switching Chapter 4
CCNP Switching Chapter 4Chaing Ravuth
 
Bonding Interface in MikroTik
Bonding Interface in MikroTikBonding Interface in MikroTik
Bonding Interface in MikroTikKHNOG
 
Sistemi e reti : Il livello di trasporto
Sistemi e reti : Il livello di trasportoSistemi e reti : Il livello di trasporto
Sistemi e reti : Il livello di trasportoStefano Scarpellini
 
DDoS Mitigation using BGP Flowspec
DDoS Mitigation using BGP Flowspec DDoS Mitigation using BGP Flowspec
DDoS Mitigation using BGP Flowspec APNIC
 
EIGRP (enhanced interior gateway routing protocol)
EIGRP (enhanced interior gateway routing protocol)EIGRP (enhanced interior gateway routing protocol)
EIGRP (enhanced interior gateway routing protocol)Netwax Lab
 
Rapport de base de données gaci cui
Rapport de base de données gaci cuiRapport de base de données gaci cui
Rapport de base de données gaci cuiIdir Gaci
 
2.10b network layer services i pv4 - variable length subnetting
2.10b network layer services  i pv4 - variable length subnetting2.10b network layer services  i pv4 - variable length subnetting
2.10b network layer services i pv4 - variable length subnettingJAIGANESH SEKAR
 

Mais procurados (20)

Routage rip
Routage ripRoutage rip
Routage rip
 
Ccna
CcnaCcna
Ccna
 
Netflow slides
Netflow slidesNetflow slides
Netflow slides
 
OSPF External Route Summarization
OSPF External Route Summarization OSPF External Route Summarization
OSPF External Route Summarization
 
Réseaux Mobiles
Réseaux MobilesRéseaux Mobiles
Réseaux Mobiles
 
Protocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPngProtocole RIP1, RIP2, RIPng
Protocole RIP1, RIP2, RIPng
 
CCNP ROUTE V7 CH7
CCNP ROUTE V7 CH7CCNP ROUTE V7 CH7
CCNP ROUTE V7 CH7
 
Eigrp.ppt
Eigrp.pptEigrp.ppt
Eigrp.ppt
 
CCNP Switching Chapter 4
CCNP Switching Chapter 4CCNP Switching Chapter 4
CCNP Switching Chapter 4
 
Bonding Interface in MikroTik
Bonding Interface in MikroTikBonding Interface in MikroTik
Bonding Interface in MikroTik
 
CCNP ROUTE V7 CH6
CCNP ROUTE V7 CH6CCNP ROUTE V7 CH6
CCNP ROUTE V7 CH6
 
IPv6
IPv6IPv6
IPv6
 
Bgp
BgpBgp
Bgp
 
Sistemi e reti : Il livello di trasporto
Sistemi e reti : Il livello di trasportoSistemi e reti : Il livello di trasporto
Sistemi e reti : Il livello di trasporto
 
DDoS Mitigation using BGP Flowspec
DDoS Mitigation using BGP Flowspec DDoS Mitigation using BGP Flowspec
DDoS Mitigation using BGP Flowspec
 
BGP
BGP BGP
BGP
 
EIGRP (enhanced interior gateway routing protocol)
EIGRP (enhanced interior gateway routing protocol)EIGRP (enhanced interior gateway routing protocol)
EIGRP (enhanced interior gateway routing protocol)
 
Résumé vlsm et cidr
Résumé vlsm et cidrRésumé vlsm et cidr
Résumé vlsm et cidr
 
Rapport de base de données gaci cui
Rapport de base de données gaci cuiRapport de base de données gaci cui
Rapport de base de données gaci cui
 
2.10b network layer services i pv4 - variable length subnetting
2.10b network layer services  i pv4 - variable length subnetting2.10b network layer services  i pv4 - variable length subnetting
2.10b network layer services i pv4 - variable length subnetting
 

Destaque

8 Routing
8 Routing8 Routing
8 Routingacapone
 
INTERCONNECTING CISCO NETWORK DEVICES - Scheda corso LEN
INTERCONNECTING CISCO NETWORK DEVICES  - Scheda corso LENINTERCONNECTING CISCO NETWORK DEVICES  - Scheda corso LEN
INTERCONNECTING CISCO NETWORK DEVICES - Scheda corso LENLEN Learning Education Network
 
MPLS nelle (grandi) reti Enterprise
MPLS nelle (grandi) reti EnterpriseMPLS nelle (grandi) reti Enterprise
MPLS nelle (grandi) reti Enterprisefestival ICT 2016
 
5 Indirizzamento Ip
5 Indirizzamento Ip5 Indirizzamento Ip
5 Indirizzamento Ipacapone
 
LINK STATE ROUTING & ALGORITMO DI DIJKSTRA
LINK STATE ROUTING & ALGORITMO DI DIJKSTRALINK STATE ROUTING & ALGORITMO DI DIJKSTRA
LINK STATE ROUTING & ALGORITMO DI DIJKSTRAContiAlessandro
 
Icemc22010[1].bd siitdstm
Icemc22010[1].bd siitdstmIcemc22010[1].bd siitdstm
Icemc22010[1].bd siitdstmhanums1
 
Storia della cittadinanza delle donne 2
Storia della cittadinanza delle donne 2Storia della cittadinanza delle donne 2
Storia della cittadinanza delle donne 2IC_Civitella
 
Databook 2016-151224-a3
Databook 2016-151224-a3Databook 2016-151224-a3
Databook 2016-151224-a3DrayTek
 
Per scoprire la febbre
Per scoprire la febbrePer scoprire la febbre
Per scoprire la febbreIC_Civitella
 
Top 5 Reasons to Select SolarWinds over HP NNMi
Top 5 Reasons to Select SolarWinds over HP NNMi Top 5 Reasons to Select SolarWinds over HP NNMi
Top 5 Reasons to Select SolarWinds over HP NNMi SolarWinds
 

Destaque (20)

8 Routing
8 Routing8 Routing
8 Routing
 
Routing dinamico
Routing dinamicoRouting dinamico
Routing dinamico
 
INTERCONNECTING CISCO NETWORK DEVICES - Scheda corso LEN
INTERCONNECTING CISCO NETWORK DEVICES  - Scheda corso LENINTERCONNECTING CISCO NETWORK DEVICES  - Scheda corso LEN
INTERCONNECTING CISCO NETWORK DEVICES - Scheda corso LEN
 
MPLS nelle (grandi) reti Enterprise
MPLS nelle (grandi) reti EnterpriseMPLS nelle (grandi) reti Enterprise
MPLS nelle (grandi) reti Enterprise
 
5 Indirizzamento Ip
5 Indirizzamento Ip5 Indirizzamento Ip
5 Indirizzamento Ip
 
Preparazione ccna - Scheda corso LEN
Preparazione ccna - Scheda corso LENPreparazione ccna - Scheda corso LEN
Preparazione ccna - Scheda corso LEN
 
LINK STATE ROUTING & ALGORITMO DI DIJKSTRA
LINK STATE ROUTING & ALGORITMO DI DIJKSTRALINK STATE ROUTING & ALGORITMO DI DIJKSTRA
LINK STATE ROUTING & ALGORITMO DI DIJKSTRA
 
Cisco CCNA
Cisco CCNACisco CCNA
Cisco CCNA
 
Icemc22010[1].bd siitdstm
Icemc22010[1].bd siitdstmIcemc22010[1].bd siitdstm
Icemc22010[1].bd siitdstm
 
Ccna2 project
Ccna2 projectCcna2 project
Ccna2 project
 
Come è fatto IPv6
Come è fatto IPv6Come è fatto IPv6
Come è fatto IPv6
 
Cisco icnd2 (ccna) - Scheda corso LEN
Cisco icnd2 (ccna) - Scheda corso LENCisco icnd2 (ccna) - Scheda corso LEN
Cisco icnd2 (ccna) - Scheda corso LEN
 
Up2U WP6 overview
Up2U WP6 overview Up2U WP6 overview
Up2U WP6 overview
 
Donne filosofe
Donne filosofeDonne filosofe
Donne filosofe
 
Netacad
NetacadNetacad
Netacad
 
Storia della cittadinanza delle donne 2
Storia della cittadinanza delle donne 2Storia della cittadinanza delle donne 2
Storia della cittadinanza delle donne 2
 
Databook 2016-151224-a3
Databook 2016-151224-a3Databook 2016-151224-a3
Databook 2016-151224-a3
 
Orientamento
OrientamentoOrientamento
Orientamento
 
Per scoprire la febbre
Per scoprire la febbrePer scoprire la febbre
Per scoprire la febbre
 
Top 5 Reasons to Select SolarWinds over HP NNMi
Top 5 Reasons to Select SolarWinds over HP NNMi Top 5 Reasons to Select SolarWinds over HP NNMi
Top 5 Reasons to Select SolarWinds over HP NNMi
 

Semelhante a Routing: trattazione dei protocolli RIP, OSPF e BGP

Lezione InternetWorking: il routing
Lezione InternetWorking: il routingLezione InternetWorking: il routing
Lezione InternetWorking: il routingLuca Matteo Ruberto
 
11 Evoluzione
11 Evoluzione11 Evoluzione
11 Evoluzioneacapone
 
6 Inoltro Instradamento
6 Inoltro Instradamento6 Inoltro Instradamento
6 Inoltro Instradamentoacapone
 
Routing problem
Routing problemRouting problem
Routing problemilMancio
 
IPv6 - Breve panoramica tra mito e realtà
IPv6 - Breve panoramica tra mito e realtàIPv6 - Breve panoramica tra mito e realtà
IPv6 - Breve panoramica tra mito e realtàConsulthinkspa
 
Architetture di instradamento a internet: il BGP
Architetture di instradamento a internet: il BGPArchitetture di instradamento a internet: il BGP
Architetture di instradamento a internet: il BGPAntonio Prado
 
Polito v2 (2010 05-19)
Polito v2 (2010 05-19)Polito v2 (2010 05-19)
Polito v2 (2010 05-19)Luca Cicchelli
 
Realizzazione di un modello di router ottico in ambiente open source
Realizzazione di un modello di router ottico in ambiente open sourceRealizzazione di un modello di router ottico in ambiente open source
Realizzazione di un modello di router ottico in ambiente open sourceRaul Cafini
 
Microsoft .NET F# Implementation of A* search algorithm
Microsoft .NET F# Implementation of A* search algorithmMicrosoft .NET F# Implementation of A* search algorithm
Microsoft .NET F# Implementation of A* search algorithmAndrea Tino
 
Polito v3 (2011 01-19)
Polito v3 (2011 01-19)Polito v3 (2011 01-19)
Polito v3 (2011 01-19)Luca Cicchelli
 
Analysis and Characterization of Devices and Protocol Stacks for the Internet...
Analysis and Characterization of Devices and Protocol Stacks for the Internet...Analysis and Characterization of Devices and Protocol Stacks for the Internet...
Analysis and Characterization of Devices and Protocol Stacks for the Internet...Mauro Losciale
 
Presentazione csp-ambient intelligence
Presentazione csp-ambient intelligencePresentazione csp-ambient intelligence
Presentazione csp-ambient intelligenceCSP Scarl
 
Un metodo di progettazione di reti locali con esigenze di qualità del servizio
Un metodo di progettazione di reti locali con esigenze di qualità del servizioUn metodo di progettazione di reti locali con esigenze di qualità del servizio
Un metodo di progettazione di reti locali con esigenze di qualità del servizioClaudio Bortone
 
Wan data link protocols
Wan data link protocolsWan data link protocols
Wan data link protocolss_Morpheus
 

Semelhante a Routing: trattazione dei protocolli RIP, OSPF e BGP (20)

Lezione InternetWorking: il routing
Lezione InternetWorking: il routingLezione InternetWorking: il routing
Lezione InternetWorking: il routing
 
11 Evoluzione
11 Evoluzione11 Evoluzione
11 Evoluzione
 
4 Livello Ip Parte4
4 Livello Ip Parte44 Livello Ip Parte4
4 Livello Ip Parte4
 
Internetworking
InternetworkingInternetworking
Internetworking
 
6 Inoltro Instradamento
6 Inoltro Instradamento6 Inoltro Instradamento
6 Inoltro Instradamento
 
Routing problem
Routing problemRouting problem
Routing problem
 
IPv6 - Breve panoramica tra mito e realtà
IPv6 - Breve panoramica tra mito e realtàIPv6 - Breve panoramica tra mito e realtà
IPv6 - Breve panoramica tra mito e realtà
 
TCP IP
TCP IPTCP IP
TCP IP
 
Architetture di instradamento a internet: il BGP
Architetture di instradamento a internet: il BGPArchitetture di instradamento a internet: il BGP
Architetture di instradamento a internet: il BGP
 
Polito v2 (2010 05-19)
Polito v2 (2010 05-19)Polito v2 (2010 05-19)
Polito v2 (2010 05-19)
 
Realizzazione di un modello di router ottico in ambiente open source
Realizzazione di un modello di router ottico in ambiente open sourceRealizzazione di un modello di router ottico in ambiente open source
Realizzazione di un modello di router ottico in ambiente open source
 
Microsoft .NET F# Implementation of A* search algorithm
Microsoft .NET F# Implementation of A* search algorithmMicrosoft .NET F# Implementation of A* search algorithm
Microsoft .NET F# Implementation of A* search algorithm
 
Polito v3 (2011 01-19)
Polito v3 (2011 01-19)Polito v3 (2011 01-19)
Polito v3 (2011 01-19)
 
Analysis and Characterization of Devices and Protocol Stacks for the Internet...
Analysis and Characterization of Devices and Protocol Stacks for the Internet...Analysis and Characterization of Devices and Protocol Stacks for the Internet...
Analysis and Characterization of Devices and Protocol Stacks for the Internet...
 
Presentazione csp-ambient intelligence
Presentazione csp-ambient intelligencePresentazione csp-ambient intelligence
Presentazione csp-ambient intelligence
 
Un metodo di progettazione di reti locali con esigenze di qualità del servizio
Un metodo di progettazione di reti locali con esigenze di qualità del servizioUn metodo di progettazione di reti locali con esigenze di qualità del servizio
Un metodo di progettazione di reti locali con esigenze di qualità del servizio
 
Wan data link protocols
Wan data link protocolsWan data link protocols
Wan data link protocols
 
Come è fatto Internet
Come è fatto InternetCome è fatto Internet
Come è fatto Internet
 
Multicast IPv6
Multicast IPv6Multicast IPv6
Multicast IPv6
 
Livello Data Link
Livello Data LinkLivello Data Link
Livello Data Link
 

Mais de Lorenzo Sfarra

Real-time monitoring and delay management of a transport information system
Real-time monitoring and delay management of a transport information systemReal-time monitoring and delay management of a transport information system
Real-time monitoring and delay management of a transport information systemLorenzo Sfarra
 
Introduction to Cross Platform mobile development
Introduction to Cross Platform mobile development Introduction to Cross Platform mobile development
Introduction to Cross Platform mobile development Lorenzo Sfarra
 
Progettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamer
Progettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamerProgettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamer
Progettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamerLorenzo Sfarra
 
"Facciamo Ubuntu" @ Linux Day 2009
"Facciamo Ubuntu" @ Linux Day 2009"Facciamo Ubuntu" @ Linux Day 2009
"Facciamo Ubuntu" @ Linux Day 2009Lorenzo Sfarra
 
La Comunità Italiana di Ubuntu
La Comunità Italiana di UbuntuLa Comunità Italiana di Ubuntu
La Comunità Italiana di UbuntuLorenzo Sfarra
 

Mais de Lorenzo Sfarra (6)

presentation
presentationpresentation
presentation
 
Real-time monitoring and delay management of a transport information system
Real-time monitoring and delay management of a transport information systemReal-time monitoring and delay management of a transport information system
Real-time monitoring and delay management of a transport information system
 
Introduction to Cross Platform mobile development
Introduction to Cross Platform mobile development Introduction to Cross Platform mobile development
Introduction to Cross Platform mobile development
 
Progettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamer
Progettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamerProgettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamer
Progettazione e realizzazione di un sistema DRM utilizzando SSL e GStreamer
 
"Facciamo Ubuntu" @ Linux Day 2009
"Facciamo Ubuntu" @ Linux Day 2009"Facciamo Ubuntu" @ Linux Day 2009
"Facciamo Ubuntu" @ Linux Day 2009
 
La Comunità Italiana di Ubuntu
La Comunità Italiana di UbuntuLa Comunità Italiana di Ubuntu
La Comunità Italiana di Ubuntu
 

Routing: trattazione dei protocolli RIP, OSPF e BGP