In questo breve articolo analizzeremo i vantaggi e gli svantaggi dell’implementazione del protocollo BGP (Border Gatway Protocol) in contesti aziendali dotati di connettività ISP multihoming.
La connettività Internet a livello aziendale è caratterizzata sostanzialmente da due differenti tipi di implementazione :
- Dual-Homed : azienda dotata di due o più connessioni allo stesso ISP, configurabile in load balacing o fail over.
- Multihoming : almeno due connessioni verso due differenti ISP utilizzate contemporaneamente. Soluzione ideale in termini di ridondanza, in questo caso possiamo sfruttare due o più router in base alle connessioni e beneficiare di due differenti ISP.
ALCUNI CENNI DI BGP
- Autonomous system (AS) : gruppo di networks che fanno parte di un singolo dominio amministrativo. Responsabile dell’instradamento all’interno di un AS è il protocollo di classe IGP (Interior Gatway Protocol, esempio RIP, OSPF, IS-IS o EIGRP). Ogni azienda è composta da un sistema di routing ed una lan gestita da una singola amministrazione.
- Numerazione AS : ogni sistema autonomi è identificato con un numero a 16 bit (dal Gennaio 2009 sono disponibili le assegnazioni a 32bit) dalla IANA (Internet Assigned Numbers Authority). Le numerazioni a 16 bit prevedono un range da 1 a 65535, con un ulteriore range interno compreso tra 64512 e 65535 riservato per uso privato. Nel nostro articolo utilizzeremo il range privato per evitare di pubblicare numerazioni utilizzate da ISP.
- Exterior Gatway Protocol (EGP) : protocollo incaricato di gestire lo scambio di informazioni tra sistemi autonomi. L’unico protocollo disponibile è BGP (Border Gatway Protocol) versione 4 (RFC 4271). I router che partecipano allo scambio di informazioni tra due sistemi autonomi sono detti border router.
- Internal BGP (IBGP) : parte di BGP utilizzato all’interno del sistema autonomo
- External BGP (EBGP) : parte di BGP utilizzata per lo scambio di informazioni tra sistemi autonomi.
BGP è un advanced distance vector protocol, che permette al sistema autonomo di controllare il traffico attraverso determinati attributi. BGP scambia le proprie informazioni di routing attraverso il path vector che consiste in un messaggio contenente il full path hop-by-hop necessario a raggiungere una determinata destinazione.
Altri attributi includono l’ip address del prossimo sistema autonomo (next-hop attribute) ed un’indicazione di quali network alla fine del path verranno introdotte in BGP (origin code attribute).
BGP è l’unico protocollo di routing ad utilizzare una finestra di trasporto TCP per lo scambio di update, in particolare BGP utilizza la porta TCP 179. Grazie ad un protocollo di livello 4 di tipo “affidabile e connection oriented” come TCP, BGP non prevede e non necessita di alcun tipo di meccanismo per la ritrasmissione degli update, al contrario di quanto previsto nei protocolli IGP (tipo OSPF ed EIGRP i quali scambiano espliciti messaggi Ack per confermare la ricezione). Sempre grazie al protocollo TCP, BGP non effettua update periodici della tabella di routing ma invia esclusivamente update incrementali o triggered in caso di cambi improvvisi di topologia. BGP verifica lo stato della connessione TCP con gli altri router vicini ogni 60 secondi attraverso un keepalive.
Per le principali operazioni di scambio messaggi, BGP utilizza quattro tipi di pacchetto : Open, keepalive, update e notification.
In seguito alla corretta apertura di una connessione TCP tra due peers BGP, il primo messaggio inviato dai due router è un open message. Se il messaggio di apertura viene accettato dal peer, i due routers potranno iniziare a scambiarsi l’intera tabella di routing, il protocollo TCP provvederà al corretto trasporto dei dati e all’eventuale ritrasmissione di pacchetti persi regolando dinamicamente la finestra di protocollo.
Tutti i messaggi di BGP :
Open message :
- Version number : indica la versione del protocollo (comunemente la 4)
- AS Number : numero di AS del router locale
- Hold time : numero massimo di secondi che possono intercorrere tra un keepalive ed update dal sender.
- BGP router ID : questo è un campo di 32 bit che indica l’ID del BGP sender. Il BGP ID è un ip address assegnato al router, l’ID di un router BGP viene scelto al medesimo modo del router ID di OSPF.
- Optimal parameters : questi parametri sono type, lenght e value (TLV) encoded.
Keep Alive :
- BGP keepalive sono messaggi scambiati tra i peers BGP per controllare gli hold timers e, conseguentemente, la connessione TCP.
Update message :
- Un update contiene informazioni relative ad un singolo path, variazioni di path multipli richiederanno l’invio di più update. L’update contiene nel dettaglio informazioni per raggiungere una determinato router e le network contenute.
Notification message :
- Questo campo contiene una lista di prefissi di ip address che sono potenzialmente raggiungibili attraverso il path in questione.
In definitiva BGP consente ad ogni AS di trasmettere le proprie network al resto di internet e comunicare la propria esistenza. Allo stesso tempo BGP calcola il miglior path per interconnettere i vari sistemi autonomi sulla base della raggiungibilità e delle policy dell’as, in una topologia priva di loop.
Torniamo al multihoming analizzando il seguente scenario tipico :
In questo design abbiamo due connessioni verso due differenti ISP, effettuate mediante due apparati. In questo caso abbiamo ridondanza sia a livello ISP che di router, che andrebbe replicata anche a livello distribuzione. L’organizzazione può decidere di implementare BGP tenendo a mente tre differenti scenari :
- Default route : Ogni ISP distribuisce al router aziendale esclusivamente la default route
- Default Route e partial routing table : I router ISP passeranno la default-route e parte della tabella di routing. In particolare includeranno solamente alcune specifiche rotte di proprietà dell’ISP
- Full internet routing table : Ogni ISP fornirà l’intera tabella di routing al sistema autonomi aziendale.
1 DEFAULT ROUTE
In questa particolare implementazione ha il vantaggio di non richiedere caratteristiche hardware di primo livello al router aziendale, non dovendo gestire il routing all’esterno dell’AS. Il border router avrà a disposizione due default route, sarà il protocollo di routing interno (IGP) a scegliere quale utilizzare in base al costo di metrica. Nella topologia in alto avrete notato che i due ISP sono direttamente connessi, questo può portare a fenomeni di suboptimal routing, ovvero la possibilità di raggiungere una destinazione effettuando un percorso più lungo.
Prendendo come esempio la topologia in alto, ipotizziamo che l’azienda A debba raggiungere un indirizzo compreso nella classe di ISP 2 e che la default route installata in tabella di routing sia quella di ISP 1, noteremo che il path selezionato non sarà R2—>ISP2 ma R1—->ISP1—->ISP2. In configurazione multihoming non è particolarmente consigliato affidarsi esclusivamente alle default route.
2 DEFAULT ROUTE E PARTIAL ROUTING TABLE
Nel secondo design per multihoming gli ISP passeranno la default route insieme ad una parziale tabella di routing, contenente gli indirizzi di proprietà dell’ISP. Un’azienda che utilizza BGP può scegliere che rotte ricevere nell’update parziale dell’ISP. L’azienda può inoltre ricevere rotte specifiche di altri sistemi autonomi.
In questa particolare implementazione, l’azienda utilizzerà le redistribution da EGP a IGP sul border router per installare nella tabella di routing IGP le rotte apprese da BGP. Il routing interno di conseguenza baserà le proprie scelte non più basandosi esclusivamente sulla default route, ma anche sulla metrica/costo di alcune rotte apprese da BGP, selezionando il miglior percorso possibile. Possiamo quindi affermare che, rispetto al primo caso, una tabella di routing BGP parziale ci consente di effettuare un routing maggiormente prevedibile e gestibile.
In casi nei quali la destinazione non è presente in tabella di routing, il protocollo si affiderà alla default route che, in configuraizone multihoming, può portare anche in questo caso al fenomeno del suboptimal routing.
3 FULL INTERNET ROUTING TABLE
Nel terzo modello di design gli ISP trasmetteranno ai border routers aziendali tutta la tabella di routing, questo comporta necessariamente l’impiego di router di fascia alta dotati di molta memoria, devendo gestine centinaia di migliaia di rotte in blocchi CIDR. In questo caso non ci sarà suboptimal routing dato che l’azienda motrà gestire in modo completo e dettagliato tutto il routing verso i vari service provider.
Per eventuali chiarimenti o correzioni vi rimando ai commenti.













