BrzNet - Super-brzi optički Internet do 1000 Mbps dostupan u celoj Srbiji!

Kako jedna pogrešna komanda može da obori pola interneta: Šta je BGP i zašto mu slepo verujemo

Kako jedna pogrešna komanda može da obori pola interneta: Šta je BGP i zašto mu slepo verujemo

Internet nije jedan jedinstven sistem. To je decentralizovana mreža sastavljena od desetina hiljada manjih, nezavisnih mreža koje međusobno komuniciraju. Da bi paket podataka sa vašeg računara u Srbiji stigao do servera u Americi, mora da prođe kroz mreže različitih internet provajdera. Jedini način da ti provajderi znaju kuda da proslede saobraćaj jeste BGP (Border Gateway Protocol).

BGP funkcioniše kao navigacioni sistem interneta. Bez njega bi ruteri bili slepi, a internet kakav poznajemo ne bi mogao da funkcioniše. Ipak, zbog arhaičnog dizajna koji se oslanja na apsolutno poverenje, dovoljna je jedna pogrešna komanda u konfiguraciji da se saobraćaj usmeri u prazno i obori pola interneta.

Autonomni sistemi i razmena ruta

Svaka nezavisna mreža na internetu, bilo da je to lokalni ISP, mobilni operator ili veliki data centar, predstavlja jedan Autonomni Sistem (AS). Svaki AS ima svoj jedinstveni identifikator - ASN (Autonomous System Number). Na primer, AS202676.

Unutar svog autonomnog sistema, operator kontroliše određene blokove IP adresa, poznate kao prefiksi. Da bi ostatak sveta znao da te adrese postoje i kako da dođe do njih, ruter na ivici mreže (border router) mora da ih "objavi" (announce) svojim susedima koristeći BGP.

Kada ruter primi BGP rutu od suseda, on je dodaje u svoju routing tabelu i prosleđuje dalje. Pritom u atribut "AS Path" dodaje svoj ASN. Na taj način se formira lanac koji pokazuje tačnu putanju kroz koje autonomne sisteme paket mora da prođe da bi stigao do cilja. BGP uvek preferira putanju sa najkraćim AS Path-om, ali i onu koja ima najspecifičniji prefiks (najmanji blok IP adresa).

Problem poverenja i mehanizam "curenja" ruta

BGP je razvijen krajem osamdesetih godina, kada su internet činile univerzitetske i vladine mreže. Inicijalni dizajn je podrazumevao da se svi učesnici poznaju i da su dobronamerni. Nije ugrađen nikakav mehanizam bezbednosti koji bi proverio da li AS zaista ima pravo da objavi određeni IP prefiks.

Zbog toga nastaju dva ključna problema: BGP Hijack i Route Leak.

BGP Hijack se dešava kada AS namerno objavi tuđe IP adrese, pretvarajući se da je on prava destinacija. Route Leak (curenje ruta) je uglavnom posledica ljudske greške i loše konfigurisanih filtera. Dešava se kada ruter greškom prosledi rute koje je dobio od jednog tranzitnog partnera drugom partneru.

Kada se tuđe rute greškom objave, ostatak interneta često to prihvati kao legitimnu novu putanju. Ako je ta nova putanja specifičnija od originalne, ruteri širom sveta automatski usmeravaju sav saobraćaj ka pogrešnom provajderu. Taj provajder, naravno, nema kapacitet da izdrži tu količinu podataka, linkovi se zagušuju, a paketi se odbacuju jer ne mogu da stignu do pravog odredišta. Saobraćaj upada u "crnu rupu" (blackhole).

Poznati incidenti: Od Pakistana do Facebooka

Najpoznatiji školski primer BGP ispada desio se 2008. godine kada je vlada Pakistana naredila lokalnom provajderu Pakistan Telecom da blokira YouTube. Umesto da blokiraju pristup samo svojim korisnicima, inženjeri su napravili rutu za YouTube IP adrese usmerenu u prazno (null route) i greškom je objavili globalno preko BGP-a. Ostatak interneta je video ovu specifičniju rutu, poverovao joj, i sav svetski YouTube saobraćaj je krenuo ka Pakistanu. YouTube je pao globalno na nekoliko sati, a pakistanski telekomunikacioni linkovi su kolapsirali pod opterećenjem.

Drugi odličan primer je Cloudflare ispad iz 2019. godine, koji pokazuje koliko domino efekat može biti destruktivan. Mali lokalni provajder u Pensilvaniji (DQE) koristio je softver za optimizaciju BGP-a koji je generisao hiljade sitnih, specifičnih ruta. Zbog nedostatka filtera, DQE je te rute "prosuo" ka svom tranzitnom provajderu, a on ih je dalje prosledio mrežnom gigantu Verizonu. Verizonovi ruteri su prihvatili te rute i objavili ih celom svetu. Pošto BGP uvek bira najspecifičniju rutu, ogroman deo svetskog saobraćaja za Cloudflare, Amazon AWS i Linode je preusmeren kroz mrežu malog provajdera u Pensilvaniji. Rezultat je bio masovni prekid servisa i pad hiljada sajtova.

Treba spomenuti i ispad Facebooka 2021. godine, koji ilustruje šta se dešava kada povučete sopstvene rute. Inženjer je izvršio pogrešnu komandu koja je obrisala BGP rute ka Facebookovim DNS serverima. Za BGP infrastrukturu interneta, Facebookove adrese su prestale da postoje. Saobraćaj nije imao gde da ide. Dodatni problem je bio što su zaposleni u Facebooku ostali zaključani ispred server sala i rutera, jer su njihovi sistemi za daljinski pristup (Out-of-band menadžment) i otključavanje vrata radili na istoj toj mreži koja je upravo izbrisana sa interneta.

RPKI i striktno filtriranje kao jedino rešenje

Ovakvi ispadni ne moraju da se dešavaju, a rešenje je tehnički odavno poznato. Da bi se sprečilo curenje i preotimanje ruta, ISP i telco industrija polako, ali sigurno usvaja RPKI (Resource Public Key Infrastructure).

RPKI omogućava vlasniku IP prefiksa da kriptografski potpiše ROA (Route Origin Authorization) zapis. Ovaj zapis eksplicitno kaže: "Samo ASN X ima pravo da objavi moj blok IP adresa". Ruteri širom sveta proveravaju svaku novu BGP rutu kroz ROV (Route Origin Validation) mehanizam. Ako neko greškom objavi vašu rutu, a njegov ASN se ne poklapa sa potpisanim ROA zapisom, ruta se momentalno odbacuje kao nevalidna (Invalid).

Ipak, tehnologija ne vredi mnogo bez osnovne mrežne higijene. RPKI ne oslobađa administratore obaveze pisanja striktnih BGP filtera. Svaka BGP sesija, bilo sa peering partnerom na IXP-u ili sa upstream tranzitom, mora da ima definisan ingress i egress prefix-list filter. Zlatno pravilo mrežnog inženjeringa ostaje nepromenjeno - ne prihvataj od suseda ono što ti ne treba i nikada ne objavljuj rute koje nisu eksplicitno tvoje ili od tvojih direktnih korisnika. Samo tako se sprečava da jedan zaboravljen "permit any" u BGP konfiguraciji napravi globalni kolaps.


Nema komentara