BGP spiegato: il protocollo che potrebbe essere dietro la scomparsa di Facebook

Lunedì, Facebook è stato completamente messo offline, portando con sé Instagram e WhatsApp (per non parlare di alcuni altri siti web). Molti si sono affrettati a dire che l’incidente aveva a che fare con BGP, o Border Gateway Protocol, citando fonti dall’interno di Facebook, analisi del traffico, e l’istinto che “è sempre DNS o BGP”. Facebook sta tornando su, ma tutto questo pone la domanda:

Cos’è BGP?

A un livello molto elementare, BGP è uno dei sistemi che Internet utilizza per porta il tuo traffico dove deve andare il più rapidamente possibile. Poiché ci sono un sacco di diversi provider di servizi Internet, router dorsali e server responsabili per i tuoi dati che arrivano a, diciamo, Facebook, ci sono un sacco di percorsi diversi che i tuoi pacchetti potrebbero prendere. Il compito di BGP è mostrare loro la strada e assicurarsi che sia la strada migliore.

Ho sentito BGP descritto come a sistema degli uffici postali, un controllore del traffico aereo, e altro ancora, ma penso che la mia spiegazione preferita sia stata quella che l’ha paragonata a una mappa. Immagina BGP come un gruppo di persone che creano e aggiornano mappe che ti mostrano come accedere a YouTube o Facebook.

Quando si tratta di BGP, Internet è suddiviso in grandi reti, note come sistemi autonomi. Puoi immaginarli come nazioni insulari: sono reti controllate da una singola entità, che potrebbe essere un ISP, come Comcast, una società, come Facebook o qualche altra grande organizzazione come un governo o una grande università. Sarebbe estremamente difficile costruire ponti che collegano ogni isola a tutte le altre, quindi BGP è responsabile di dirti quali isole (o sistemi autonomi) devi attraversare per arrivare a destinazione.

Poiché Internet è in continua evoluzione, le mappe devono essere aggiornate: non vuoi che il tuo ISP ti guidi lungo una vecchia strada che non va più a Google. Poiché sarebbe un’impresa enorme mappare l’intera Internet in ogni momento, i sistemi autonomi condividono le loro mappe. Di tanto in tanto parleranno con i vicini dell’isola per vedere e copiare eventuali aggiornamenti apportati alle loro mappe.

Usando le mappe come framework, è facile immaginare come le cose possano andare storte. Ai tempi in cui i consumatori hanno avuto accesso per la prima volta al GPS, c’erano sempre battute sul fatto che tu guidassi da una scogliera o nel mezzo del deserto. La stessa cosa può accadere con BGP: se qualcuno commette un errore, può finire per condurre il traffico da qualche parte in cui non dovrebbe andare, il che causerà problemi. Se non viene catturato, quell’errore finirà sulla mappa di tutti. Ci sono altri modi in cui questo può andare storto, ma ci arriveremo tra un po’.

Sì, sì, mappe. Fammi un esempio.

Certo! Questo è enormemente semplificato, ma immagina di voler connetterti a un immaginario sito Web di notizie tecnologiche chiamato Convergence. Convergence utilizza l’ISP NetSend e tu usi DecadeConnect. In questo esempio, DecadeConnect e NetSend non possono parlare direttamente tra loro, ma il tuo ISP può parlare con Border Communications, che può parlare con Form, che può parlare con NetSend. Se questo è l’unico percorso, allora BGP si assicurerà che tu e Convergence possiate comunicare attraverso di esso. Ma se in alternativa, sia DecadeConnect che NetSend fossero connessi a ThirdLevel, BGP probabilmente sceglierebbe di instradare il tuo traffico attraverso di esso, poiché è un salto più breve.

Ok, quindi BGP è come mappe che descrivono in dettaglio tutti i modi più veloci da te a un sito web?

Destra! Sfortunatamente, può diventare ancora più complicato perché il più breve non è sempre uguale al migliore. Ci sono molte ragioni per cui un algoritmo di routing dovrebbe scegliere un percorso piuttosto che un altro: anche il costo può essere un fattore, con alcune reti che addebitano ad altre se desiderano includerle nei loro percorsi.

Inoltre, le mappe sono super complicate! L’ho scoperto solo di recente cercando di pianificare un viaggio dove le strade esistevano su una mappa e non su un’altra o erano diverse tra le mappe. Una strada aveva persino tre nomi diversi su tre mappe. Se è così difficile da definire per una “città” che ha tutte e cinque le strade, immagina com’è cercando di connettere l’intera Internet insieme. Le strade reali non cambiano così spesso, ma i siti web possono spostarsi da un paese all’altro o cambiare, aggiungere o sottrarre fornitori di servizi, e Internet deve solo occuparsene.

Ricordo qualcosa del genere dalla mia classe di algoritmi e strutture dati: provare a costruire algoritmi per trovare il percorso più breve.

Ti crederò sulla parola. Mi sono ritirato non appena ho sentito parlare di grafici.

Ma Facebook no! In effetti, ha costruito il proprio sistema BGP, che gli consente di eseguire “aggiornamenti incrementali veloci”, secondo un documento presentato all’inizio di quest’anno. Detto questo, il sistema che l’azienda descrive è pensato per la comunicazione entro data center: a questo punto, è difficile dire cosa abbia causato i problemi di Facebook lunedì, e ci vorrebbe qualcuno più intelligente di me per dire se le comunicazioni del data center di Facebook potrebbero causare questo tipo di problema. Reporter sulla sicurezza informatica Bryan Krebs afferma che l’interruzione è stata causata da un “aggiornamento BGP di routine”.

