Hva er BGP, og hvordan kan det ha bidratt til å sparke Facebook av internett?

0
105

På mandag ble Facebook fullstendig slått av og tok Instagram og WhatsApp (for ikke å snakke om noen andre nettsteder) ned med det. Mange har vært raske med å si at hendelsen hadde å gjøre med BGP, eller Border Gateway Protocol, med henvisning til kilder fra Facebook, trafikkanalyse og tarminstinkt om at “det alltid er DNS eller BGP.” Facebook er på vei tilbake, men alt dette stiller spørsmålet:

Hva er BGP?

På et helt grunnleggende nivå, BGP er et av systemene som internett bruker for å få trafikken din dit den trenger å gå så raskt som mulig. Fordi det er tonnevis med forskjellige internettleverandører, ryggradstjenere og servere som er ansvarlige for at dataene dine kommer til, for eksempel Facebook, er det massevis av forskjellige ruter pakkene dine kan ende opp med å ta. BGPs jobb er å vise dem veien og sørge for at det er den beste ruten.

Jeg har hørt BGP beskrevet som et system med postkontorer, en flygeleder og mer, men jeg tror min favorittforklaring var en som liknet det med et kart. Tenk deg BGP som en haug med mennesker som lager og oppdaterer kart som viser deg hvordan du kommer til YouTube eller Facebook.

BGP er som et kart som forteller datamaskinen din hvis broer den må krysse for å komme til Facebook

Når det gjelder BGP, er internett delt opp i store nettverk, kjent som autonome systemer. Du kan liksom forestille deg dem som øynasjoner – de er nettverk som kontrolleres av en enkelt enhet, som kan være en ISP, som Comcast, et selskap, som Facebook eller en annen stor organisasjon som en regjering eller et større universitet. Det ville være ekstremt vanskelig å bygge broer som forbinder hver øy med alle de andre, så BGP er det som er ansvarlig for å fortelle deg hvilke øyer (eller autonome systemer) du må gå gjennom for å komme til destinasjonen.

Siden internett alltid er i endring, må kartene oppdateres – du vil ikke at Internett -leverandøren skal lede deg ned på en gammel vei som ikke lenger går til Google. Fordi det ville være en massiv oppgave å kartlegge hele internett hele tiden, deler autonome systemer sine kart. Noen ganger snakker de med naboene på øya for å se og kopiere eventuelle oppdateringer de har gjort til kartene sine.

Sving til venstre inn i elven

Ved å bruke kart som et rammeverk, er det lett å forestille seg hvordan ting kan gå galt. Tilbake da forbrukerne først fikk tilgang til GPS, var det alltid vitser om at du kjørte ut av en klippe eller inn i ørkenen. Det samme kan skje med BGP – hvis noen gjør en feil, kan det ende opp med å lede trafikk et sted det ikke skal gå, noe som vil forårsake problemer. Hvis den ikke blir fanget, vil den feilen havne på alles kart. Det er andre måter dette kan gå galt på, men vi kommer til dem om litt.

Ja, ja, kart. Gi meg et eksempel.

Selvfølgelig! Dette er massivt forenklet, men tenk at du vil koble deg til et imaginært teknisk nyhetsnettsted som heter Convergence. Konvergens bruker ISP NetSend, og du bruker DecadeConnect. I dette eksemplet kan ikke DecadeConnect og NetSend snakke direkte til hverandre, men Internett -leverandøren din kan snakke med grensekommunikasjon, som kan snakke med skjema, som kan snakke med NetSend. Hvis det er den eneste ruten, vil BGP sørge for at du og konvergens kan kommunisere gjennom den. Men hvis alternativt både DecadeConnect og NetSend var koblet til ThirdLevel, ville BGP sannsynligvis velge å dirigere trafikken din gjennom den, ettersom det er et kortere hopp.

Ok, så BGP er liker kart som beskriver alle de raskeste måtene fra deg til et nettsted?

Ikke sant! Dessverre kan det bli enda mer komplisert fordi den korteste ikke alltid er den beste. Det er mange grunner til at en rutingalgoritme ville velge en bane fremfor en annen – kostnad kan også være en faktor, og noen nettverk lader andre hvis de vil inkludere dem i rutene sine.

Å kartlegge uendrede veier er vanskelig; tenk deg å kartlegge internett

Kart er også veldig vanskelig! Jeg oppdaget dette nylig for å prøve å planlegge en tur der veier eksisterte på ett kart og ikke et annet eller var forskjellige mellom kartene. Den ene veien hadde til og med tre forskjellige navn på tre kart. Hvis det er så vanskelig å finne en “by” som har alle fem veier, kan du tenke deg hvordan det er å prøve å koble hele internett sammen. Ekte veier endres ikke så ofte, men nettsteder kan flytte fra et land til et annet eller endre, legge til eller trekke fra tjenesteleverandører, og internett må bare håndtere det.

Jeg husker noe slikt fra min algoritme- og datastrukturklasse – prøver å bygge alger for å finne den korteste ruten.

Jeg tar ordet ditt om det . Jeg droppet så snart jeg hørte om grafer.

Men Facebook gjorde det ikke! Faktisk har det bygget sitt eget BGP -system, som lar det gjøre “raske trinnvise oppdateringer”, ifølge et papir som ble presentert tidligere i år. Når det er sagt, er systemet selskapet beskriver der ment for kommunikasjon i datasentre – på dette tidspunktet er det vanskelig å si hva som forårsaket Facebooks problemer på mandag, og det ville ta noen smartere enn meg å si om Facebooks datasenterkommunikasjon kan forårsake dette slags problem. Cybersecurity -reporter Bryan Krebs hevder at strømbruddet var forårsaket av en “rutinemessig BGP -oppdatering.”

I InFacebooks ingeniøroppdatering sa det at problemet var forårsaket av “konfigurasjonsendringer på ryggradsruterne som koordinerer nettverkstrafikk mellom datasentrene våre.” Det førte deretter til en “kaskadeffekt på måten [Facebooks] datasentre kommuniserer, og stoppet [sine] tjenester.” I hvert fall for mitt øye lyder det som om problemet var at Facebook kommuniserte i seg selv, ikke til omverdenen (selv om det åpenbart kan forårsake et verdensomspennende brudd, gitt hvor mye av sin egen nettverksstabel Facebook kontrollerer).

Hva gjør DNS har å gjøre med alt dette?

For å låne en forklaring fra Cloudflare: DNS forteller deg hvor du skal, og BGP forteller deg hvordan du kommer dit. DNS er hvordan datamaskiner vet hvilken IP -adresse et nettsted eller en annen ressurs kan finnes på, men den kunnskapen i seg selv er ikke nyttig – hvis du spør vennen din hvor huset deres er, vil du sannsynligvis trenge GPS for å komme deg dit .

Cloudflare har også en flott teknisk oversikt over hvordan BGP -feil også kan ødelegge DNS -forespørsler – artikkelen handler spesielt om mandagens Facebook -hendelse, så det er verdt å lese hvis du leter etter en forklaring på hvordan det så ut fra et autonomt systems perspektiv .

Hva kan gå galt med BGP?

Mange ting. I følge Cloudflare inkluderer to bemerkelsesverdige hendelser at en tyrkisk ISP ved et uhell fortalte hele internett om å dirigere trafikken til tjenesten i 2004, og en pakistansk ISP utilsiktet forbød YouTube over hele verden etter å ha prøvd å gjøre det bare for brukerne. På grunn av BGPs evne til å spre seg fra det autonome systemet til det autonome systemet (som en påminnelse er en av tingene som gjør det så nyttig), kan en gruppe som gjør en feil kaskade.

BGP kalles noen ganger kanalen tape of the internet

En gruppe som kan bli eid kan også forårsake problemer – i 2018 kunne hackere kapre forespørsler til Amazons DNS og stjele tusenvis av dollar i Ethereum ved å gå på kompromiss med en egen ISPs BGP -servere. Amazon var ikke den som ble hacket, men trafikken som var ment for det endte et annet sted.

Eller du kan rote det og slette hele tjenesten din fra internett med en dårlig BGP -oppdatering. BGP kalles kjærlig for gaffatape på internett, men ingen lim er perfekte.

Så hva skjedde med Facebook?

Det virker som om Facebooks servere av en eller annen grunn fortalte alle å ta dem av kartene sine. Facebook har gitt ut en første rapport, men det er lett på detaljer-det er mulig Facebook planlegger å gi ut en mer grundig forklaring senere, og sier hvorfor endringene ble gjort, men dette kan også være det siste vi hører om det (i det minste offisielt) .

Imidlertid rapporterer Cloudflares CTO at tjenesten så massevis av BGP -oppdateringer fra Facebook (hvorav de fleste var ruteuttak eller slette linjer på kartet som førte til Facebook) rett før det ble mørkt. En av Fastlys tekniske ledere twitret at Facebook sluttet å tilby ruter til Fastly da den gikk offline, og KrebsOnSecurity støtter ideen om at det var en oppdatering til Facebooks BGP som slo ut tjenestene.

Jeg vil anbefale Cloudflares forklaring hvis du vil ha tekniske detaljer.

Hvis BGP var problemet, hvordan løser Facebook det?

Gitt at strømbruddet pågikk i flere timer, synes svaret å være “ikke lett.” Facebook trengte å sørge for at den annonserte de riktige postene, og at disse postene ble hentet av internett generelt. Med andre ord, den måtte sørge for at kartene var riktige og at alle kunne se dem.

Det er lettere sagt enn gjort, skjønt. Det ble rapportert om Facebook-ansatte som var låst ute fra merkebeskyttede dører og om ansatte som sliter med å kommunisere. I slike situasjoner må du ikke bare finne ut hvem som har kunnskapen til å løse problemet, og hvem som har tillatelse til å løse problemet, men hvordan du kobler disse menneskene. Og når hele firmaet ditt er dødt i vannet, er det ingen lett oppgave- The Verge mottok rapporter om at ingeniører fysisk ble sendt til et Facebook-datasenter i California for å prøve å fikse problemet.

Relatert

Låst og helt nede: Facebook prøver å fikse massiv avbrudd

Ville Web3 løse dette problemet?

Stopp det. Jeg vil gråte.

Men for raskt å svare på spørsmålet, sannsynligvis ikke – selv om Facebook hoppet på det desentraliserte toget, må det fortsatt være en protokoll som forteller deg hvor du skal finne ressursene. Vi har sett at det er mulig å feilkonfigurere eller ødelegge blockchain-kontrakter før, så jeg ville være litt mistenksom overfor alle som sa at en kontrakt og blockchain-basert internett ville være immun mot denne typen problemer.

< p id = "7sIC21"> Visst var det fisketiden på det strømbruddet gitt alle de dårlige Facebook -nyhetene, ikke sant?

Riktig, så åpenbart, det faktum at alt dette skjedde mens en varsler gikk på TV og luftet ut Facebooks skittentøy, gjør det veldig enkelt å komme med alternative forklaringer. Men det er like mulig at dette er en uskyldig feil som noen (veldig, veldig uheldig) person på Facebooks IT -ansatte gjorde.

For hva det er verdt, er det Facebooks forklaring. Det legger skylden på en “feil konfigurasjonsendring” som den gjorde, ikke noen avskyelige hack.

Oppdater 4. oktober, 22:44 ET: Oppdatert med informasjon fra Facebooks offisielle ingeniørinnlegg.