O Anycast z pewnością wiele osób słyszało. W tej metodzie adresacji i routingu jeden adres IP jest przypisywany wielu serwerom w sieci. Serwery te mogą być nawet w znacznych odległościach od siebie w różnych centrach danych. Ideą Anycast jest to, że w zależności od lokalizacji źródła żądań, dane są wysyłane do najbliższego serwera (zgodnie z topologią sieci, a dokładniej — protokołem routingu BGP). W ten sposób można zmniejszyć liczbę przeskoków w sieci (hop) oraz opóźnienie (latency).
W zasadzie ogłaszany jest ten sam szlak z kilku centrów danych na całym świecie. Dzięki temu klienci będą wysyłani do „najlepszego” i „najbliższego” w zależności od tras BGP, centrum danych. Dlaczego jednak dokładnie Anycast? Po co używać Anycast zamiast Unicast?
Unicast naprawdę nadaje się dla strony z jednym serwerem www i umiarkowanym natężeniem ruchu. Jednak jeśli usługa ma miliony subskrybentów, zazwyczaj korzysta z wielu serwerów www, z których każdy ma ten sam adres IP. Serwery te są rozmieszczone geograficznie, aby optymalnie obsługiwać żądania.
W takim scenariuszu Anycast przyniesie poprawę wydajności (ruch kierowany jest do użytkownika z minimalnym opóźnieniem), zapewni niezawodność usługi (dzięki zapasowym serwerom) oraz równoważenie obciążenia — routowanie na wiele serwerów skutecznie rozłoży obciążenie między nimi, poprawiając prędkość działania strony.
Operatorzy oferują klientom różne rodzaje równoważenia obciążenia opartego na Anycast i DNS. Klienci mogą określać adresy IP, na które będą wysyłane żądania w zależności od geograficznego położenia strony. Daje to możliwość bardziej elastycznego rozkładu żądań użytkowników.
Załóżmy, że istnieje kilka lokalizacji, między którymi należy rozłożyć obciążenie (użytkowników), na przykład sklep internetowy z 100 000 zapytań dziennie lub popularny blog. Aby ograniczyć region, z którego użytkownicy wchodzą na konkretną lokalizację, można skorzystać z opcji Geo Community. Umożliwia ona ograniczenie regionu, w którym operator będzie ogłaszać trasę.


Anycast a Unicast: różnice
Anycast jest często stosowany w aplikacjach takich jak DNS (system nazw domen) i CDN (sieci dostarczania treści), umożliwiając podejmowanie decyzji o trasowaniu, które zwiększają wydajność sieci. Sieci dostarczania treści korzystają z Anycast, ponieważ muszą radzić sobie z dużymi wolumenami ruchu, a Anycast w takich przypadkach przynosi szereg korzyści (więcej na ten temat poniżej). W DNS Anycast znacznie zwiększa poziom niezawodności i odporności na awarie tych usług.

