Serwisy Facebooka do?wiadczy?y powa?nej, sze?ciogodzinnej awarii. Usterka rozla?a si? na us?ugi powi?zane z Facebookiem, w tym WhatsApp, Instagram i Oculus VR. Bior?c pod uwag? skal? wydarzenia, przybli?amy zagadnienia wi???ce si? z problematyk? niektórych technologii internetowych, na których tak mocno polegamy w ?yciu prywatnym i biznesie.
Zawsze chodzi o DNS…
System nazw domen (DNS) to pojedynczy punkt awarii systemów internetowych. DNS mapuje nazwy, takie jak facebook.com, na adresy IP, umo?liwiaj?c u?ytkownikom ?atwe odwo?ywanie si? do witryn (wed?ug nazwy).
W efekcie DNS zapewnia powi?zanie nazw z adresami IP – jak ksi??ka adresowa. Gdy serwery DNS witryny nie dzia?aj?, podobne wyszukiwanie nie mo?e si? odby?, a u?ytkownicy nie b?d? mogli uzyska? dost?pu do witryny. Utrzymanie sprawno?ci, dzia?ania i bezpiecze?stwa serwerów DNS jest wi?c kluczowym elementem niezawodno?ci dzia?ania strony internetowej.
…chyba, ?e chodzi o BGP
Pod poj?ciem BGP kryje si? inna technologia, która jest tak samo wa?na jak DNS. Jest to protokó? routingu (jeden z wielu) o nazwie Border Gateway Protocol (BGP). BGP to protokó?, który umo?liwia Systemom Autonomicznym (zbiór du?ych sieci kontrolowanych przez jeden podmiot) przekazywanie informacji o kontrolowanych przez siebie sieciach, dzi?ki czemu wszystkie Systemy Autonomiczne posiadaj? spójn? wiedz?, o tym jak dotrze? do poszczególnych podsieci IP. BGP nie realizuje funkcjonalno?ci routingu bezpo?rednio, ale jest protoko?em, który udost?pnia informacje mi?dzy routerami. Po otrzymaniu tych informacji routery mog? podejmowa? decyzje o tym, dok?d nale?y przes?a? konkretne dane.
Dlaczego protokó? BGP jest wa?ny?
Wpisuj?c dowolny adres strony np. „facebook.com” w przegl?darce internetowej powodujemy, ?e komputer wykona wyszukiwanie DNS, a lokalny serwer DNS, z którego korzysta nasz komputer, wróci (mamy nadziej?) z odpowiednim adresem IP.
Wtedy nasz komputer musi by? w stanie kierowa? ruch na ten adres IP. Nale?y zauwa?y?, ?e decyzje dotycz?ce routingu s? podejmowane na zasadzie krok-po-kroku. Ka?dy router po drodze, przez który przechodz? dane, zdecyduje, jaki powinien by? nast?pny krok trasy do docelowego adresu IP. W tym celu sprawdza tablic? routingu, ?eby okre?li? nast?pne miejsce do przes?ania danych.
Je?li router uczestniczy w protokole BGP, jego tablica routingu jest konstruowana na podstawie aktualizacji otrzymanych od innych routerów obs?uguj?cych BGP.
Obejmuje to informacje o tym, do jakich sieci mo?na si? dosta?, za pomoc? poszczególnych routerów. B?dzie równie? zawiera? informacje o tym, jak blisko jest celu. W tym przypadku blisko?? nie oznacza liczby routerów, ale liczb? Systemów Autonomicznych przez które b?d? musia?y by? przes?ane dane. Istnieje z?o?ony algorytm u?ywany do okre?lenia, która z mo?liwych tras jest najlepsza. „Najlepsza” mo?e równie? okre?la? inne elementy, jak zasady dotycz?ce ruchu wychodz?cego czy umowy tranzytowe mi?dzy dostawcami us?ug internetowych. Je?li oka?e si?, ?e tabela routingu pokazuje dwa routery, które mog? przes?a? dane, aby dotrze? do okre?lonego adresu IP, wybierze jeden z dwóch na podstawie wskazanych wy?ej czynników.
Podobne decyzje dotycz?ce routingu s? podejmowane przez ka?dy router, który przesy?a dane, przekazuj?c je do innego routera lub okre?laj?c bezpo?rednie po??czenie z sieci? danego adresu IP dostarczaj?c dane do miejsca docelowego. Ten sam proces zostanie wykonany w odwrotnej kolejno?ci, aby skierowa? ruch z powrotem przez inn? seri? routerów, a nast?pnie do klienta.
Taki schemat ma wiele zalet. Dopóki dla ruchu dost?pny jest router docelowy – a wi?kszo?? firm korzystaj?cych z Internetu ma wiele takich routerów – nasze dane powinny (ostatecznie) tam trafi?. Ruch pomi?dzy dan? witryn? internetow? a klientem jest dzielony na wiele pakietów, zatem mog? by? one przesy?ane ró?nymi trasami.
Jest to cecha pozwalaj?ca na unikanie problemów z dost?pno?ci? witryn, gdyby jaki? po?redni router uleg? awarii. Wtedy pakiety sk?adaj?ce si? na nasze ??danie lub odpowied?, mog? zosta? przekierowane do dzia?aj?cych routerów. Dobrze to dzia?a, je?li tablice routingu s? spójne i zawieraj? poprawne informacje. W ko?cu Internet zosta? pierwotnie zaprojektowany do omijania ataków nuklearnych.
Obrazowe przedstawienie problemu
Wyobra?my sobie, ?e chcemy dosta? si? do domu przyjaciela, ale nigdy tam nie byli?my. Sprawdzamy adres – to jak cz??? DNS. Teraz trzeba wymy?li?, jak si? tam dosta?, wi?c udajemy si? do najbli?szego skrzy?owania i pytamy uczestników ruchu, w któr? stron? powinni?my si? kierowa?. Uczestnicy ruchu podpowiadaj?, ?eby skr?ci? w lewo. Pod??amy t? drog?, a? przemie?cimy si? do kolejnego skrzy?owania i pytamy o drog? ponownie. Dostajemy informacj?, aby kierowa? si? w prawo.
Kontynuujemy proces, a? dotrzemy do celu. Mo?liwe, ?e dostaniemy po drodze instrukcj?: „standardowo rekomendujemy tras? przez most, ale jest wy??czony z ruchu, wi?c nale?y kierowa? si? w lewo i ponownie zapyta? o drog? na nast?pnym skrzy?owaniu”. Mo?emy tak?e dosta? instrukcj?: „trasa po skr?cie w lewo jest bezpo?rednia, ale skierowanie si? w prawo i przejazd przez autostrad? b?dzie szybszy”.
Wybrana trasa nie zawsze b?dzie najprostsz?, ani nawet najszybsz? drog? do celu, ale pozwoli unikn?? blokad dróg, zawalonych mostów i korków na trasie. Je?li zapytania o drog? b?d? kierowane do uczestników ruchu, którzy maj? dobre informacje, dotrzemy do celu. ?rodkiem, za pomoc? którego przekazywane s? te dobre informacje, jest w?a?nie BGP. Je?li BGP podaje nieprawid?owe informacje lub w ogóle nie ma informacji o tym, jak dotrze? do obranego celu, mog? si? zdarzy? utrudnienia.
Czy BGP jest bezawaryjny?
BGP jest solidny i dobrze si? skaluje, co jest kluczow? funkcj? przy próbach po??czenia miliardów hostów. Nie jest jednak ca?kowicie bezawaryjny.
Wyznaczona trasa mo?e pomija? drogi, które powinny si? na trasie znale??. Oznacza to, ?e ??powi?zana sie? po prostu przestaje by? w Internecie widoczna (znika z Internetu). Si?? rzeczy nie wiadomo, jak si? tam dosta?, a ruch przeznaczony do tej sieci zostanie odrzucony.
Czasami robi si? to celowo – nazywa si? to blackholing – i zwykle ma na celu zablokowanie po??cze? do lub z danej sieci. Dzieje si? tak w wielu przypadkach. Na przyk?ad celem zablokowania ruchu DDoS z wrogiej sieci lub nawet usuni?cia ca?ego kraju z Internetu w czasie kryzysu cywilnego. W rezultacie ruch sieciowy jest po prostu usuwany, cz?sto bez powiadomienia zwrotnego do nadawcy. Sie? zablokowana przez blackholing nie b?dzie otrzymywa? ruchu i zostanie skutecznie odci?ta od (cyfrowego) ?wiata.
Trasa mo?e by? równie? nieprawid?owo wskazana. B??dna konfiguracja ze strony Systemu Autonomicznego mo?e sprawia? wra?enie, ?e kieruje ruch do sieci, których nie kontroluje. Gdy jest to dzia?anie celowe, nazywa si? je BGP hijacking i chocia? istniej? przed tym zabezpieczenia, powoduje to przekierowanie du?ej ilo?ci ruchu do bardzo ró?nych miejsc np. celem przechwytywania i badania ruchu w ramach dzia?a? szpiegowskich.
Takie przypadki s? cz?ste. Na przyk?ad operator sieci lub zautomatyzowany system dokonuj? b??dnej konfiguracji. Niezb?dna dla osi?gni?cia celu ruchu trasa albo znika ca?kowicie, albo tworzy si? p?tla routingu (gdzie ruch jest przekazywany mi?dzy dwoma routerami w niesko?czono??) lub te? ruch jest wysy?any do routera, nieznaj?cego trasy, w wyniku czego ruch jest gubiony.
Nauczka?
W oparciu o to, co zosta?o powiedziane do tej pory, mo?liwe, ?e awaria Facebooka mog?a, przynajmniej cz??ciowo, by? spowodowana b??dn? konfiguracj? BGP.
?eby by?o jasne: na tym etapie s? to spekulacje i b?dziemy musieli poczeka?, a? Facebook zdecyduje si? powiedzie?, co tak naprawd? si? dzia?o i dlaczego. Niemniej, miniona awaria jest okazj?, aby po?wi?ci? nieco wi?cej uwagi tej mniej znanej, ale niezwykle wa?nej cz??ci ruchu sieciowego. Pozwala ona przesy?a? nie tylko wszystkie zabawne filmiki z kotami, ale tak?e niezwykle informacje biznesowe do naszych przegl?darek w ca?o?ci i bez przeszkód.
Autor: Ireneusz Wi?niewski, dyrektor zarz?dzaj?cy F5 Poland