Anycast: kako radi i zašto je važan za brži i pouzdaniji Internet

Anycast je mrežni koncept koji omogućava da nekoliko servera, koji se nalaze na različitim geografskim lokacijama, deli istu IP adresu. Drugim rečima, kada vaš browser pošalje zahtev za pristup nekom web sajtu, anycast rutira taj zahtev ka najbližem serveru. Na taj način se ubrzava pristup traženom sajtu. Iz tog razloga smo ga i mi implementirali na naše DNS servere.
Na mCloud-u su na raspolaganju Anycast DNS opcije ukoliko imate registrovan domen kod nas i koristite mCloud DNS servere. Ukoliko imate samo server i želeli biste da koristite postojeći domen registrovan na drugom mestu, dovoljno je da kreirate tiket kako bismo vam aktivirali ovu uslugu.
U ovom tekstu ćemo vam detaljno predstaviti anycast tehnologiju i objasniti na koji način ona funkcioniše.
Kako funkcioniše anycast?
Anycast funkcioniše tako što koristi istu IP adresu za više servera koji su raspoređeni na različitim geografskim lokacijama.
Na primer, ako korisnik iz Srbije pošalje zahtev ka anycast IP adresi, zahtev će se usmeriti ka najbližem serveru (možda u Beogradu ili nekoj susednoj zemlji). Ako korisnik iz SAD pošalje isti zahtev ka istoj IP adresi, njegov zahtev će se usmeriti ka serveru u SAD-u. Na ovaj način se smanjuje latencija, poboljšava brzina učitavanja i ujedno povećava otpornost na prekide u radu servera.
Kod anycast-a dodeljivanje IP adrese serverima vrši se kao i kod bilo koje druge mrežne konfiguracije, ali glavna razlika je u načinu na koji mrežni ruteri tretiraju tu IP adresu.
Kao što možete da vidite na slici iznad, svi navedeni serveri dele istu IP adresu, dok server koji je najbliži izvoru zahteva preuzima odgovornost za usmeravanje paketa ka klijentu. Drugim rečima, koristi se server sa najmanjim brojem skokova.
U mrežnoj terminologiji, skokovi predstavljaju ukupan broj rutera kroz koje paket prolazi od servera do krajnjeg korisnika.
Koja je razlika između anycast-a i unicast-a?
Da bismo bolje razumeli način na koji funkcioniše anycast, važno je da se prethodno upoznamo sa njemu bliskom tehnologijom – unicast.
Unicast predstavlja osnovni pristup razmeni podataka u mreži, kod kog se svi zahtevi i odgovori razmenjuju između tačno jednog izvora (pošiljaoca) i jednog odredišta (primaoca).
Kod unicast modela svaki uređaj ili server ima sopstvenu, jedinstvenu IP adresu. Kada korisnik želi da pristupi određenom serveru, njegov uređaj šalje zahtev ka specifičnoj IP adresi tog servera. Nakon toga ruteri pronalaze nakraći mogući put do te adrese.
Ovakav pristup je jednostavan za postavljanje, održavanje i praćenje saobraćaja jer se u svakom trenutku tačno zna odakle i kuda podaci idu. Međutim, kod udaljenih lokacija može da se pojavi latencija, a ako taj jedan server prestane da radi, usluga postaje nedostupna dok se ne otkloni problem.
Sa druge strane, anycast model omogućava da više servera, raspoređenih širom različitih geografskih lokacija, dele istu IP adresu. Kada korisnik pošalje zahtev ka toj zajedničkoj adresi, mrežni uređaji (najčešće ruteri koji koriste BGP protokol) usmeravaju taj zahtev ka serveru koji je najbliži ili najoptimalniji prema mrežnim uslovima.
Ovakav način rada smanjuje latenciju, jer korisnici obično dobijaju odgovor od servera u svojoj blizini. Pored toga, ovaj pristup takođe povećava otpornost na potencijalne probleme sa serverom. Ako jedan server prestane da radi, sistem automatski preusmerava korisnike na sledeći najbliži server, tako da usluga ostaje dostupna.
I pored svih očiglednih prednosti, važno je da imate u vidu da je postavljanje i održavanje anycast modela složenije i zahteva napredno poznavanje rada sa BGP-om i mrežnim konfigurisanjima.
Ukratko, glavna razlika između ova dva modela ili koncepta je u tome što unicast podrazumeva direktnu vezu jedan-na-jedan, dok anycast uvodi tzv jedan-na-najbliži princip, koristeći istu IP adresu na više lokacija.
Kod unicast-a, samo jedan server poseduje konkretnu IP adresu i isporučuje uslugu, što je jednostavnije, ali manje fleksibilno. Kod anycast-a, više servera raspoređenih širom sveta ili jednog kontinenta dele istu IP adresu, što za rezultat ima nižu latenciju za krajnje korisnike i veću dostupnost usluge. Upravo iz tih razloga Anycast najčešće koriste DNS servisi, CDN mreže i veliki globalni pružaoci usluga kojima je važna brzina pristupa i otpornost na zagušenja ili prekide.
Šta je i kako radi BGP (Border Gateway Protocol)?
U prethodnom poglavlju smo pomenuli BGP (Border Gateway Protocol). S obzirom da on igra važnu ulogu u anycast modelu, bitno je da ga malo pojasnimo.
BGP je ključni mrežni protokol koji služi za razmenu informacija o dostupnosti i optimalnim rutama za određene opsege IP adresa, između različitih autonomnih sistema (AS).
Taj autonomni sistem može da bude internet provajder, neka kompanija ili data centar, koji poseduje svoj jedinstveni AS broj (Autonomous System Number) i kontrolu nad određenom grupom mreža.
Za uspostavljanje veze između dve tačke (BGP peering), BGP koristi port 179. Jednom kada se uspostavi veza, ruteri razmenjuju putanje zajedno sa atributima kao što su AS-path, Next Hop, Local Preference i Community oznake.
Kada jedan autonomni sistem (AS) oglasi prefikse drugim sistemima, on šalje informacije o tome koje IP adrese može da posluži i kroz koji AS-path može da se dođe do tih adresa. AS-path predstavlja niz AS brojeva kroz koje ruta prolazi. To pomaže pri identifikaciji najkraćeg puta na globalnom internetu (iako je najkraći put u BGP-u često definisan raznim politikama rutiranja, a ne samo brojem hop-ova).
Za razliku od unutrašnjih protokola za rutiranje, kao što su OSPF ili EIGRP, BGP radi na globalnom nivou, povezujući ogroman broj AS-ova širom sveta, formirajući na taj internet kakav poznajemo. Ukoliko dođe do promene u mrežnoj topologiji (pad linka, dodavanje novih mreža ili promena politike rutiranja), BGP istog momenta šalje ažuriranja ostalim susednim sistemima, kako bi se obezbedilo da paketi i dalje mogu da dostignu željeno odredište na najefikasniji način, a sve u skladu sa politikama koje su definisali svi uključeni AS-ovi.
Koje su prednosti anycast-a?
Iako ste iz svega prethodno navedenog verovatno naslutili sve prednosti anycast rešenja, neće smetati da ih ovde sve objednimo.
Niža latencija
Jedna od najvažnijih prednosti anycast-a jeste to što korisnici stupaju u vezu sa fizički najbližim serverom koji oglašava istu IP adresu. Zahvaljujući BGP usmeravanju, paket će se rutirati ka čvoru koji je najbliži ili najoptimalniji u mrežnom smislu. Rezultat toga će biti kraće vreme putovanja paketa i niža latencija, što je naročito važno kod servisa koji zahtevaju brzi odziv, poput DNS-a ili striming servisa.
Veća otpornost i visoka dostupnost
Pošto više serverskih čvorova deli istu IP adresu, kvar ili ispad jednog čvora ne znači ujedno i prekid celokupne usluge. Ako jedan server padne, BGP automatski uklanja tu rutu iz oglašavanja, a saobraćaj se usmerava na sledeći najbliži aktivni čvor. Zahvaljujući tome, anycast poboljšava dostupnost servisa i umanjuje rizik od dugotrajnih prekida.
Skalabilnost i jednostavno proširenje
Dodavanje novih čvorova u anycast mrežu uglavnom podrazumeva samo postavljanje dodatnog servera i oglašavanje (announce) iste IP adrese putem BGP-a. Na taj način mreža može prirodno da se širi u skladu sa potrebama korisnika ili promenama u geografskom rasporedu saobraćaja. Ovo je mnogo jednostavnije nego u tradicionalnim unicast okruženjima, gde bi se svaka nova lokacija zahtevala dodatnu IP adresu ili posebnu konfiguraciju usmeravanja.
Bolja raspodela opterećenja (load balancing)
Zahvaljujući anycast modelu, korisnici se obraćaju najbližim serverima, pa se opterećenje raspodeljuje prirodno. Ako je veliki deo korisnika u jednoj regiji, oni će se povezati na čvor koji se nalazi tamo. Istovremeno, korisnici iz drugih regiona dobiće odgovor od lokalnih čvorova. Ovakva raspodela smanjuje mogućnost preopterećenja pojedinačnih servera i doprinosi ravnomernijoj iskorišćenosti resursa.
Poboljšana zaštita od DDoS napada
Distribuiranost čvorova pomaže u disperziji saobraćaja u slučaju DDoS (Distributed Denial of Service) napada, jer se napad širi na više lokacija umesto da bude usmeren na jednu jedinu IP adresu i lokaciju. Ruteri, vođeni BGP-om, mogu da preusmere saobraćaj koji dolazi od napadača, a moguće je i da se koriste različite tehnike filtriranja na više čvorova. Na taj način se mnogo bolje štiti branjeni servis.
Smanjenje uskih grla u mreži
Ako postoji previše korisnika koji se obraćaju samo jednom serveru, to može da dovede do stanja poznatijeg kao usko grlo (bottleneck). Anycast smanjuje šanse za takav scenario jer se veliki broj korisnika ili zahteva raspoređuje ka serverima na više lokacija, pa se propusni opseg mreže koristi efikasnije nego kod unicast modela.
Jedinstvena IP adresa olakšava primenu servisa
Više čvorova s istom IP adresom omogućava pokretanje globalno distribuiranih usluga bez potrebe za složenom logikom na strani klijenta. Korisnik ili aplikacija jednostavno pristupa toj adresi, a BGP i mrežni ruteri u pozadini vode računa o tome gde će zahtev fizički završiti.
Koji su izazovi u implementaciji anycast-a?
Anycast je bez sumnje koncept koji je izuzetno važan u današnoj internet arhitekturi. Ipak, on dolazi i sa određenim izazovima koje je potrebno da imate u vidu pre implementacije.
Jedan od glavnih izazova u implementaciji anycast-a jeste složenost BGP konfiguracije, jer je neophodno da svi čvorovi koji dele istu IP adresu pravilno oglašavaju te prefikse. Nepravilna BGP podešavanja mogu da dovedu do lošeg usmeravanja, kruženja paketa ili čak nestabilnosti mreže.
Drugi problem predstavlja monitoring i dijagnostika saobraćaja. Pošto svaki korisnik može završiti na različitom čvoru (u zavisnosti od toga gde se nalazi ili kako mreža usmerava saobraćaj), praćenje performansi ili otklanjanje kvarova može da bude složenije nego inače. Administratori moraju da prate više lokacija istovremeno i da imaju uvid u to gde je korisnik zaista završio.
Takođe, tu se javlja i pitanje lokalnih mrežnih politika. Različiti internet provajderi imaju sopstvene BGP postavke, pa u praksi može da se desi da neki provajder favorizuje određenu putanju. To će naravno uticati na to kako se zahtevi usmeravaju ka anycast čvorovima. Neki čvorovi mogu da postanu preopterećeni, dok drugi mogu da ostanu nedovoljno iskorišćeni.
Dodatni izazov jeste integracija anycast-a sa DDoS zaštitom. Iako anycast prirodno rasipa napad na više tačaka, za potpunu zaštitu je i dalje potrebno uraditi podešavanje na nivou svakog čvora. Ako na pojedinim lokacijama postoje drugačiji bezbednosni mehanizmi (firewall, rate limiting, filteri) oni mogu da daju neujednačene rezultate ili dovedu do slučajnog odbacivanja legitimnog saobraćaja.
Na kraju, sa anycast-om postaje i zahtevnije upravljanje i održavanje celokupne mrežne infrastrukture. Dodavanje novih čvorova je relativno jednostavno (dovoljno je da oglašavaju isti prefiks putem BGP-a), ali kako bi se obezbedio stabilan i ujednačen rad, potrebno je da se svi ti čvorovi održavaju, ažuriraju i nadgledaju . Rezultat toga je da timovi zaduženi za mrežnu infrastrukturu moraju da poseduju više znanja i resursa u odnosu na klasičnu unicast arhitekturu.
Gde se primenjuje anycast?
Iako je primena anycast-a relativno široka, u praksi se najčešće susrećemo sa tri primene: DNS, CDN i DDos zaštita.
DNS i anycast
Kod DNS-a anycast se najčešće koristi kako bi se odgovori na upite za razrešavanje imena domena isporučili što je moguće brže i pouzdanije. Umesto da postoji samo jedan DNS server sa jedinstvenom IP adresom, pomoću anycast-a se implementira više serverskih čvorova koji se nalaze na različitim geografskim lokacijama.
Mrežni ruteri pomoću BGP-a usmeravaju upit na onaj čvor koji je najbliži ili najoptimalniji po mrežnim merilima, kao što su broj skokova (hop-ova) ili procenjena latencija. Na taj način se skraćuje vreme potrebno za pronalaženje IP adrese, što direktno ubrzava pristup konkretnom web sajtu. Pored toga, ako neki DNS čvor prestane da radi ili postane preopterećen, BGP prestaje da oglašava njegovu dostupnost, pa se svi ostali zahtevi automatski prosleđuju ka drugim aktivnim čvorovima.
Ukoliko želite da saznate više od DNS-u, predlažemo da pročitate Kako funkcioniše DNS i čemu koji rekord služi?
CDN i anycast
Kao što verovatno znate, CDN (Content Delivery Network) služi za raspodelu statičkog ili dinamičkog sadržaja (slike, video, skripte) korisnicima iz serverskih čvorova koji su uglavnom raspoređeni na više lokacija širom sveta. Implementacijom anycast-a, svi ti serverski čvorovi dele istu IP adresu.
Istovremeno BGP usmerava zahtev do čvora koji se nalazi najbliže korisniku ili ima najpovoljniju rutu. Time se smanjuje vreme učitavanja stranica, jer se traženi sadržaj preuzima iz lokalno ili regionalno bliskog data centra.
Dodatna prednost implementacije anycast-a sa CDN-om je i ravnomernija raspodela opterećenja, pošto korisnici iz različitih delova sveta ne opterećuju samo jednu serversku lokaciju. Ako u nekom data centru dođe do ispada ili naglog porasta broja zahteva, BGP će prestati da oglašava taj čvor, a saobraćaj će otići ka drugom raspoloživom čvoru. Tako se obezbeđuje otpornost na kvarove i fleksibilnost u pružanju usluge, što je ključno za pouzdanu i brzu isporuku onlajn sadržaja.
Ukoliko želite da saznate više o CDN-u, predlažemo da pročitate naš tekst u kojem su opisani Popularni CDN servisi.
DDoS zaštita i anycast
Anycast arhitektura takođe pomaže u zaštiti od DDoS (Distributed Denial of Service) napada. Na taj način omogućavate da u slučaju napada više serverskih čvorova pod zajedničkom IP adresom raspoređuje maliciozni saobraćaj širom mreže, umesto da se sav napad koncentriše na jednu lokaciju. U tom slučaju svaki čvor prima samo deo napada, pa su znatno manje šanse da dođe do potpune nedostupnosti usluge.
Dodatno, ukoliko jedan čvor bude preopterećen, BGP će prestati da ga oglašava, a novi zahtevi će se automatski preusmeriti ka drugim čvorovima. Na taj način anycast istovremeno pruža otpornost na preopterećenja i fleksibilnost u odbrani od napada, što je izuzetno važno za očuvanje neprekidnog rada najvažnijih internet servisa.
Zaključak
Kao što ste videli, anycast je značajan tehnološki iskorak u odnosu na klasični unicast model, jer omogućava da se isti servis pruži sa više geografski raspoređenih lokacija i pod jednom IP adresom. BGP protokol, koji se koristi za oglašavanje tih lokacija, usmerava saobraćaj ka najbližem ili najoptimalnijem čvoru, čime se postiže manja latencija i veća otpornost na kvarove. To posebno dolazi do izražaja u DNS i CDN sistemima, gde brzina odziva, pouzdanost i otpornost na napade predstavljaju ključne faktore.
Iako donosi niz prednosti, poput niže latencije, otpornosti na DDoS napade i ravnomernije raspodele opterećenja, anycast zahteva složeniju implementaciju i detaljnije planiranje BGP rutiranja. Potrebno je dobro poznavanje mrežnih politika i mehanizama kako bi se izbegli problemi poput nedoslednog usmeravanja ili preopterećenja pojedinih čvorova.
Međutim, svi ovi izazovi u implementaciji na kraju donose velike koristii od anycast-a. Uz pravilnu konfiguraciju i nadzor, anycast postaje efikasno rešenje za raspoređivanje mrežnih usluga na globalnom nivou, obezbeđujući bolji korisnički doživljaj i visoku dostupnost vaših servisa.