W Anycast IP przy użyciu BGP istnieje kilka tras do konkretnego hosta. W rzeczywistości są to kopie hostów w różnych centrach danych, używane do ustanawiania połączeń z mniejszymi opóźnieniami.
Zatem w sieci Anycast ten sam adres IP jest ogłaszany z różnych lokalizacji, a sieć decyduje, dokąd przesłać żądanie użytkownika na podstawie „kosztu” trasy. Na przykład, często do określenia najkrótszej trasy przesyłu danych stosowany jest protokół BGP. Gdy użytkownik wysyła żądanie Anycast, BGP określa najlepszą trasę dla dostępnych w sieci Anycast serwerów.
Zalety Anycast
Zmniejszenie opóźnienia
Systemy z Anycast są w stanie obniżyć opóźnienie w przetwarzaniu żądań użytkowników, ponieważ pozwalają na pobieranie danych z najbliższego serwera. Użytkownicy zawsze będą łączyć się z „najbliższym” (z punktu widzenia protokołu trasowania) serwerem DNS. W rezultacie Anycast skraca czas interakcji dzięki zmniejszeniu odległości sieciowej między klientem a serwerem. To nie tylko redukuje opóźnienie, ale także zapewnia równoważenie obciążenia.
Szybkość
Ponieważ ruch jest kierowany do najbliższego węzła, a opóźnienie w przesyłaniu danych między klientem a węzłem jest mniejsze, rezultatem będzie optymalizacja prędkości dostarczania, niezależnie od tego, skąd klient żąda informacji.
Zwiększona stabilność i odporność na awarie
Jeśli kilka serwerów na całym świecie korzysta z tego samego adresu IP, to w przypadku awarii jednego z serwerów lub jego wyłączenia, ruch zostanie przekierowany do najbliższego serwera. W rezultacie Anycast czyni usługę bardziej odporną i zapewnia lepszy dostęp do sieci/opóźnienie/prędkość.
Dzięki obecności kilku serwerów, które są stale dostępne dla użytkowników, Anycast zwiększa stabilność działania DNS. W przypadku awarii węzła zapytania użytkowników są przekierowywane na inny serwer DNS bez jakiejkolwiek interwencji manualnej czy rekonfiguracji. Anycast zapewnia praktycznie przezroczyste przełączanie na inne witryny, po prostu usuwając trasy problematycznej witryny.
Równoważenie obciążenia
W systemie Anycast ruch sieciowy jest rozdzielany pomiędzy różne serwery. Działa to jak równoważnik obciążenia, zapobiegając sytuacji, w której pojedynczy serwer otrzymuje główną część ruchu. Równoważenie obciążenia może być wykorzystywane na przykład, gdy w tym samym odległości geograficznej od źródła zapytań znajduje się kilka węzłów sieciowych. W takim przypadku obciążenie jest rozdzielane między węzły.
Ograniczenie wpływu ataków DoS
Inną cechą Anycast jest odporność na DDoS. Ataki DDoS prawdopodobnie nie zdołają wyłączyć systemu Anycast, ponieważ konieczne byłoby zablokowanie wszystkich serwerów w takiej sieci za pomocą fali zapytań.
W atakach DDoS często stosowane są botnety, które mogą generować taki wolumen ruchu, że przeciążają atakowany serwer. Zaletą stosowania Anycast w tej sytuacji jest to, że każdy serwer jest w stanie 'pochłonąć' część ataku, co zmniejsza obciążenie konkretnego serwera. Atak typu 'odmowa usługi' prawdopodobnie będzie lokalizowany na serwerze i nie wpłynie na cały serwis.
Wysoka pozioma skalowalność
Systemy Anycast doskonale nadają się dla usług o dużych wolumenach ruchu. Jeśli usługa korzystająca z Anycast wymaga nowych serwerów do obsługi rosnącego ruchu, można dodać nowe serwery do sieci w celu jego przetwarzania. Mogą być one umieszczane na nowych lub już istniejących lokalizacjach.
Jeśli w danym miejscu obserwuje się duży wzrost ruchu, dodanie serwera pomoże zrównoważyć obciążenie dla tej lokalizacji. Dodanie serwera w nowym miejscu skróci czas oczekiwania, tworząc dla niektórych użytkowników nową najkrótszą trasę. Obie metody również zwiększają stabilność usługi, ponieważ w sieci stają się dostępne nowe serwery. W ten sposób, jeśli serwer jest przeciążony, można po prostu uruchomić inny w miejscu, które pozwoli mu przejąć część zapytań z przeciążonego serwera. Nie będzie to wymagało konfiguracji po stronie klientów.
Tylko w ten sposób można obsłużyć terabity ruchu i bardzo dużą liczbę użytkowników, gdy na serwerze jest tylko kilka portów 10 lub 25 Gbit/s. 100 hostów z jednym adresem IP umożliwi obsługę terabytowych wolumenów ruchu.
Łatwość zarządzania konfiguracją
Jak już wspomniano, interesujące zastosowanie Anycastu to DNS. Można umieścić w węzłach sieci kilka różnych serwerów DNS, ale używać jednego adresu DNS. W zależności od lokalizacji źródła, zapytania są kierowane do najbliższego węzła. Zapewnia to pewną równowagę ruchu i nadmiarowość w przypadku awarii serwera DNS. W ten sposób zamiast konfigurować różne serwery DNS w zależności od ich lokalizacji, konfigurację jednego serwera DNS można rozprzestrzenić na wszystkie węzły.
Sieci Anycast można skonfigurować do routingu zapytań nie tylko na podstawie odległości, ale także takich parametrów jak dostępność serwera, liczba nawiązywanych połączeń czy czas odpowiedzi.
Do korzystania z technologii Anycast po stronie klienta nie są wymagane żadne specjalne serwery, sieci ani komponenty. Ale Anycast ma też swoje wady. Uważa się, że jego wdrożenie jest skomplikowanym zadaniem, wymagającym dodatkowego sprzętu, niezawodnych dostawców i właściwego routingu ruchu.
Od czystego źródła w piękną dal.
Chociaż Anycast kieruje użytkowników na podstawie minimalnej liczby przeskoków, nie oznacza to koniecznie minimalnych opóźnień. Opóźnienie to bardziej złożona metryka, ponieważ w przypadku jednego przeskoku może być wyższe niż w przypadku dziesięciu.

