Cos'è il BGP? | Spiegazione del routing BGP

Border Gateway Protocol (BGP) è il protocollo di routing per l'Internet. Proprio come un ufficio postale gestisce la posta, il BGP sceglie i percorsi più efficienti per la consegna del traffico Internet.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Define BGP routing
  • Explore the relationship between autonomous systems
  • Explain how BGP can impact the functionality of the Internet

Copia link dell'articolo

Cos'è il BGP?

Il Border Gateway Protocol (BGP) è l'ufficio postale di Internet. Quando qualcuno lascia una lettera in una cassetta della posta, il servizio postale elabora quel pezzo di posta e sceglie un percorso rapido ed efficiente per consegnare quella lettera al destinatario. Allo stesso modo, quando qualcuno invia dati tramite Internet, il BGP è responsabile dell'esame di tutti i percorsi disponibili che i dati potrebbero utilizzare e della scelta del percorso migliore, il che di solito significa saltare da un sistema autonomo all'altro.

Il BGP è il protocollo che fa funzionare Internet tramite il routing dei dati. Se un utente a Singapore carica un sito Web con server di origine in Argentina, il BGP è il protocollo che consente una comunicazione rapida ed efficiente.

Cos'è un sistema autonomo?

Internet è una rete di reti. È suddiviso in centinaia di migliaia di reti più piccole note come sistemi autonomi (AS, autonomous system). Ognuna di queste reti è essenzialmente un grande pool di router gestiti da un'unica organizzazione.

Topografia di Internet

Se continuiamo a pensare al BGP come al servizio postale di Internet, i sistemi autonomi possono essere considerati come le singole filiali degli uffici postali. Una città può avere centinaia di uffici postali, ma la posta in quegli uffici deve passare attraverso la filiale locale prima di essere indirizzata a un'altra destinazione. I router interni all'interno di un sistema autonomo sono come gli uffici postali. Inoltrano le loro trasmissioni in uscita al sistema autonomo, che quindi utilizza il routing BGP per portare queste trasmissioni alle loro destinazioni.

BGP semplificato

Il diagramma precedente illustra una versione semplificata del BGP. In questa versione sono presenti solo sei sistemi autonomi su Internet. Se il sistema autonomo AS1 deve indirizzare un pacchetto al sistema autonomo AS3, ha due diverse opzioni:

Hop a AS2 e poi a AS3:

AS2 → AS3

Oppure hop a AS6, quindi a AS5, AS4 e infine a AS3:

AS6 → AS5 → AS4 → AS3

In questo modello semplificato, la decisione sembra semplice. Il percorso AS2 richiede meno hop rispetto al percorso AS6 e quindi è il percorso più rapido ed efficiente. Ora immagina che ci siano centinaia di migliaia di sistemi autonomi e che il conteggio degli hop sia solo una parte di un complesso algoritmo di selezione del percorso. Questa è la realtà del routing BGP su Internet.

La struttura di Internet è in continua evoluzione, con la comparsa di nuovi sistemi e l'indisponibilità dei sistemi esistenti. Per questo motivo, ogni sistema autonomo deve essere aggiornato con le informazioni relative a nuovi percorsi e percorsi obsoleti. Questo viene fatto attraverso sessioni di peering in cui ogni AS si connette agli AS vicini con una connessione TCP/IP per condividere le informazioni sul percorso. Utilizzando queste informazioni, ogni AS è attrezzato per instradare correttamente le trasmissioni di dati in uscita provenienti dall'interno.

Qui è dove parte della nostra analogia cade a pezzi. A differenza delle filiali degli uffici postali, i sistemi autonomi non fanno tutti parte della stessa organizzazione. In effetti, spesso appartengono ad aziende concorrenti. Per questo motivo, i percorsi di BGP a volte tengono conto di considerazioni commerciali. Gli AS spesso si addebitano l'un l'altro per trasportare il traffico attraverso le loro reti e il prezzo dell'accesso può essere preso in considerazione in base al percorso selezionato.

Chi gestisce i sistemi autonomi BGP?

Gli AS in genere appartengono a provider di servizi Internet (ISP) o altre grandi organizzazioni, come aziende tecnologiche, università, agenzie governative e istituzioni scientifiche. Ogni AS che desidera scambiare informazioni di routing deve acvere un numero di sistema autonomo registrato (ASN). Internet Assigned Numbers Authority (IANA) assegna gli ASN ai registri Internet regionali (RIR, Regional Internet Registry), che poi li assegna agli ISP e alle reti. Gli ASN sono numeri a 16 bit compresi tra 1 e 65534 e numeri a 32 bit compresi tra 131072 e 4294967294. A partire dal 2018, ci sono circa 64.000 ASN in uso in tutto il mondo. Questi ASN sono necessari solo per il BGP esterno.

