![]() INTRODUZIONE BGP (Border Gateway Protocol) e' un protocollo di routing tra domini, correntemente utilizzato sul backbone di Internet ed e' in pratica il successore del protocollo EGP (Exterior Gateway Protocol). In effetti questo protocollo viene usato soprattutto su Internet dove diversi AS sono collegati a questa grande rete attraverso strutture chiamate Internet Service Provider (ISP). Il protocollo BGP costruisce un grafo di autonomous system basato sulle informazioni che si scambiano i router : questo grafo viene chiamato anche albero in cui ciascun AS viene identificato con un numero univoco. La connessione tra due AS si chiama percorso e una collezione di percorsi forma a sua volta un percorso che viene utilizzato per raggiungere la destinazione BGP e' definito nelle RFC 1105, 1163 e 1267 ed è ormai giunto alla versione BGP-4, con estensioni che ne permettono di trasportare più protocolli. CARATTERISTICHE DEL PROTOCOLLO Affidabilita' della connessione: i router adiacenti comunicano attraverso una connessione di livello trasporto (TCP), che ne garantisce l'affidabilita'. L’utilizzo del TCP semplifica notevolmente la specifica di BGP in quanto si evita totalmente di dover considerare i problemi di ritrasmissione. Tuttavia si può creare qualche problema se un link non è totalmente affidabile (il TCP maschera momentanei fuori servizio del link). Inoltre e' necessario prestare attenzione al fatto che il router sia in grado di privilegiare eventualmente i pacchetti BGP in quanto il TCP, in caso di congestione, riduce il bit rate. Questo puo' essere dannoso per la velocita' di propagazione delle informazioni di routing. Protocollo Path Vector (variante del protocollo Distance vector) Per ogni destinazione IP è fornita la sequenza di Autonomous System (AS) da attraversare; viceversa nel distance vector puro viene indicato solamente il costo. Inoltre non c’è il problema del conteggio a infinito. La descrizione del percorso verso una destinazione viene effettuata attraverso l'utilizzo di campi detti attributi. Le destinazioni IP sono espresse in termini di prefissi di indirizzo I router possono aggregare le informazioni di routing ricevute prima di propagarle. Questo consente un beneficio in termine di diminuzione del traffico di routing e di diminuzione delle dimensioni delle basi dati nei router. Ogni router ha un algoritmo (Decision Process) per fare una classifica dei percorsi alternativi.
PATH VECTOR Una delle principali criticita' del protocollo Distance Vector consiste nella possibilita' che si verifichino fenomeni di non convergenza, quando non viene sempre scelto, da tutti i nodi, il percorso più breve Il protocollo Path Vector, che e' comunque una variante dell’algoritmo DV, permette la memorizzazione dell’intero percorso tra due reti. Ne consegue che è immediato il riconoscimento dei loop. Inoltre, il PV non obbliga tutti gli AS ad usare la stessa metrica (in ogni AS ci possono essere esigenze diverse e quindi metriche diverse). E' comunque necessario considerare che i messaggi BGP sono molto più grandi rispetto ai DV.
ROUTE SOVRAPPOSTE Uno stesso router puo' ricevere annunci che dichiarano alcune destinazioni raggiungibili attraverso percorsi diversi. Si possono avere: Percorsi maggiormente specifici: validi per un sotto insieme di destinazioni più ristretto. Sono caratterizzati da un prefisso di indirizzo più lungo. Percorsi meno specifici: validi per un sopra insieme di destinazioni. Sono caratterizzati da un prefisso di indirizzo piu' corto. I router devono scegliere per default la route maggiormente specifica. Se un router sceglie la route meno specifica lo segnala quando la propaga. In questo modo si notifica che non è garantito che i pacchetti seguiranno il percorso annunciato. Il router da cui arrivano le route sovrapposte, invierà alcuni pacchetti sul percorso della route più specifica e altri su quella meno specifica (l’unica annunciata). Inoltre, la route non può essere disaggregata per cui i router che ricevono l’annuncio non possono a loro volta annunciare percorsi differenti per sottoinsiemi delle destinazioni.
ATTRIBUTI Per la descrizione di un percorso verso una destinazione vengono utilizzati dei campi detti attributi. I più importanti sono la "lista degli AS attraversati" e la "lista delle reti raggiungibili" A questo scopo, BGP utilizza due ottetti nei quali una serie di opportuni flag permettono di discriminare il significato dei vari attributi. Ogni attributo è classificato da un primo ottetto, nel quale sono previsti 4 flags e 4 bit riservati (a zero): O (well-known/optional): indica se l'attributo e' opzionale (O=1) oppure se e' ben conosciuto. T (transitive/local):
P (partial): settato se qualche router sul percorso non è stato in grado di comprendere il significato di quel particolare attributo (ad es uno opzionale); significa che l’attributo è stato solo parzialmente valutato E (length): indica se la lunghezza del campo LENGTH è codificata con 1 ottetto (E = 0) oppure 2 Il secondo ottetto riporta il tipo di attributo; la seguente tabella riporta invece un elenco degli attributi previsti, con il valore assunto dai flag ed il significato dell'attributo:
PEERS Possiamo distinguere: Exterior: sono due router di bordo di 2 AS, che si vedono direttamente Interior: sono due router di bordo dello stesso AS, che necessitano di una connessione interna apposita (ed esplicita) per scambiarsi le route BGP. L’ideale sarebbe un grafo completamente connesso; in pratica ci si accontenta di un grafo ben connesso. Ogni router stabilisce così una serie di connessioni (definite da management) con gli altri router BGP dello stesso AS.
POLITICHE Permettono al router di stilare una classifica dei possibili percorsi e scegliere il migliore; vengono configurate manualmente. Sono necessarie in quanto non sono diffusi costi per il raggiungimento delle destinazioni. Si possono imporre politiche molto complesse Deve comunque esistere un metodo locale per costruire una funzione che dato un percorso restituisca un numero intero
RICEZIONE E PROPAGAZIONE Prima di vedere gli aspetti legati alla ricezione e alla propagazione dei pacchetti, e' necessario introdurre la definizione di RIB (Routing Information Base). Esistono 3 tipologie di RIB, di seguito descritte: Adj-RIBs-In: Informazioni apprese dagli annunci ricevuti Loc-RIB: Informazioni utilizzate per l’instradamento e selezionate mediante il processo di decisione Adj-RIBs-Out: Informazioni da propagare e selezionate mediante il processo di decisione. Quando viene ricevuto un annuncio: Se la destinazione si trova in Adj-RIBs-In, la nuova route rimpiazza la vecchia; viene eseguito il processo di decisione Se la route è maggiormente specifica di un’altra:
Se la destinazione non è presente in Adj-RIBs-In viene inserita la nuova route e viene eseguito il processo di decisione Se la nuova route è meno specifica di una esistente viene eseguito il processo di decisione che riguardera' solo le destinazioni descritte dalla nuova route.
IL PROCESSO DI DECISIONE Il processo di decisione applica le politiche contenute nella Policy Information Base (PIB) per selezionare le route da propagare. È una funzione che, dati gli attributi di una route, restituisce un intero (grado di preferenza) Il processo di decisione non considera:
Applicata la funzione a tutte le route per una destinazione, si sceglie quella con grado di preferenza maggiore Il processo agisce su tutte le route contenute in Adj-RIB-In e si occupa di selezionare le route da propagare sia all’interno che all'esterno dell’Autonomous System; inoltre, aggrega le route e riduce le informazioni da trasmettere. © GnomixLand http://www.gnomixland.com/ |