Nella parte 1 di questa serie, abbiamo stabilito che BGP è il protocollo utilizzato per instradare il traffico attraverso i sistemi autonomi interconnessi (AS) che compongono Internet. Abbiamo anche esaminato il motivo per cui un’efficace configurazione BGP è una parte importante del controllo del tuo destino su Internet e abbiamo coperto alcuni dei concetti di base necessari per comprendere cosa fa BGP e come lo fa. Continueremo su quel percorso in questo post, aggiungendo più concetti e approfondendo il funzionamento di BGP e ciò che lo rende di valore.
Pubblicazione dei percorsi
La funzione principale di BGP è quella di fornire un meccanismo attraverso il quale qualsiasi sistema autonomo – una rete connessa a Internet – può ottenere traffico verso qualsiasi altro AS. Come discusso nella Parte 1, il percorso percorso dal traffico è indicato come un percorso e BGP è il protocollo mediante il quale si “pubblicizza” su Internet i percorsi disponibili per ottenere il traffico verso il proprio AS.
Un modo di pensare alle rotte BGP che pubblicizzi ad altre entità è come promettere di trasportare dati nello spazio IP rappresentato dalla rotta pubblicizzata. Ad esempio, se pubblicizzi 192.204.4.0/24 (in termini di classe C, il blocco che inizia a 192.204.4.0 e termina a 192.204.4.255), prometti di sapere come portare ai dati di destinazione finali destinati a qualsiasi indirizzo in 192.204.4.0/24.
Single- and Multi-homed Networks
Un altro importante concetto relativo al BGP è “single-homed” vs. “multi-homed”, che è un fattore determinante per chi utilizza BGP e chi no:
Single-homed significa che hai un solo provider upstream che consente alla tua rete di transitare verso il resto di Internet.
Multi-homed significa che ti connetti a più fornitori per fornire il transito verso il resto del mondo.
Quando sei single, di solito non vuoi usare BGP con tuoi fornitori upstream perché hai solo un percorso fuori dalla tua rete. Quindi riempire il tuo router con oltre 500.000 route BGP non ti farà bene, dal momento che tutte queste rotte puntano allo stesso posto (il tuo unico fornitore a monte). Puoi ottenere lo stesso risultato molto più semplicemente utilizzando una “route predefinita” per indirizzare tutti i pacchetti che non corrisponderebbero altrimenti nella tabella di routing interna al tuo provider upstream.
Inoltre, se hai un provider upstream, è quasi garantito che il tuo spazio IP sia una sub-allocazione (delega CIDR, per essere precisi) dei loro blocchi IP più grandi (aggregati). Quindi non sarai pubblicizzato specificamente nel mondo esterno; invece il tuo provider pubblicizzerà semplicemente il blocco complessivo. Se disponi di altre reti (ad es. Una vecchia Classe C, clienti con spazio di indirizzi, ecc.), Il tuo fornitore annuncerà staticamente quei percorsi verso il mondo e li instraderà staticamente all’interno della loro rete verso le tue interfacce del router. Quindi, anche se hai fatto pubblicare al tuo provider le rotte verso il tuo spazio IP, non le pubblicheranno nuovamente nel resto del mondo perché esiste già una rotta verso il tuo provider per uno dei più grandi aggregati di spazio degli indirizzi di cui sei dentro.
Nonostante quanto sopra, c’è una circostanza in cui potresti finire con l’utilizzo di BGP come cliente single-homed, che è se hai più connessioni a un singolo ISP. In alcuni casi, utilizzerai BGP per gestire il bilanciamento del carico attraverso questi collegamenti. Spesso, il tuo fornitore vorrà aiutarti a configurare, monitorare e gestire BGP poiché ciò influenzerà il servizio che forniscono.
Connessione con e senza
Per comprendere meglio il valore pratico di BGP se sei multi-homed o hai più connessioni a un singolo ISP, vediamo cosa succede quando ti colleghi a Internet senza parlare di BGP al tuo provider:
Si crea una route predefinita verso il proprio provider upstream e tutti i pacchetti non locali escono dall’interfaccia specificata da quella route.
Il tuo provider probabilmente mette i percorsi statici verso di te dalla loro parte e ridistribuisce tali percorsi statici nel loro protocollo gateway interno (IGP). Quindi, a meno che tutto il loro BGP non venga eseguito staticamente, probabilmente ridistribuiscono il loro IGP in BGP.
Cosa succede diversamente se usi BGP? Il tuo fornitore ti fornirà tutti i percorsi che hanno (questa è la parte facile), ascolterà i tuoi annunci di percorso e quindi ridistribuirà alcuni o tutti questi ai loro colleghi e clienti (questa è la parte difficile per loro). Le differenze nette si riducono a questo:
Possono iniziare a pubblicizzare un percorso più specifico, il che non è un compito medio in una rete complicata progettata, come la maggior parte delle reti, per impedire la perdita accidentale di percorsi più specifici.
I percorsi che pubblicizzano normalmente per te solo con il loro ASN ora avranno anche il tuo ASN collegato.
Qual è il vantaggio più importante per te dell’utilizzo di BGP? Non è che ottieni percorsi completi o parziali dai tuoi fornitori. È fantastico – e forse anche utile – ma puoi farlo quasi anche semplicemente bilanciando il carico di tutto il traffico in uscita in modalità round robin o route-caching. La cosa più importante per te di BGP sarà in realtà la possibilità di pubblicizzare le tue rotte verso i tuoi fornitori e da loro verso i loro fornitori e colleghi (cioè verso il resto di Internet).
Cardinal Sins
Quindi ora capiamo perché potresti voler usare BGP. Ciò significa che ora sei pronto per iniziare la configurazione? Fare un livello base di pubblicità sul percorso usando BGP non è difficile, ma se lo rovini, potresti essere schiaffeggiato piuttosto duramente, perché i malintesi con gli annunci del percorso BGP possono essere percepiti su Internet. Esatto: i problemi con gli annunci di percorso BGP possono essere avvertiti su Internet!
Il primo peccato cardinale di BGP sono i percorsi pubblicitari verso i quali non sei in grado di erogare traffico. Questo si chiama “black-holing”, che è una forma di “dirottamento della rotta”. Se pubblicizzi una parte dello spazio IP di proprietà di qualcun altro e tale pubblicità è più specifica di quella creata dal proprietario di quello spazio IP, tutti i dati su Internet destinati a quello spazio passeranno al tuo router di frontiera. Ciò disconnetterà efficacemente quello spazio degli indirizzi bucherellato dal resto di Internet. Supponiamo, ad esempio, che tu annunci un percorso per i server di Instagram più specifico del percorso altrimenti migliore. Il risultato è che hai appena forato Instagram per un certo periodo di tempo. Inutile dire che ciò renderà molte persone molto infelici.
Il secondo peccato cardinale del routing BGP non prevede filtri abbastanza rigidi sulle rotte pubblicizzate. Se non filtri bene e hai un cliente che parla BGP, puoi trasmettere la loro scarsa igiene ed essere un vettore involontario per interrompere le reti lontano da te su Internet. Se il tuo provider è intelligente, ci sono filtri in atto per impedirti un fallimento spettacolare, che danneggerebbe loro e tutti gli altri. Ma non ci contare.
La chiave per evitare questi peccati è multilivello:
Implementa un buon filtro all’estremità .
Verifica che anche il tuo provider stia eseguendo un filtro eccellente, ove possibile.
Sii paranoico durante la configurazione del tuo BGP: prova le tue configurazioni e fai attenzione agli errori di battitura! Pensa a tutto ciò che fai in termini di come potrebbe rovinare le cose e farti atterrare sulla prima pagina del New York Times.
Ricorda: la stragrande maggioranza del dirottamento del percorso su Internet è dovuta a un’errata configurazione! Ciò non significa che qualcuno non possa tentare di interrompere il servizio o intercettare i pacchetti, ma di solito il problema è un errore di battitura nella configurazione di qualcuno. Concentrarsi sui punti sopra elencati è la tua migliore difesa contro spararti al piede durante la configurazione di BGP.