Aggiornamento tecnico di InFacebook, ha affermato che il problema è stato causato da “modifiche alla configurazione sui router backbone che coordinano il traffico di rete tra i nostri data center”. Ciò ha poi portato a un “effetto a cascata sulla strada” [Facebook’s] i data center comunicano, portando [its] servizi a una battuta d’arresto”. Almeno ai miei occhi, si legge come se il problema fosse Facebook che comunicava all’interno di se stesso, non al mondo esterno (anche se ciò può ovviamente causare un’interruzione a livello mondiale, dato quanto del proprio stack di rete? controlli di Facebook).

Cosa c’entra il DNS con tutto questo?

Prendere in prestito una spiegazione da Cloudflare: DNS ti dice dove stai andando e BGP ti dice come arrivarci. Il DNS è il modo in cui i computer sanno a quale indirizzo IP si trova un sito Web o un’altra risorsa, ma questa conoscenza in sé non è utile: se chiedi al tuo amico dov’è la sua casa, probabilmente avrai comunque bisogno del GPS per arrivarci .

Cloudflare ha anche un ottimo resoconto tecnico di come gli errori BGP possono anche rovinare le richieste DNS: l’articolo riguarda specificamente l’incidente di Facebook di lunedì, quindi vale la pena leggerlo se stai cercando una spiegazione di come appariva dal punto di vista di un sistema autonomo.

Cosa può andare storto con BGP?

Molte cose. Secondo Cloudflare, due incidenti degni di nota includono un ISP turco che dice accidentalmente all’intera Internet di indirizzare il suo traffico al suo servizio nel 2004 e un ISP pakistano che ha accidentalmente vietato YouTube in tutto il mondo dopo aver tentato di farlo solo per i suoi utenti. A causa della capacità di BGP di diffondersi da un sistema autonomo a un sistema autonomo (che, come promemoria, è una delle cose che lo rende così dannatamente utile), un gruppo che commette un errore può precipitare.

Anche la proprietà di un gruppo può causare problemi: nel 2018, gli hacker sono stati in grado di dirottare le richieste al DNS di Amazon e rubare migliaia di dollari in Ethereum compromettendo i server BGP di un ISP separato. Amazon non è stato violato, ma il traffico destinato a questo è finito da qualche altra parte.

Oppure puoi rovinare tutto ed eliminare l’intero servizio da Internet con un aggiornamento BGP non valido. BGP è amorevolmente chiamato il nastro adesivo di Internet, ma nessun adesivo è perfetto.

Allora cosa è successo a Facebook?

Sembra che i server di Facebook, per qualche ragione, abbiano detto a tutti di toglierli dalle mappe. Facebook ha emesso un rapporto iniziale, ma è chiaro sui dettagli: è possibile che Facebook abbia intenzione di rilasciare una spiegazione più approfondita in seguito, dicendo perché sono state apportate le modifiche, ma questa potrebbe anche essere l’ultima che ne sentiamo parlare (almeno ufficialmente) .

Però, CTO di Cloudflare riporta che il servizio ha visto una tonnellata di aggiornamenti BGP da Facebook (la maggior parte dei quali erano ritiri di rotte o cancellazioni di linee sulla mappa che portavano a Facebook) proprio prima che diventasse buio. Uno dei responsabili tecnici di Fastly lo ha twittato Facebook ha smesso di fornire percorsi a Fastly quando è andato offline e KrebsOnSecurity sostiene l’idea che è stato un aggiornamento al BGP di Facebook che ha messo fuori uso i suoi servizi.

lo consiglierei La spiegazione di Cloudflare se vuoi dettagli tecnici precisi.

Se il problema era BGP, in che modo Facebook lo risolve?

Dato che l’interruzione è andata avanti per ore, la risposta sembra essere “non facilmente”. Facebook aveva bisogno di assicurarsi che stesse pubblicizzando i record corretti e che quei record fossero raccolti da Internet in generale. In altre parole, doveva assicurarsi che le sue mappe fossero corrette e che tutti potessero vederle.

È più facile a dirsi che a farsi, però. Ci sono state segnalazioni di dipendenti di Facebook essere bloccato fuori dalle porte protette da badge e dei dipendenti che faticano a comunicare. In situazioni come queste, non devi solo capire chi ha le conoscenze per risolvere il problema e chi ha i permessi per risolvere il problema, ma come connettere quelle persone. E quando tutta la tua azienda è morta in acqua, non è un compito facile… Il Verge ricevuto segnalazioni di ingegneri inviati fisicamente a un data center di Facebook in California per cercare di risolvere il problema.

Web3 risolverebbe questo problema?

Smettila. Piangerò.

Ma per rispondere rapidamente alla domanda, probabilmente no, anche se Facebook saltasse sul treno decentralizzato, dovrebbe comunque esserci un protocollo che ti dice dove trovare le sue risorse. Abbiamo visto che è possibile configurare male o incasinare i contratti blockchain prima, quindi sarei un po’ sospettoso di chiunque dicesse che un contratto e un Internet basato su blockchain sarebbero immuni a questo tipo di problema.

Di sicuro c’era un pessimo tempismo in quell’interruzione, date tutte le cattive notizie di Facebook, eh?

Giusto, quindi ovviamente, il fatto che tutto questo sia successo mentre un informatore andava in TV e mandava in onda i panni sporchi di Facebook rende davvero facile trovare spiegazioni alternative. Ma è altrettanto possibile che questo sia un errore innocente commesso da una persona (molto, molto sfortunata) dello staff IT di Facebook.

Per quel che vale, questa è la spiegazione di Facebook. Dà la colpa a un “cambiamento di configurazione difettoso” che ha fatto, non a hack subdoli.

Aggiornamento 4 ottobre, 22:44 ET: Aggiornato con le informazioni dal post tecnico ufficiale di Facebook.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *