Pad Facebooka, Instagrama i WhatsAppa stubokom je potresao Internet. Komentira Bojan Ždrnja, jedan od najiskusnijih stručnjaka za sigurnost i autora Mreže….


Jučer smo bili svjedoci jednog od najvećih ispada Facebooka, i pripadajućih im servisima poput WhatsApp, Instagram i sličnih, gdje je, prema prvim pokazateljima, za grešku bio kriv Facebook sam

Piše: Bojan Ždrnja (bojan.zdrnja@infigo.hr)

-- tekst se nastavlja nakon oglasa --

 

Osim ako ste jučer bili na udaljenom otoku, na kojem ionako nema Interneta, svjedočili ste „užasu“ koji se desio nakon što su Facebookovi servisi (Facebook, WhatsApp, Instagram i Messenger) postali nedostupni u cijelom svijetu nešto iza 18 sati.

Ispad je trajao nekakvih 6 sati – što je vjerojatno prvi put da su Facebookovi servisi bili nedostupni ovako dugo. Mnogi među nama vjerojatno su to prihvatili čak i s malim oduševljenjem – život je opet bio jednostavan, nije bilo poruka, Facebooka i sličnih stvari, vjerojatno je u konačnici čak i produktivnost (barem u USA, gdje se ispad dogodio tijekom dana) porasla.

No, sada, kada su se svi servisi oporavili, možemo probati izanalizirati što se zbilja dogodilo. Iako Facebook još nije dao nikakve tehničke detalje o samom incidentu, analizom onoga što je vidljivo na Internetu može se donekle zaključiti i zašto je došlo do problema.

Majka komunikacije na Internetu

BGP (Border Gateway Protocol) je osnovni protokol koji je zaslužan za uspješnu komunikaciju na Internetu. Ovaj protokol predstavlja mehanizam kojim se dijele informacije o tome kako se može usmjeravati pakete između različitih autonomnih sustava (AS) na Internetu. Svaka mreža koje je dostupna na Internetu ima svoj jedinstveni broj (ili više njih) autonomnog sustava (ASN – Autonomous System Number). Kod nas je tako npr. jedan od ASN brojeva A1 Hrvatska davatelja usluga AS12810, dok je jedan od ASN brojeva Hrvatskog Telekoma AS5391.

Autonomni sustav (AS) predstavlja dakle jedan sustav koji ima svoje interno usmjeravanje paketa. Da bi komunicirali s ostatkom Interneta, autonomni sustavi svima drugima na Internetu objavljuju svoje tzv. izvorne prefikse (popis IP adresa/mreža koje oni kontroliraju), kao i tranzitne prefikse, koji predstavljaju IP adrese S kojima AS koji ih objavljuje zna komunicirati.

BGP protokol je zaslužan za kontinuirano objavljivanje ovih prefiksa i zapravo je mehanizam koji omogućava Internetu da brzo „zacijeli“. Naime, ako dođe do određenog ispada nekog usmjerivača ili linka, podaci razmijenjeni BGP protokolom će osigurati da se nađe ruta nekim drugim putem, upravo analizom izvornih i tranzitnih prefiksa. Svi usmjerivači uvijek pokušavaju naći optimalni put do cilja – to se obično svodi na najkraći niz prefiksa. Npr. ako usmjerivač dobije paket koji je potrebno poslati na neki ciljni AS, i do njega zna za dvije različite rute, pobijediti će ona koja je specifičnija, a ako su obje iste, pobjeđuje ona koja je kraća.

Povuci-potegni

Sad kad imamo generalnu ideju kako se paketi usmjeravaju na Internetu možemo analizirati što se dogodilo s Facebookom. Kako je svaki AS u mogućnosti objaviti svoj prefiks, omogućavajući svakom drugom AS-u na Internetu da ga pronađe, jednako tako je AS u mogućnosti i povući svoj prefiks. Povlačenjem prefiksa uklanja se ruta i takva se aktivnost generalno vrlo brzo proširi Internetom – neki su akademski radovi pokazali da se propagacija promjena ruta na Internetu provede u manje od 10-ak minuta u cijelom svijetu.

Jučer (4.10.2021.) u 17:40 po našem vremenu, upravo je sam Facebook objavio takvo povlačenje prefiksa. Facebook, kao i mnoge druge velike tvrtke, ima nekoliko ASN-ova, ali za našu je priču najvažniji ASN 32934 – ovdje se nalaze najvažnije mreže Facebooka, uključujući i mrežu 129.134.0.0/17, na kojoj se nalaze, između ostalog, i DNS poslužitelji Facebooka.

