Lunedì, Facebook è stato completamente messo fuori linea, portando Instagram e WhatsApp (per non parlare di alcuni altri siti web) giù con lui. Molti si sono affrettati a dire che l’incidente aveva a che fare con BGP, o Border Gateway Protocol, citando fonti interne a Facebook, analisi del traffico, e l’istinto che “è sempre DNS o BGP”. Facebook sta risalendo la china, ma tutto questo fa sorgere la domanda:

Cos’è BGP?

Ad un livello molto elementare, BGP è uno dei sistemi che Internet usa per far arrivare il traffico dove deve andare il più velocemente possibile. Poiché ci sono tonnellate di diversi fornitori di servizi internet, router dorsali e server responsabili della trasmissione dei tuoi dati a, diciamo, Facebook, ci sono un sacco di percorsi diversi che i tuoi pacchetti potrebbero finire per prendere. Il lavoro di BGP è quello di mostrare loro la strada e assicurarsi che sia il percorso migliore.

Ho sentito descrivere BGP come un sistema di 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. Immaginate BGP come un gruppo di persone che fanno e aggiornano le mappe che vi mostrano come raggiungere YouTube o Facebook.

Quando si tratta di BGP, internet è suddivisa in grandi reti, note come sistemi autonomi. Puoi immaginarli come nazioni insulari – sono reti che sono 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 colleghino ogni isola a tutte le altre, così BGP è quello che si occupa di dirti quali isole (o sistemi autonomi) devi attraversare per arrivare a destinazione.

Dato che internet è in continuo cambiamento, le mappe devono essere aggiornate – non vuoi che il tuo ISP ti porti su 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 loro vicini di isola per vedere e copiare gli aggiornamenti che hanno fatto alle loro mappe.

Usando le mappe come struttura, è facile immaginare come le cose possano andare male. Quando i consumatori hanno avuto accesso al GPS per la prima volta, c’erano sempre battute sul fatto che ti avrebbe fatto guidare giù da una scogliera o in mezzo al deserto. La stessa cosa può accadere con BGP – se qualcuno commette un errore, può finire per portare il traffico da qualche parte dove non dovrebbe andare, il che causerà problemi. Se non viene preso, quell’errore finirà sulla mappa di tutti. Ci sono altri modi in cui questo può andare male, ma ci arriveremo tra poco.

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

Certo! Questo è massicciamente semplificato, ma immaginate di volervi connettere ad un immaginario sito di notizie tecniche chiamato Convergence. Convergence usa l’ISP NetSend, e voi usate DecadeConnect. In questo esempio, DecadeConnect e NetSend non possono parlare direttamente tra loro, ma il vostro ISP può parlare con Border Communications, che può parlare con Form, che può parlare con NetSend. Se questo è l’unico percorso, allora BGP farebbe in modo che tu e Convergence possiate comunicare attraverso di esso. Ma se in alternativa, sia DecadeConnect che NetSend fossero collegati a ThirdLevel, BGP probabilmente sceglierebbe di instradare il tuo traffico attraverso di esso, poiché è un salto più breve.

Ok, quindi BGP è come le mappe che dettagliano tutte le vie più veloci da te a un sito web?

Giusto! 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 sceglierebbe un percorso piuttosto che un altro. anche il costo può essere un fattore, con alcune reti che fanno pagare altre se vogliono includerle nei loro percorsi.

Inoltre, le mappe sono super complicate! L’ho scoperto proprio 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 addirittura tre nomi diversi su tre mappe. Se è così difficile da individuare per una “città” che ha tutte e cinque le strade, immaginatevi com’è cercare di collegare insieme l’intera Internet. 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 semplicemente occuparsene.

Ricordo qualcosa di simile al mio corso di algoritmi e strutture dati – cercando di costruire algoritmi per trovare il percorso più breve.

Ti prendo in parola. Ho abbandonato appena ho sentito parlare di grafici.

Ma Facebook non l’ha fatto! Infatti, ha costruito il proprio sistema BGP, che gli permette di fare “aggiornamenti incrementali veloci”, secondo un documento presentato all’inizio di quest’anno. Detto questo, il sistema che l’azienda descrive è destinato alla comunicazione all’interno di data center – a questo punto, è difficile dire cosa ha 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. Giornalista di cybersicurezza Bryan Krebs sostiene che l’interruzione è stata causata da un “aggiornamento BGP di routine”.