Przykład: komunikacje międzykontynentalne mogą obejmować jedno połączenie z bardzo wysokim opóźnieniem.
Anycast jest głównie używany w usługach opartych na UDP, takich jak DNS. Zapytania użytkowników są kierowane do «najlepszego» i «najbliższego» centrum danych na podstawie tras BGP.

Przykład: stacja robocza klienta DNS z adresem IP Anycast DNS 123.10.10.10 wykonuje rozwiązywanie DNS dla najbliższego z trzech serwerów nazw DNS, wdrożonych przy użyciu tego samego adresu IP Anycast. W przypadku awarii routera R1 lub serwera A pakiety DNS klienta będą automatycznie przekierowywane do następnego najbliższego serwera DNS poprzez routery R2 i R3. Dodatkowo, trasa do naszego serwera A zostanie usunięta z tabel routingu, co zapobiegnie dalszemu użyciu tego serwera nazw.
Scenariusze wdrożenia
Istnieją dwa ogólne schematy, które są używane do określenia, do którego serwera łączy się użytkownik:
- Anycast na poziomie sieci. Łączy użytkownika z najbliższym serwerem. Tutaj ważna jest ścieżka sieciowa od użytkownika do serwera.
- Anycast na poziomie aplikacji. W tym schemacie istnieje więcej obliczalnych metryk, w tym dostępność serwera, czas odpowiedzi, liczba połączeń itd. Zależy to od zewnętrznego monitora, który zapewnia statystyki dotyczące sieci.
CDN oparty na Anycast
Wracamy teraz do wykorzystania Anycast w sieciach dostarczania treści. Anycast jest zdecydowanie interesującą koncepcją sieciową i zyskuje coraz większe uznanie wśród dostawców CDN nowej generacji.
CDN jest rozproszoną siecią serwerów, które dostarczają treści końcowym użytkownikom z wysoką dostępnością i niskim opóźnieniem. Sieci dostarczania treści odgrywają dzisiaj ważną rolę, będąc podstawą licznych usług multimedialnych online, a konsumenci są coraz mniej tolerancyjni na wolne prędkości ładowania. Aplikacje wideo i głosowe są szczególnie wrażliwe na jitter i opóźnienie w sieci.
CDN łączy wszystkie serwery w jedną sieć i zapewnia szybsze ładowanie treści. Czasami można skrócić czas oczekiwania użytkownika o 5-6 sekund. Celem CDN jest optymalizacja dostarczania poprzez udostępnianie treści z serwera, który znajduje się najbliżej końcowego użytkownika. Jest to bardzo podobne do Anycast, w którym wybierany jest najbliższy serwer w zależności od lokalizacji końcowego użytkownika. Wydawać by się mogło, że każdy dostawca usług CDN domyślnie używa Anycast, ale w rzeczywistości tak nie jest.
Aplikacje wykorzystujące protokoły, takie jak HTTP/TCP, opierają się na nawiązywanej chwili połączeniu. Jeśli zostanie wybrany nowy węzeł Anycast (na przykład w przypadku awarii serwera), usługa może zostać przerwana. Dlatego Anycast był wcześniej zalecany dla usług bez nawiązywania połączenia, takich jak UDP i DNS. Niemniej jednak Anycast działa również dobrze dla protokołów opartych na połączeniu, na przykład TCP doskonale funkcjonuje w trybie Anycast.
Niektórzy dostawcy CDN stosują routowanie oparte na Anycast, inni preferują routowanie oparte na DNS: najbliższy serwer jest wybierany w zależności od lokalizacji serwera DNS użytkownika.
Hybrydowe infrastruktury i infrastruktury z wieloma centrami przetwarzania danych to kolejny przykład zastosowania Anycast. Adres Load Balancing IP uzyskany od dostawcy pozwala na rozdzielanie obciążenia między adresy IP różnych usług klientów w centrum danych dostawcy. Dzięki technologii adresowania dowolnemu urządzeniu zapewnia to lepszą wydajność przy dużym ruchu, odporność na awarie i pomaga optymalizować czas odpowiedzi przy dużej liczbie użytkowników.
W hybrydowych infrastrukturach z wieloma centrami przetwarzania danych można rozdzielać ruch między serwery lub nawet maszyny wirtualne na dedykowanych serwerach.
W ten sposób istnieje ogromny wybór rozwiązań technicznych do budowy infrastruktury. Można również skonfigurować równoważenie obciążenia po adresach IP w wielu centrach przetwarzania danych, korzystając z adresacji do dowolnego urządzenia grupy w celu optymalizacji działania strony.
Można rozprowadzać ruch zgodnie z własnymi zasadami, określając „wagę” każdego z rozdzielonych serwerów w każdym Centrum Danych. Taka konfiguracja jest szczególnie przydatna, gdy zajdzie potrzeba zarządzania rozproszonym parkiem serwerów, a wydajność usług jest różna. Umożliwi to częstsze rozdzielanie ruchu, co zwiększy wydajność serwerów.
Aby stworzyć system monitorowania za pomocą polecenia ping, istnieje możliwość konfigurowania sond. Umożliwia to administratorowi określenie własnych procedur kontrolnych i uzyskanie dokładniejszego obrazu stanu każdego komponentu w infrastrukturze. W ten sposób można ustalać kryteria dostępności.
Istnieje możliwość budowy hybrydowej infrastruktury: czasami wygodnie jest zostawić back office w sieci korporacyjnej, a część interfejsową przekazać dostawcy usług zewnętrznych.
Można dodać certyfikaty SSL do rozkładania obciążenia, szyfrowania przesyłanych danych i zabezpieczania komunikacji między odwiedzającymi stronę a infrastrukturą korporacyjną. W przypadku rozkładania obciążenia między Centrum Danych również można stosować SSL.
Usługę Anycast z rozkładem obciążenia adresów można uzyskać u dostawcy. Ta funkcja pomoże poprawić algorytm interakcji użytkowników z aplikacjami w zależności od lokalizacji. Wystarczy ogłosić, jakie usługi są dostępne w Centrum Danych, a ruch zostanie przekierowany do najbliższej infrastruktury. Jeśli są dedykowane serwery, na przykład we Francji lub Ameryce Północnej, klienci będą kierowani do najbliższego serwera w sieci.
Jednym z zastosowań Anycast jest optymalny wybór punktu obecności operatora (PoP). Przykład: . LinkedIn (zablokowany w Rosji) dąży nie tylko do poprawy wydajności i szybkości swoich produktów — aplikacji mobilnych i internetowych, ale także do doskonalenia infrastruktury sieciowej w celu przyspieszonej dostawy treści. W tym celu LinkedIn aktywnie korzysta z PoP – punktów obecności, aby skierować użytkowników do najbliższego PoP, stosuje Anycast.
Powodem jest to, że w przypadku Unycast każdy PoP LinkedIn ma unikalny adres IP. Następnie użytkownicy są przypisywani do PoP w zależności od ich lokalizacji geograficznej za pomocą DNS. Problem polega na tym, że przy użyciu DNS około 30% użytkowników w Stanach Zjednoczonych było kierowanych do suboptymalnego PoP. Dzięki stopniowemu wprowadzeniu Anycast suboptymalne przypisanie PoP spadło z 31% do 10%.

