37
 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: trattazione dei protocolli RIP, OSPF e BGP

Embed Size (px)

DESCRIPTION

Breve documento che spiega il routing statico e dinamico, analizzando i protocolli RIP, OSPF, BGP.

Citation preview

Page 1: Routing: trattazione dei protocolli RIP, OSPF e BGP

 Routing: RIP, OSPF, BGP

Università degli studi dell'AquilaFacoltà 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

Page 2: Routing: trattazione dei protocolli RIP, OSPF e BGP

 Routing: RIP, OSPF, BGP

Indice

1 Introduzione e concetti basilari1 Introduzione2 Routing3 Routing table

2 Routing Statico e Dinamico1 Routing Statico2 Routing Dinamico3 Protocolli di routing Classful e Classless4 Autonomous System

3 RIP: Routing Information Protocol1 Convergenza2 Il problema delle subnet3 Percorso predefinito4 Punti chiave del RIP e compatibilità tra le diverse versioni

4 OSPF: Open Shortest Path First1 Introduzione2 Costi e metrica3 Tipi di area4 Tipi di router5 Formato dei pacchetti e scoperta dei router vicini6 Il protocollo Hello7 Scambio di informazioni8 Gestione dei percorsi9 Link virtuali

5 BGP: Border Gateway Protocol1 Funzionamento del BGP

2

Page 3: Routing: trattazione dei protocolli RIP, OSPF e BGP

 Routing: RIP, OSPF, BGP

2 Messaggi BGP3 Attributi4 Load Balancing5 Connessione a Internet6 Possibili problematiche ed eventuali soluzioni7 Implementazioni Open Source del BGP

6. Fonti

3

Page 4: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 5: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 6: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 7: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 8: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 9: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 10: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 11: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 12: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 13: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 14: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 15: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 16: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 17: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 18: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 19: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 20: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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 eBackup Designated Router

20

Page 21: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 22: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 23: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 24: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 25: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 26: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 27: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 28: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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 GatewayProcol

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

Page 29: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 30: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 31: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 32: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 33: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 34: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 35: Routing: trattazione dei protocolli RIP, OSPF e BGP

 Routing: RIP, OSPF, BGP

Possibili problematiche edeventuali 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

Page 36: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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

Page 37: Routing: trattazione dei protocolli RIP, OSPF e BGP

 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