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

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.

Resource
Regain control with the Connectivity 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.

Sign Up
Globally accelerate your traffic with a single click

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.

What are BGP attributes?

Overall, BGP tries to find the most efficient path for network traffic. But as noted above, hop count is not the only factor BGP routers use for finding those paths. BGP assigns attributes to each path, and these attributes help routers select a path when there are multiple options. Many routers allow administrators to customize attributes for more granular control over how traffic flows on their networks. Some examples of BGP attributes are:

  • Weight: A Cisco-proprietary attribute, this tells a router which local paths are preferred.
  • Local preference: This tells a router which outbound path to select.
  • Originate: This tells a router to choose routes it added to BGP itself.
  • AS path length: Similar to the example diagram above, this attribute tells a router to prefer shorter paths.

There are several other BGP attributes as well. All these attributes are ordered by priority for BGP routers — so that, for example, a BGP router first checks to see which route has the highest weight, then checks local preference, then checks to see if the router originated the route, and so on. (So, if all routes received have an equal weight, the router selects a path based on local preference instead.)

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.

Another incident along these lines occurred in June 2019, when a small company in Pennsylvania became the preferred path for routes through Verizon's network, causing much of the Internet to become unavailable to users for several hours.

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.

BGP hijacking can be used for several kinds of attacks:

  • Phishing and social engineering through re-routing users to fake websites
  • Denial-of-service (DoS) through traffic blackholing or redirection
  • On-path attacks to modify exchanged data, and subvert reputation-based filtering systems
  • Impersonation attacks to eavesdrop on communications

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.

How to secure 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.

But RPKI’s existence alone is not enough. If large networks do not follow BGP security best practices, they can spread large-scale hijacking attacks. Currently, over 50% of the top Internet providers support RPKI to some extent, but a larger majority is needed to fully secure BGP. Network operators can protect their networks by implementing RPKI and using network alerting technology like Cloudflare Route Leak Detection. This feature helps prevent BGP hijacking attacks by letting customers know when unauthorized parties are advertising their prefixes.