På måndagen slogs Facebook helt offline och tog ner Instagram och WhatsApp (för att inte tala om några andra webbplatser). Många har varit snabba med att säga att händelsen hade att göra med BGP, eller Border Gateway Protocol, med hänvisning till källor från Facebook, trafikanalys och tarminstinkt att “det är alltid DNS eller BGP.” Facebook är på väg tillbaka, men allt detta ställer frågan:
Vad är BGP?
På en mycket grundläggande nivå, BGP är ett av de system som internet använder för att få din trafik dit den behöver gå så snabbt som möjligt. Eftersom det finns massor av olika internetleverantörer, backbone -routrar och servrar som ansvarar för att din data gör det till, säg Facebook, finns det massor av olika vägar dina paket kan sluta ta. BGP: s uppgift är att visa dem vägen och se till att det är den bästa vägen.
Jag har hört BGP beskrivas som ett system med postkontor, en flygledare och mer, men jag tror att min favoritförklaring var en som liknade det med en karta. Föreställ dig BGP som ett gäng människor som gör och uppdaterar kartor som visar hur du kommer till YouTube eller Facebook.
BGP är som en karta som berättar för din dator vars broar den måste korsa för att komma till Facebook
När det gäller BGP delas internet upp i stora nätverk, kända som autonoma system. Du kan liksom föreställa dig dem som önationer – de är nätverk som styrs av en enda enhet, som kan vara en ISP, som Comcast, ett företag, som Facebook eller någon annan stor organisation som en regering eller ett stort universitet. Det skulle vara extremt svårt att bygga broar som förbinder varje ö med alla andra, så BGP är det som ansvarar för att berätta vilka öar (eller autonoma system) du måste gå igenom för att komma till din destination.
Eftersom internet alltid förändras måste kartorna uppdateras – du vill inte att din ISP ska leda dig på en gammal väg som inte längre går till Google. Eftersom det skulle vara ett stort åtagande att kartlägga hela internet hela tiden delar autonoma system sina kartor. De kommer ibland att prata med sina ögrannar för att se och kopiera alla uppdateringar de har gjort till sina kartor.
Sväng vänster in på floden
Med kartor som ramverk är det lätt att föreställa sig hur saker kan gå fel. När konsumenterna först fick tillgång till GPS fanns det alltid skämt om att du körde från en klippa eller in i mitten av öknen. Samma sak kan hända med BGP – om någon gör ett misstag kan det leda till trafik någonstans den inte ska gå, vilket kommer att orsaka problem. Om det inte fångas kommer det misstaget att hamna på allas karta. Det finns andra sätt det kan gå fel, men vi kommer till dem om lite.
Ja, ja, kartor. Ge mig ett exempel.
Självklart! Detta är massivt förenklat, men tänk dig att du vill ansluta till en imaginär teknisk nyhetswebbplats som heter Convergence. Konvergens använder ISP NetSend, och du använder DecadeConnect. I det här exemplet kan DecadeConnect och NetSend inte prata direkt med varandra, men din ISP kan prata med gränskommunikation, som kan prata med Form, som kan prata med NetSend. Om det är den enda vägen, så skulle BGP se till att du och konvergensen kan kommunicera genom den. Men om alternativt både DecadeConnect och NetSend var anslutna till ThirdLevel, skulle BGP sannolikt välja att dirigera din trafik genom den, eftersom det är en kortare hop.
Okej, så BGP är gillar kartor som beskriver alla de snabbaste sätten från dig till en webbplats?
Höger! Tyvärr kan det bli ännu mer komplicerat eftersom det kortaste inte alltid är det bästa. Det finns många skäl till varför en routingsalgoritm skulle välja en väg framför en annan – kostnad kan också vara en faktor, medan vissa nätverk tar ut andra om de vill inkludera dem på sina rutter.
Att kartlägga oförändrade vägar är svårt; tänk dig att kartlägga internet
Dessutom är kartor super knepiga! Jag upptäckte detta nyligen när jag försökte planera en resa där vägar fanns på en karta och inte en annan eller var olika mellan kartorna. En väg hade till och med tre olika namn på tre kartor. Om det är så svårt att hitta en “stad” som har alla fem vägar, tänk dig hur det är att försöka ansluta hela internet tillsammans. Verkliga vägar ändras inte så ofta, men webbplatser kan flytta från ett land till ett annat eller ändra, lägga till eller subtrahera tjänsteleverantörer, och internet måste bara hantera det.
Jag kommer ihåg något liknande från klassen algoritmer och datastrukturer – försöker bygga algos för att hitta den kortaste vägen.
Jag tar ditt ord om det . Jag hoppade av så fort jag hörde om grafer.
Men det gjorde inte Facebook! Faktum är att det har byggt sitt eget BGP -system, som låter det göra “snabba stegvisa uppdateringar”, enligt ett papper som presenterades tidigare i år. Som sagt, systemet som företaget beskriver där är avsett för kommunikation inom datacenter – för närvarande är det svårt att säga vad som orsakade Facebooks problem på måndag, och det skulle ta någon smartare än jag att säga om Facebooks datacenterkommunikation kan orsaka detta typ av fråga. Cybersäkerhetsreporter Bryan Krebs hävdar att avbrottet orsakades av en “rutinmässig BGP -uppdatering.”
Vad gör DNS har att göra med allt detta?
För att låna en förklaring från Cloudflare: DNS berättar vart du ska och BGP berättar hur du kommer dit. DNS är hur datorer vet vilken IP -adress en webbplats eller annan resurs kan hittas på, men den kunskapen i sig är inte till hjälp – om du frågar din vän var deras hus är, kommer du förmodligen fortfarande att behöva GPS för att ta dig dit .
Cloudflare har också en bra teknisk genomgång av hur BGP -fel också kan förstöra DNS -förfrågningar – artikeln handlar specifikt om måndagens Facebook -incident, så det är värt att läsa om du letar för en förklaring av hur det såg ut ur ett autonomt systems perspektiv.
Vad kan gå fel med BGP?
Många saker. Enligt Cloudflare inkluderar två anmärkningsvärda incidenter att en turkisk ISP av misstag sa till hela internet att leda sin trafik till sin tjänst 2004 och en pakistansk ISP av misstag förbjöd YouTube över hela världen efter att ha försökt göra det bara för sina användare. På grund av BGP: s förmåga att sprida sig från det autonoma systemet till det autonoma systemet (som påminnelse är en av de saker som gör det så jävla användbart) kan en grupp som gör ett misstag kaskad.
BGP kallas ibland kanalen band av internet
En grupp som ägs kan också orsaka problem – under 2018 kunde hackare kapa förfrågningar till Amazons DNS och stjäla tusentals dollar i Ethereum genom att kompromissa med en separat ISP: s BGP -servrar. Amazon var inte den som hackades, men trafiken som var avsedd för den hamnade någon annanstans.
Eller så kan du förstöra det och radera hela din tjänst från internet med en dålig BGP -uppdatering. BGP kallas kärleksfullt för tejp på internet, men inget lim är perfekt.
Så vad hände med Facebook?
Det verkar som om Facebooks servrar av någon anledning sa till alla att ta bort dem från sina kartor. Vi kommer sannolikt att behöva vänta på en rapport från Facebook om vi vill veta exakt vad som hände med dess BGP -konfiguration och varför den ändringen gjordes. Cloudflares CTO rapporterar dock att tjänsten såg massor av BGP -uppdateringar från Facebook (de flesta var ruttuttag eller radering av linjer på kartan som leder till Facebook) precis innan det blev mörkt. En av Fastlys tekniska ledare twittrade att Facebook slutade tillhandahålla rutter till Fastly när den gick offline, och KrebsOnSecurity stöder tanken att det var någon uppdatering av Facebooks BGP som slog ut sina tjänster.
Jag skulle rekommendera Cloudflares förklaring om du vill ha tekniska detaljer.
Om BGP var problemet, hur löser Facebook det?
Med tanke på att avbrottet pågick i timmar verkar svaret vara “inte lätt.” Facebook behövde se till att det annonserade rätt poster och att dessa poster plockades upp av internet i stort. Med andra ord måste den se till att kartorna stämmer och att alla kan se dem.
Det är dock lättare sagt än gjort. Det rapporterades om Facebook-anställda som var låsta från märkesskyddade dörrar och om anställda som kämpade för att kommunicera. I sådana här situationer måste du inte bara ta reda på vem som har kunskap för att lösa problemet, och vem som har behörighet att lösa problemet, utan hur du kopplar ihop dessa människor. Och när hela ditt företag är dött i vattnet är det ingen lätt uppgift- The Verge fick rapporter om ingenjörer som fysiskt skickades till ett Facebook-datacenter i Kalifornien för att försöka åtgärda problemet.
Relaterat
Inlåst och helt nere: Facebook kämpar för att åtgärda stora avbrott
Skulle Web3 lösa detta problem?
Sluta. Jag kommer att gråta.
Men för att snabbt svara på frågan, förmodligen inte – även om Facebook hoppade på det decentraliserade tåget, måste det fortfarande finnas ett protokoll som säger var du kan hitta dess Resurser. Vi har sett att det är möjligt att felkonfigurera eller förstöra blockchain-kontrakt tidigare, så jag skulle vara lite misstänksam mot alla som sa att ett kontrakt och blockchain-baserat internet skulle vara immun mot denna typ av problem.
< p id = "7sIC21"> Visst var det fiskig timing på det avbrottet med tanke på alla dåliga Facebook -nyheter, va?
Rätt, så uppenbart att allt detta hände medan en visselblåsare gick på TV och luftade ut Facebooks smutsiga tvätt gör det väldigt enkelt att komma med alternativa förklaringar. Men det är lika möjligt att detta är ett oskyldigt misstag som någon (mycket, mycket olycklig) person på Facebooks IT -personal gjorde.