lesson_15.md 5.9 KB

Piattaforme e Software per la rete - lezione 15

Giacomo Verticale

24 May 2016

BGP - Border Gateway Protocol

I due protocolli piú complessi di internet che tengono in piedi la rete sono TCP e BGP. Permette di esprimere delle esigenze di collegamento degli operatori di tipo economico e non solo di ottimalitá del percorso.

Scopo

Comunicare informazioni sulle reti Per IPv4 rete=a.b.c.d/n Da quando non esiste piú l'indirizzamento a classi, si usa il termine rete per indicare un blocco di indirizzi, a prescindere che questo corrisponda ad una rete fisica o meno.

agisce

  • tra Sistemi autonomi (AS) - eBGP (BGP esterno)
  • entro un sistema autonomo - iBGP (BGP interno)

Architettura di internet

Un insieme di reti forma un sistema autonomo é un insieme di reti gestiti dalla stessa entitá organizzativa o piú specificatamente, un insieme di reti in cui il routing viene effettuato in modo uniforme. Protocolli di routing interni:

  • RIP
  • OSPF Distribuiscono all'interno della rete le informazioni sulla raggiungibilitá.

Un approccio di questo tipo non scala per reti molto grandi perché:

  • Diverse reti magari concorrenti non vogliono diffondere informaizoni sulla topologia interna

I sistemi autonomi comunicano tra di loro tramite il protocollo eBGP. Le informazioni vengono propagate da un sistema autonomo verso i propri vicini e cosí via.

Un informazione BGP comprende tutti i sistemi autonomi da attraversare per raggiungere una destinazione, non vengono fornite informazioni sul routing all'interno del sistema autonomo. Le Informazioni BGP vengono comunicate all´ interno dell'autonomous system tramite iBGP.

Come fa a funzionare BGP se esso stesso serve al routing

  • eBGP funziona solo tra nodi next-hop collegati a livello 2, quindi non servono particolari informazioni di routing.
  • iBGP lavora all'interno del sistema autonomo dove sono giá presenti informazioni di routing, fornite ad esempio da OSPF.

Fasi del routing completo

  • Protocolli interni (OSPF,RIP) effettuano il routing interno
  • iBGP si instaura sul sistema autonomo
  • eBGP propaga le informazioni tra sistemi autonomi.

BGP usa TCP, e ne ricava una indicazione di affidabilitá del percorso: Se la connessione TCP non é in piedi, il percorso non é disponibile.

BGP usa un approccio DV_like (distance vector) chiamato path vector perché sarebbe complicato distribuire informazioni su miliardi di nodi e alcuni agenti non vogliono distribuire informazioni sulla topologia di rete. A differenza del distance vector vengono inviate informazioni sulla lista di sistemi autonomi da attraversare per raggiungere la destinazione.

Esempio di comunicazione BGP

Destinazione S.A. da attraversare
N1 {R1,ASx,ASy,..}
N2 router di entrata nell'AS

costo rotta = n' AS attraversati Il costo di attraversameto di un sistema autonomo é cosí alto che si contano solo i sistemi autonomi attraversati.

Per scoraggiare un percorso, il sistema autonomo puó inserire se stesso piú volte nella lista, in modo che il percorso risulti piú lungo (usato per rotte di backup magari tariffate a consumo)

Messaggi BGP

Esistono messaggi chiave e messaggi opzionali che possono essere implementati o meno

  • OPEN - apre sessione: viene dichiarato il numero del sistema autonomo, e se i numeri dei due interlocutori sono uguali si usa BGP interno, altrimenti esterno
  • UPDATE - propaga o ritira informazioni su un prefisso: viene usato per distribuire informazioni sulle rotte.
  • KEEPALIVE - verifica raggiungibilitá dell'host: TCP non é in grado di capire se l'host remoto é ancora vivo, questa cosa viene lasciata al protocollo applicativo.
  • NOTIFICATION - chiude la sessione: Notifica che l'entitá sta andando in mainteinance
  • ROUTE REFRESH...

Nel momento in cui un BGP speaker (router che usa BGP) riceve un update, deve ridistribuirlo ai suoi vicini, e questo avviene in modo differente tra eBGP e iBGP. Una funzionalitá importante di BGP sono le politiche di filtering che permettono di distribuire in modo selettivo o non distribuire alcune informazioni. Regole:

  • regola 0: Quando si redistribuisce con eBGP si aggiunge in testa al percorso il proprio numero di AS.
  • regola 1:
    1. Si redistribuiscono via iBGP i percorsi ottenuti tramite eBGP
    2. Si redistribuiscono via eBGP i percorsi ottenuti tramite iBGP
  • regola 2: Non si redistribuiscono via iBGP i percorsi ottenuti tramite iBGP (evita che un router riceva un informazione piú volte). Questo implica che tutti i router di un A.S siano connessi a maglia completa, altrimenti il pacchetto non raggiungerebbe tutti i router.

Path attributes

Vengono propagati insieme all'annuncio

Struttura annuncio

Prefisso contenuto
PATH lista di AS + router di entrata
ATTRIBUTI ...

Path attributes

  • ORIGIN:
    • IGP: inserito da un IGP (Gateway = vecchio nome dei router)
    • EGP: inserito da EGP (non usato piú da anni)
    • incompleto: inserito a mano
  • AS-PATH
  • NEXT-HOP
  • MULTI-EXIT DISCRIMINATOR (solo in eBGP): esprime la preferenza di inviare pacchetti nella strada con MED piú basso.
  • LOCAL PREF (solo in iBGP): é l'analogo del MED internamente al S.A. permette di usare il link tra A.S che si preferisce (LOCAL PREF piú alta).

I pacchetti seguono il percorso inverso dell'annuncio, perché questo consiste nella disponibilitá a ricevere pacchetti entranti.

BGP speaker

  • Adjacent RIB-IN: Memorizza i dati in una tabella diversa per interlocutore, (memorizza tutte le informazioni ricevute, non é la tabella di routing, ad esempio puó contenere doppioni).
  • Import: esegue filtraggi specificati dall'amministratore
  • Route selection.
  • Tabella di routing.
  • Export (filtrano le informazioni da propagare)
  • RIB-OUT

Filtri di export usati ad esempio per accordi di peering che sono gratuiti e permettono a due ISP di scambiarsi i pacchetti diretti per l'altro ma non quelli diretti a terzi.