L’aggiornamento ingegneristico di Facebook, ha detto che il problema è stato causato da “cambiamenti di configurazione sui router backbone che coordinano il traffico di rete tra i nostri data center”. Questo ha poi portato ad un “effetto a cascata sul modo in cui [Facebook’s] i data center comunicano, portando [its] i servizi a una battuta d’arresto”. Almeno al mio occhio, si legge come il problema era Facebook comunicando all’interno di se stesso, non al mondo esterno (anche se questo può ovviamente causare un’interruzione mondiale, dato quanto del proprio stack di rete Facebook controlla).

Cosa c’entrano i DNS con tutto questo?

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

Cloudflare ha anche un grande riepilogo tecnico di come gli errori BGP possono anche incasinare le richieste DNS – l’articolo riguarda specificamente l’incidente di Facebook di lunedì, quindi vale la pena leggerlo se state cercando una spiegazione di ciò che sembrava dalla prospettiva di un sistema autonomo.

Cosa può andare storto con BGP?

Molte cose. Secondo CloudflareDue incidenti degni di nota includono un ISP turco che ha accidentalmente detto all’intera internet di instradare il suo traffico verso il suo servizio nel 2004 e un ISP pakistano che ha accidentalmente bandito YouTube in tutto il mondo dopo aver provato a farlo solo per i suoi utenti. A causa della capacità di BGP di diffondersi da sistema autonomo a sistema autonomo (che, come promemoria, è una delle cose che lo rende così dannatamente utile), un gruppo che commette un errore può fare una cascata.

Un gruppo che viene posseduto può anche causare problemi – nel 2018, gli hacker sono stati in grado di dirottare le richieste ai DNS di Amazon e rubare migliaia di dollari in Ethereum compromettendo i server BGP di un ISP separato. Amazon non era quello violato, ma il traffico destinato ad esso è finito da qualche altra parte.

Oppure, si può incasinare tutto e cancellare l’intero servizio da internet con un cattivo aggiornamento BGP. BGP è amorevolmente chiamato il nastro adesivo di internet, ma nessun adesivo è perfetto.

Cos’è successo a Facebook?

Sembra che i server di Facebook, per qualche motivo, abbiano detto a tutti di toglierli dalle loro mappe. Facebook ha rilasciato un primo rapporto, ma è leggero nei dettagli – è possibile che Facebook abbia intenzione di rilasciare una spiegazione più approfondita più tardi, dicendo perché i cambiamenti sono stati fatti, ma questa potrebbe anche essere l’ultima volta che ne sentiamo parlare (almeno ufficialmente).

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

Raccomanderei La spiegazione di Cloudflare se volete dettagli tecnici minuziosi.

Se BGP era il problema, come fa Facebook a risolverlo?

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 questi record fossero raccolti da internet in generale. In altre parole, doveva assicurarsi che le sue mappe fossero giuste e che tutti potessero vederle.

Questo è più facile a dirsi che a farsi, però. Ci sono stati rapporti di dipendenti di Facebook che sono stati chiusi fuori dalle porte protette da badge e di impiegati che faticano a comunicare. In situazioni come queste, non solo devi capire chi ha le conoscenze per risolvere il problema e chi ha le autorizzazioni per risolverlo, ma come collegare queste persone. E quando l’intera azienda è in crisi, non è un compito facile. The Verge ha ricevuto rapporti di ingegneri che sono stati fisicamente inviati in un centro dati di Facebook in California per cercare di risolvere il problema.

Web3 potrebbe risolvere questo problema?

Smettila. Piangerò.

Ma per rispondere rapidamente alla domanda, probabilmente no – anche se Facebook saltasse sul treno decentralizzato, ci dovrebbe comunque essere qualche protocollo che dica 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 da questo tipo di problemi.

Di sicuro c’è stato un tempismo strano per quell’interruzione, date tutte le cattive notizie di Facebook, eh?

Giusto, quindi, ovviamente, il fatto che tutto questo sia accaduto mentre un informatore andava in TV e faceva uscire i panni sporchi di Facebook rende davvero facile trovare spiegazioni alternative. Ma è altrettanto possibile che questo sia un errore innocente che qualche persona (molto, molto sfortunata) dello staff IT di Facebook ha fatto.

Per quello che vale, questa è la spiegazione di Facebook. Dà la colpa a un “cambiamento di configurazione difettoso” che ha fatto, non a qualche hacking subdolo.

Aggiornamento 4 ottobre, 10:44PM ET: Aggiornato con informazioni dal post ufficiale di ingegneria di Facebook.



Source link