Wyniki testu pilotażowego przedstawiono na wykresie, gdzie oś Y to procent optymalnego przypisania PoP. W miarę «skali» Anycast w wielu stanach USA zaobserwowano poprawę procentu ruchu do optymalnego PoP.
Monitorowanie sieci Anycast
Teoretycznie sieci Anycast są proste: kilka fizycznych serwerów jest przypisanych do tego samego adresu IP, który BGP wykorzystuje do określenia trasy. Jednak realizacja i projektowanie platform Anycast są skomplikowane, a szczególnie słyną z tego odporne na awarie sieci Anycast. Jeszcze bardziej skomplikowane jest efektywne monitorowanie sieci Anycast w celu szybkiego wykrywania i lokalizowania usterek.
Jeśli usługi korzystają z zewnętrznego dostawcy CDN do obsługi swojej zawartości, niezwykle istotne jest monitorowanie i weryfikacja wydajności sieci. W przypadku monitorowania CDN opartego na Anycast głównym celem jest pomiar opóźnień end-to-end oraz charakterystyk przedostatniego przeskoku, aby zrozumieć, które centrum danych obsługuje treść. Analiza nagłówków HTTP serwera to kolejny sposób na określenie, skąd pochodzi dane.

Przykład: nagłówki odpowiedzi HTTP wskazujące lokalizację serwera CDN.
Na przykład CloudFlare używa własnego nagłówka CF-Ray w wiadomościach odpowiedzi HTTP, który zawiera informację o centrum danych, do którego dotarło żądanie. W przypadku Zendesk nagłówek CF-Ray dla regionu Seattle to CF-RAY: 2a21675e65fd2a3d-SEA, a dla Amsterdamu – CF-RAY: 2a216896b93a0c71-AMS. Aby określić, gdzie znajduje się zawartość, można także używać nagłówków HTTP-X z odpowiedzi HTTP.
Inne metody adresacji
Istnieją również inne metody adresacji do routingu zapytań użytkowników do konkretnego punktu końcowego w sieci:
Unicast
Większość internetu dzisiaj korzysta właśnie z tej metody. Unicast to jednokierunkowa transmisja, adres IP jest powiązany tylko z jednym konkretnym węzłem w sieci. Nazywa się to jednoznacznym przypisaniem.
Multicast
Multicast wykorzystuje komunikację „jeden do wielu z wielu” lub „wiele do wielu”. Multicast pozwala na jednoczesne wysyłanie zapytań od nadawcy do różnych wybranych punktów końcowych. Umożliwia to klientowi pobieranie pliku partiami z wielu hostów jednocześnie (co jest przydatne w przypadku strumieniowego przesyłania audio lub wideo). Multicast często mylony jest z Anycast, jednak zasadnicza różnica polega na tym, że Anycast kieruje nadawcę do jednego konkretnego węzła, nawet jeśli dostępnych jest wiele węzłów.
Broadcast
Datagram od pojedynczego nadawcy jest kierowany do wszystkich punktów końcowych związanych z adresem rozgłoszeniowym. Sieć automatycznie replikuje datagramy, aby mieć możliwość skontaktowania się ze wszystkimi odbiorcami w transmisji rozgłoszeniowej (zazwyczaj w jednej podsieci).
Geocast
Geocast jest w pewnym stopniu podobny do Multicast: zapytania od nadawcy są jednocześnie kierowane do kilku punktów końcowych. Różnica polega na tym, że adresat jest określany jego położeniem geograficznym. Jest to wyspecjalizowana forma grupowej adresacji stosowana przez niektóre protokoły routingu w mobilnych sieciach peer-to-peer.
Geograficzny router (Geo Router) oblicza swoją strefę obsługi i przybliża ją. Georoutory, wymieniając się strefami obsługi, budują tablice routingu. System georoutorów ma strukturę hierarchiczną.



