BGP
Home ]

 

Introduzione
Caratteristiche del protocollo
Path vector
Route sovrapposte
Attributi
Peers
Politiche
Ricezione e propagazione
Il processo di decisione
I pacchetti BGP

 

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.

Torna all'inizio

 

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.

Torna all'inizio

 

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.

Torna all'inizio

 

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.

Torna all'inizio

 

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):

  transitive: (T=1) è un parametro che può essere aggiornato o interpretato da altri router (ad esempio la banda del link più piccolo sul percorso) è deve quindi essere trasmesso ai router successivi

  local: parametro che assume un significato solo all’interno di un certo AS; non deve essere propagato

  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:

Attributo Tipo Flags Significato
ORIGIN 1 Well known IGP(0), EGP(1), o altro(2)
AS_PATH 2 Well known AS nel percorso
NEXT_HOP 3 Well known Indirizzo del "next router"
MULTI_EXIT_DISC 4 Optional, Local Metrica (32 bit)
LOCAL_PREF 5 Well known Metrica (32 bit)
ATOMIC_AGGREGATE 6 Well known Aggregazione sicura
AGGREGATOR 7 Optional, Transitive Identificatore di AS e indirizzo IP del router

Torna all'inizio

 

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.

Torna all'inizio

 

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

Torna all'inizio

 

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:

  con attributi diversi, viene eseguito il processo di decisione e la parte della route meno specifica non viene più considerata valida

  con gli stessi attributi, la nuova route e' ignorata.

  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.

Torna all'inizio

 

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:

  l’esistenza di altre route

  la non esistenza di altre route

  gli attributi di altre route

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.

Il seguente grafico riassume una parte dei concetti sinora espressi, in particolare per cio' che riguarda politiche, ricezione e propagazione e processo di decisione:

 

 

Torna all'inizio