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:

  • Definire il routing BGP
  • Esplorare la relazione tra i sistemi autonomi
  • Spiegare come il BGP può influire sulla funzionalità di Internet

Argomenti correlati


Vuoi saperne di più?

Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.

Fai riferimento all'Informativa sulla privacy di Cloudflare per scoprire come raccogliamo ed elaboriamo i tuoi dati personali.

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.

Risorsa
Riprendi il controllo con la connettività cloud

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.

Registrati
Accelera il tuo traffico a livello globale con un clic

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 routing interno per il routing dei dati nella propria rete.

Cosa sono gli attributi BGP?

Nel complesso, BGP cerca di trovare il percorso più efficiente per il traffico di rete. Ma come notato sopra, il conteggio degli hop non è l'unico fattore utilizzato dai router BGP per trovare quei percorsi. BGP assegna attributi a ciascun percorso, e questi attributi aiutano i router a selezionare un percorso quando sono disponibili più opzioni. Molti router consentono agli amministratori di personalizzare gli attributi per un controllo più dettagliato sul flusso del traffico sulle loro reti. Alcuni esempi di attributi BGP sono:

  • Peso: un attributo proprietario di Cisco, che indica a un router quali percorsi locali sono preferiti.
  • Preferenza locale: indica a un router quale percorso in uscita selezionare.
  • Originate: indica a un router di scegliere i percorsi che ha aggiunto al BGP stesso.
  • Lunghezza del percorso AS: simile al diagramma di esempio sopra, questo attributo indica a un router di preferire percorsi più brevi.

Ci sono anche molti altri attributi BGP. Tutti questi attributi sono ordinati in base alla priorità per i router BGP, in modo che, ad esempio, un router BGP controlli prima quale percorso ha il peso più elevato, quindi controlla le preferenze locali, quindi controlla se il router ha originato il percorso e così via . In questo modo, se tutti i percorsi ricevuti hanno lo stesso peso, il router seleziona invece un percorso in base alle preferenze locali.

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.

Un altro incidente in questo senso si è verificato nel giugno 2019, quando una piccola azienda in Pennsylvania è diventata il percorso preferito per i percorsi attraverso la rete di Verizon, rendendo gran parte di Internet non disponibile per gli utenti 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.

L'hijack BGP può essere utilizzato per diversi tipi di attacchi:

  • Phishing e social engineering attraverso il reindirizzamento degli utenti a siti Web falsi
  • Denial-of-service (DoS) tramite blackhole o reindirizzamento del traffico
  • Attacchi on-path per modificare i dati scambiati e sovvertire i sistemi di filtraggio basati sulla reputazione
  • Attacchi di impersonificazione per intercettare le comunicazioni

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.

Come proteggere il BGP

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 seguono le best practice di sicurezza BGP, possono diffondere attacchi di hijacking su larga scala. Attualmente, oltre il 50% dei principali provider Internet supporta RPKI in una certa misura, ma per proteggere completamente BGP è necessaria una maggioranza più ampia. 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 hijacking BGP facendo sapere ai clienti quando parti non autorizzate pubblicizzano i loro prefissi.