Unicast, Multicast i Broadcast.
Użycie technologii Anycast zwiększa poziom niezawodności, odporności na awarie i bezpieczeństwa DNS. Korzystając z tej technologii, operatorzy oferują swoim klientom usługi różnego rodzaju równoważenia obciążenia na podstawie DNS. W panelu sterowania można określić adresy IP, na które będą wysyłane zapytania w zależności od lokalizacji geograficznej. To da klientom możliwość elastycznego rozkładania zapytań użytkowników.
Niektórzy operatorzy stosują narzędzia monitorowania trasy w każdym punkcie obecności (POP): system automatycznie analizuje najkrótsze lokalne i globalne trasy dla punktów obecności i przekierowuje je przez lokalizacje geograficzne z najmniejszym opóźnieniem i zerowym czasem przestoju.
Obecnie Anycast to najstabilniejsze i najpewniejsze rozwiązanie do budowy wysoko obciążonych usług DNS, które mają wysokie wymagania dotyczące odporności i niezawodności.
Domena .ru obsługuje 35 serwerów Anycast DNS, zgrupowanych w 20 węzłach, rozmieszczonych w pięciu chmurach Anycast. W tym przypadku stosuje się zasadę budowy według kryteriów geograficznych, tj. Geocast. Przy lokalizacji węzłów DNS przewiduje się ich rozmieszczenie w miejscach geograficznie oddalonych, zbliżonych do najaktywniejszych użytkowników, z maksymalnym skupieniem rosyjskich dostawców w miejscu lokalizacji węzła, a także z uwzględnieniem dostępnych zasobów i wygody współpracy z lokalizacją.
Jak zbudować CDN?
CDN to sieć serwerów, która przyspiesza dostarczanie treści użytkownikom. łączy wszystkie serwery w jedną sieć i zapewnia szybsze ładowanie treści. W szybkości ładowania kluczową rolę odgrywa odległość od serwera do użytkownika.
CDN umożliwia korzystanie z serwerów, które są najbliżej docelowej grupy odbiorców. Skraca to czas oczekiwania, przyspiesza ładowanie treści stron dla wszystkich odwiedzających, co jest szczególnie istotne dla stron z dużymi plikami lub serwisów multimedialnych. Typowe obszary zastosowań CDN to e-commerce oraz branża rozrywkowa.
Tworzona w infrastrukturze CDN sieć dodatkowych serwerów, które są zlokalizowane jak najbliżej użytkowników, sprzyja bardziej stabilnemu i szybszemu dostarczaniu danych. Zgodnie z danymi, korzystanie z CDN zmniejsza opóźnienie w dostępie do strony o ponad 70% w porównaniu do stron bez CDN.
Jak? Настройка CDN с использованием собственного решения Anycast может быть достаточно дорогим проектом, но есть более дешевые варианты. Например, можно использовать GeoDNS и обычные серверы с уникальными IP-адресами. С помощью сервисов GeoDNS можно создать CDN с функциями геолокации, в которой решения принимаются на основе реального местоположения посетителя, а не местоположения ресолвера DNS. Можно настроить свою DNS-зону так, чтобы показывать IP-адреса американских серверов посетителям из США, а европейские посетители будут видеть IP-адрес из Европы.
Za pomocą GeoDNS można zwracać różne odpowiedzi DNS w zależności od adresu IP użytkownika. W tym celu serwer DNS jest konfigurowany tak, aby zwracał różne adresy IP w zależności od adresu IP źródłowego w zapytaniu. Zazwyczaj do określenia regionu, z którego pochodzi zapytanie, wykorzystywana jest baza danych GeoIP. Geolokalizacja za pomocą DNS pozwala na dostarczanie użytkownikom treści z najbliższego serwisu.
GeoDNS określa adres IP klienta wysyłającego zapytanie DNS lub adres IP rekursywnego serwera DNS dostawcy używanego do przetwarzania zapytania klienta. Na podstawie adresu IP klienta oraz bazy GeoIP ustalana jest jego kraj/region. Następnie klient otrzymuje adres IP najbliższego serwera CDN. O ustawieniu GeoDNS można przeczytać więcej..
Anycast czy GeoDNS?
Chociaż Anycast to doskonały sposób na dostarczanie treści na globalną skalę, brakuje mu specyficzności. Właśnie w tym pomaga GeoDNS. Usługa ta pozwala tworzyć zasady, które kierują użytkowników na unikalne punkty końcowe w zależności od ich lokalizacji.