Qual è la differenza tra BGP esterno e BGP interno?

I percorsi vengono scambiati e il traffico viene trasmesso su Internet utilizzando BGP esterno (eBGP). I sistemi autonomi possono anche utilizzare una versione interna di BGP per instradare attraverso le loro reti interne, nota come BGP interno (iBGP). Va notato che l'utilizzo di BGP interno NON è un requisito per l'utilizzo di BGP esterno. I sistemi autonomi possono scegliere tra una serie di protocolli interni per connettere i router sulla loro rete interna.

Il BGP esterno è come la spedizione internazionale. Ci sono alcuni standard e linee guida che devono essere seguiti quando si spedisce qualcosa a livello internazionale. Una volta che quel pacco raggiunge il suo paese di destinazione, deve passare attraverso il servizio di posta locale del paese di destinazione per raggiungere la sua destinazione finale. Ogni paese ha il proprio servizio di posta interna che non segue necessariamente le stesse linee guida di quelle di altri paesi. Allo stesso modo, ogni sistema autonomo può avere il proprio protocollo di instradamento interno per l'instradamento dei dati all'interno della propria rete.

Difetti di BGP e come affrontarli

Nel 2004, un ISP turco chiamato TTNet ha accidentalmente pubblicizzato percorsi BGP errati ai suoi vicini. Questi percorsi sostenevano che TTNet stesso fosse la migliore destinazione per tutto il traffico su Internet. Man mano che questi percorsi si diffondevano sempre di più verso altri sistemi autonomi, si verificava un'enorme interruzione, creando una crisi di un giorno in cui molte persone in tutto il mondo non sono state in grado di accedere a parte o a tutta Internet.

Allo stesso modo, nel 2008, un ISP pakistano ha tentato di utilizzare un percorso BGP per impedire agli utenti pakistani di visitare YouTube. L'ISP ha quindi pubblicizzato accidentalmente questi percorsi con i suoi AS vicini e il percorso si è diffuso rapidamente attraverso la rete BGP di Internet. Questo percorso ha portato gli utenti a tentare di accedere a YouTube in un vicolo cieco, che ha reso YouTube inaccessibile per diverse ore.

Questi sono esempi di una pratica chiamata dirottamento BGP, che non sempre avviene accidentalmente. Nell'aprile 2018, gli aggressori hanno deliberatamente creato percorsi BGP errati per reindirizzare il traffico a cui era destinato al servizio DNS di Amazon. Gli aggressori sono stati in grado di rubare criptovaluta per un valore di oltre $ 100.000 reindirizzando il traffico a se stessi.

Incidenti come questi possono verificarsi perché la funzione di condivisione del percorso di BGP si basa sulla fiducia e i sistemi autonomi si fidano implicitamente dei percorsi condivisi con loro. Quando i peer annunciano informazioni di percorso errate (intenzionalmente o meno), il traffico va dove non dovrebbe, potenzialmente con risultati dannosi.

Fortunatamente, sono stati compiuti alcuni progressi nella protezione del BGP. In particolare, nel 2008 è stato introdotto un framework di sicurezza per il routing chiamato Resource Public Key Infrastructure (RPKI). RPKI utilizza record firmati crittograficamente chiamati Route Origin Authorization (ROA) per convalidare quale operatore di rete è autorizzato ad annunciare gli indirizzi IP di un'organizzazione utilizzando il BGP. Ciò garantisce che solo le parti autorizzate annuncino i prefissi di un'organizzazione.

Ma RPKI da sola non basta. Se le reti di grandi dimensioni non distribuiscono RPKI, possono diffondere attacchi di dirottamento su larga scala. Attualmente, oltre il 50% dei principali provider Internet supportano RPKI in una certa misura, ma è necessaria una maggioranza più ampia per proteggere completamente il BGP. Gli operatori di rete possono proteggere le proprie reti implementando RPKI e utilizzando la tecnologia di avviso di rete come Cloudflare Route Leak Detection. Questa funzione aiuta a prevenire attacchi di dirottamento BGP facendo sapere ai clienti quando parti non autorizzate pubblicizzano i loro prefissi.