U normalnim uvjetima Facebook ima odličnu povezanost s različitim drugim davateljima usluga. Na priloženoj slici možete vidjeti graf povezanosti ASN 32934 do dvije razine – nije loše. Kao što možemo vidjeti, čak i ispad većeg broja davatelja usluga i dalje neće utjecati na dostupnost Facebooka, pod uvjetom da pristupni linkovi preostalih davatelja imaju dovoljno kapaciteta.

No, nakon što je prefiks Facebooka bio povučen – oni su jednostavno nestali s Interneta. Svi ovi brojni davatelji usluga koji su imali direktne veze s njima (npr. na slici su vidljivi AS174 = Cogent Communications, AS1299 = Telia Company, AS3257 = GTT Communications) jednostavno više nisu znali gdje slati Facebook promet.

From 100 to zero in 60 seconds

S obzirom da Facebook ima više ASN-ova, prvo su zapravo s Interneta nestali njihovi DNS poslužitelji. Za prosječnog korisnika, ako nema DNS-a to je jednako kao i da „ne radi Internet“, i upravo se to i dogodilo. Ubrzo nakon toga, nestali su i drugi ASN-ovi/rute te je Facebook doslovno bio „ugašen“.

Povezanost Facebookovog ASN-a u normalnim okolnostima rada je impresivna. Na slici možemo vidjeti veliki broj ASN-ova koji su direktno povezani ili udaljeni samo jedan skok od Facebooka

Pravo pitanje je kako je moglo doći do ovakve greške? Pa – krivo objavljeni prefiksi zapravo i nisu rijetkost, dešavaju se relativno često jer administrator može jednostavno napraviti grešku, ali zapravo dosta rijetko budu ovakve skale. Jedan od najvećih sličnih incidenata dogodio se 2008. godine kada je pakistanski davatelj Internet usluga greškom objavio „bolju“ rutu do Youtube mreže – koja je brzo nakon toga postala nedostupna. Još ranije, 2005. godine, davatelj Internet usluga u Turskoj totalno je krivo objavio rute tako da je praktički sav promet na Internetu bio usmjeren prema njima.

Iako Facebook još nije objavio što je bio uzrok problema, vrlo je vjerojatno da je bila riječ o neispravnoj konfiguraciji. Facebookovi inženjeri zadnjih su par godina objavili nekoliko radova na temu upravljanja BGP-em, zapravo se čak i hvaleći kako je to kod njih poprilično automatizirano, pa je moguće i čak da je do problema dovela nekakva softverska greška u njihovim internim programima.

Bilo kako bilo, ispravni su prefiksi objavljeni za nekakvih 5 sati, i još kojih sat vremena nakon toga Facebookovi popularni servisi su opet postali dostupni svima. Od ovog incidenta, vjerujemo, mnogi će nešto naučiti, a i možda posvetiti više pažnji samoj dostupnosti servisa koju nekad uzimamo zdravo za gotovo.


Ogledalo BGP-a

Kako je BGP protokol koji se koristi između usmjerivača davatelja Internet usluga, dosta informacija koje se razmjenjuju ovim protokolom zapravo je običnom smrtniku nedostupno. Na sreću, veliki broj davatelja Internet usluga postavilo je tzv. Looking Glass servise, koji omogućavaju slanje upita na njihove usmjerivače/poslužitelje kako bi se dobili trenutni BGP podaci.

Kod nas, na žalost izgleda da je samo Srce omogućilo pristup na njihov Looking Glass servis na CIX-u (Croatian Internet eXchange). CIX je središnje mjesto za razmjenu Internet prometa u Hrvatskoj, te se nalazi u Sveučilišnom računskom centru (Srcu). Dosta veliki broj naših, domaćih davatelja usluga ga koristi upravo za što efikasniju razmjenu podataka.

Slika u nastavku pokazuje sučelje dostupno na https://lg.cix.hr/?show=neighbour-info gdje smo napravili upit za AS 12810, koji pripada A1 davatelju Internet usluga. Povezanost izgleda dobra, e sad još samo nitko ne smije povući prefiks, kao što je to napravio Facebook.

Bitcoin blok predstavlja osnovni element Bitcoin platnog sustava

Podijeli:

 

 

Vezane objave