Przykład: użytkownicy z Europy są kierowani do innego punktu końcowego.
Można również zablokować dostęp do domen, odrzucając wszystkie zapytania. To z kolei jest szybkim sposobem na zablokowanie intruzów.
GeoDNS daje bardziej precyzyjne odpowiedzi niż Anycast. W przypadku Anycast najkrótsza trasa określana jest na podstawie liczby hopów, podczas gdy w GeoDNS routing dla końcowych użytkowników odbywa się na podstawie ich fizycznej lokalizacji. Zmniejsza to opóźnienia i zwiększa dokładność przy tworzeniu granularnych zasad routingu.
Podczas przejścia na domenę przeglądarka zwraca się do najbliższego serwera DNS, który w zależności od domeny wydaje adres IP do ładowania strony. Załóżmy, że sklep internetowy cieszy się popularnością w USA i Europie, a serwery DNS są dostępne tylko w Europie. W takim przypadku użytkownicy z USA, którzy chcą skorzystać z usług sklepu, będą zmuszeni wysłać zapytanie do najbliższego serwera, a ponieważ jest on bardzo daleko, czas oczekiwania na odpowiedź będzie długi — ładowanie strony będzie wolne.
Przy umiejscowieniu serwera GeoDNS w USA użytkownicy będą się do niego odwoływać. Odpowiedź będzie szybka, co pozytywnie wpłynie na prędkość ładowania strony.
W sytuacji z istniejącym serwerem DNS w USA, gdy użytkownik wchodzi na daną domenę, zwróci się on do najbliższego serwera, który wyda odpowiedni adres IP. Użytkownik będzie kierowany na serwer, który zawiera treści strony, jednak ponieważ serwery z treściami znajdują się daleko, nie otrzyma ich szybko.
Jeśli umieścisz serwery w USA i CDN z buforowanymi danymi, to podczas ładowania przeglądarka klienta wyśle zapytanie do najbliższego serwera DNS, który odpowie odpowiednim adresem IP. Przeglądarka, posiadając otrzymany adres IP, łączy się z najbliższym serwerem CDN oraz z serwerem głównym, a serwer CDN przesyła do przeglądarki buforowane treści. Podczas gdy buforowane treści są ładowane, z serwera głównego przychodzą brakujące pliki niezbędne do załadowania całej strony. W rezultacie czas ładowania strony jest krótszy, ponieważ z serwera głównego przesyłana jest znacznie mniejsza ilość plików.
Określenie dokładnej lokalizacji danego adresu IP nie zawsze jest łatwym zadaniem: wpływa na to wiele czynników, a właściciele zakresu adresów IP mogą zdecydować się ogłosić go na drugim końcu świata (wtedy trzeba będzie poczekać na aktualizację bazy danych, aby uzyskać poprawną lokalizację). Czasem dostawcy VPS przypisują adresy, które teoretycznie znajdują się w USA, dla VPS w Singapurze.
W przeciwieństwie do używania adresów Anycast, rozdzielanie odbywa się w trakcie rozwiązywania nazw, a nie podczas łączenia z serwerem buforowania. Jeśli serwer rekurencyjny nie obsługuje klientowskich podsieci EDNS, używana jest lokalizacja tego serwera rekurencyjnego, a nie użytkownika, który będzie łączył się z serwerem buforowania.
Klientowskie podsieci w DNS to rozszerzenie DNS (RFC7871), które definiuje, jak rekurencyjne serwery DNS mogą przekazywać informacje o kliencie do serwera DNS, szczególnie informacje o sieci, które serwer GeoDNS może wykorzystać do bardziej dokładnego określenia lokalizacji klienta.
Większość osób korzysta z serwerów DNS swojego dostawcy internetu lub serwerów DNS, które są geograficznie bliskie ich lokalizacji, ale jeśli ktoś w USA z jakiegoś powodu zdecyduje się na użycie serwera DNS zlokalizowanego w Australii, prawdopodobnie otrzyma adres IP serwera najbliższego Australii.
Jeśli chcesz używać GeoDNS, ważne jest, aby znać te specyfiki, ponieważ w niektórych przypadkach może to zwiększyć odległość między serwerami buforowania a klientem.
Podsumowanie: jeśli chcesz połączyć kilka VPS w CDN, najlepszą opcją wdrożenia jest użycie połączenia serwera DNS z funkcją GeoDNS + Anycast 'z pudełka'.
Źródło: habr.com
