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 interne a 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 portare il tuo traffico dove deve andare il più rapidamente possibile. Poiché ci sono un sacco di diversi fornitori di servizi Internet, router dorsali e server responsabili per i tuoi dati che arrivano, diciamo, a 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 descrivere BGP come un sistema di uffici postali, un controllore del traffico aereo e altro, ma penso che la mia spiegazione preferita fosse quella che lo paragonava a una mappa. Immagina BGP come un gruppo di persone che creano e aggiornano mappe che ti mostrano come arrivare a YouTube o Facebook.
BGP è come una mappa che dice al tuo computer di quali ponti deve attraversare per arrivare a 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 colleghino 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.
Svolta a sinistra nel fiume
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 questa è l'unica strada, BGP si assicurerà che tu e Convergence possiate comunicare attraverso di essa. 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 è ti piacciono le mappe che descrivono in dettaglio tutti i percorsi 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 vogliono includerli nei loro percorsi.
Mappare strade immutabili è difficile; immagina di mappare Internet
Inoltre, le mappe sono super complicate! L'ho scoperto solo di recente cercando di pianificare un viaggio in cui 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'è provare a 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 di simile dal mio corso sugli algoritmi e sulle strutture dati: provare a costruire algoritmi per trovare il percorso più breve.
Ti credo sulla parola . Ho abbandonato 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 all'interno dei 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. Il reporter di sicurezza informatica Bryan Krebs afferma che l'interruzione è stata causata da un “aggiornamento BGP di routine”.
L'aggiornamento tecnico di InFacebook affermava che il problema era causato da “modifiche alla configurazione sui router dorsali che coordinano il traffico di rete tra i nostri data center”. Ciò ha poi portato a un “effetto a cascata sul modo in cui i data center [di Facebook] comunicano, portando i [suoi] servizi a una battuta d'arresto”. Almeno ai miei occhi, si legge come se il problema fosse che Facebook comunicava all'interno di se stesso, non al mondo esterno (anche se ciò può ovviamente causare un'interruzione a livello mondiale, data la quantità di controlli Facebook dello stack della propria rete).
Cosa fa DNS hanno a che fare con tutto questo?
Per 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 su 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 proprio 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ò a cascata.
BGP è talvolta chiamato condotto nastro di Internet
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 che fine ha fatto Facebook?
Sembra che i server di Facebook, per qualche ragione, abbiano detto a tutti di toglierli dalle mappe. Facebook ha pubblicato 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) .
Tuttavia, il CTO di Cloudflare riferisce che il servizio ha visto un sacco di aggiornamenti BGP da Facebook (la maggior parte dei quali erano ritiri di rotte o cancellazioni di linee sulla mappa che portavano a Facebook) poco prima che diventasse buio. Uno dei responsabili tecnici di Fastly ha twittato che Facebook ha smesso di fornire percorsi a Fastly quando è andato offline e KrebsOnSecurity sostiene l'idea che sia stato un aggiornamento al BGP di Facebook che ha messo fuori uso i suoi servizi.
Consiglierei la spiegazione di Cloudflare se desideri dettagli tecnici precisi.
Se il problema era BGP, come risolve Facebook?
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 che sono stati bloccati dalle porte protette da badge e di dipendenti che hanno difficoltà 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 l'intera azienda è morta in acqua, non è un compito facile: The Verge ha ricevuto segnalazioni di ingegneri inviati fisicamente a un data center di Facebook in California per cercare di risolvere il problema.
Relativo
Bloccato e totalmente inattivo: Facebook sta cercando di risolvere un'interruzione massiccia
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 erroneamente o incasinare i contratti blockchain prima, quindi sarei un po' sospettoso di chiunque dicesse che un contratto e Internet basato su blockchain sarebbero immuni a questo tipo di problema.
< p id="7sIC21">Sicuramente era un tempismo sospetto in quell'interruzione date tutte le brutte notizie di Facebook, eh?
Giusto, quindi ovviamente, il fatto che tutto questo è successo mentre un informatore stava andando in TV e mandare 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 errato” che ha apportato, non a hack subdoli.
Aggiornamento 4 ottobre, 22:44 ET: Aggiornato con informazioni dal post tecnico ufficiale di Facebook.