Jak zrobić regionalne DNS jak CDN?


15

Wydaje mi się, że to pytanie może być uzasadnione, w jaki sposób CDN działa na poziomie DNS, ale moim prawdziwym problemem jest to, że moja firma ma centra danych na trzech kontynentach i musimy mieć europe.example.com us.example.com i asia.example .com

CDN zazwyczaj wysyłają cię do lokalnego centrum danych, jakie sobie wyobrażam, w zależności od twojego adresu IP. Musi to być usługa DNS, w której serwer DNS w USA wysyła Cię do centrum danych w USA w ramach tego samego wyszukiwania DNS w witrynie example.com?

Czy się mylę? Jeśli się mylę co do tego, jak mam to zrobić skutecznie i jeśli to możliwe bez centralnych serwerów (innych niż DNS)?


Odpowiedzi:


12

Problem z CDN polega na tym, że nie kierują cię na podstawie twojego adresu IP - kierują cię na podstawie adresu IP twojego serwera DNS ... To może być całkowicie błędne. I przeczytaj artykuł Paula Vixie na temat ACM , to huk pieniędzy.

Tak czy inaczej, jeśli masz już region.example.comustawiony i działa, to mogłaby rozważyć robi HTTP przekierowanie z example.comdo właściwego serwera WWW, na podstawie adresu IP klienta.

Tak właśnie robi Google, tak właśnie się google.co.ukwpisuję google.com.

Upewnij się także, że zapewniasz klientom dostęp do innych odmian. Klientom się to nie podoba, gdy są zmuszani do konkretnej witryny, czy to przez pomyłki w bazach danych geograficznych, czy po prostu dlatego, że muszą zobaczyć witrynę z innego regionu.


5

Nowsze CDN (Cloudflare, MaxCDN, fast.ly) używają anycast zarówno dla serwerów DNS, jak i rzeczywistych serwerów treści. Jest to nieco lepsze niż próba użycia źródłowego adresu IP zapytania DNS i ciągle zmieniającej się bazy danych mapowania.

Teoretycznie użycie anycast zarówno dla serwerów DNS, jak i serwerów treści pozwala samej sieci znaleźć „najbliższe” serwery do klienta. W praktyce jest to głównie prawda, ale zdarzają się dziwne przypadki, w których ludzie w Singapurze trafią na najnowocześniejsze serwery w Kalifornii zamiast w Hongkongu ze względu na ciągle zmieniające się relacje równorzędne między dostawcami usług internetowych.

Anycast jest trudny do zrobienia .

Starsze CDN, takie jak Akamai i Limelight, zazwyczaj używają anycast, aby dostać się do najbliższego serwera DNS, ale następnie podejmij podejście oparte na zgadywaniu na podstawie adresu IP. Z mojego doświadczenia nie działa to tak dobrze, zwłaszcza jeśli klient korzysta z serwerów DNS, które nie są w pobliżu pod względem topologii sieci. Jednak ogromna sieć CDN, taka jak Akamai, ma setki lokalizacji serwerów treści, więc zwrócenie odpowiedzi „wystarczająco blisko” skutkuje przyzwoitym doświadczeniem użytkownika. Oczywiście posiadanie setek witryn jest bardzo drogie, dlatego żadna z CDN-ów nie wybierała tej drogi. W związku z tym nie pobierają oni również tyle za usługę w większości równoważną.


1

Istnieje wiele sposobów na poradzenie sobie z tym, ale wszystkie sprowadzają się do ustalenia, gdzie jest adres IP i odpowiedniego wskazania go. Na przykład możesz podać zakres adresów IP dla Ameryki Północnej i jeden dla Europy. Jeśli adres IP żądający informacji (z DNS, twojego serwera, twojego serwera treści itp.) Mieści się w europejskim zasięgu, twoje europejskie serwery powinny otrzymać żądania.


Ben, co masz na myśli? Czy masz na myśli, że mam serwer DNS w USA i jeden na przykład w Wielkiej Brytanii? Kiedy myślę o DNS, po prostu ustawiam rekord A i gotowe. Jak mogę określić te serwery DNS na poziomie regionalnym?
Stewart Robinson

Uważam, że to, o czym mówi, to coś w rodzaju poglądów. W systemie DNS można ustawić różne widoki, które są zgodne na podstawie adresu IP klienta, który można z grubsza zidentyfikować jako należący do regionu geograficznego. Dostępnych jest wiele usług, z których można przesłać żądanie do interfejsu API i uzyskać lokalizację. Rozglądając się krótko, możesz spróbować hostip.info/dl/index.html w celu uzyskania opcji niższej / bez kosztów.
Greeblesnort

akurat natknąłem się na to podczas mojego wieczornego przeglądania: blogs.techrepublic.com.com/networking/…
Greeblesnort

@Stewart - nie, nie uruchamiałbyś jednego serwera DNS na region. Cóż, możesz, ale byłoby to w przypadku nadmiarowości, ponieważ sam system DNS jest oparty na lokalizacji. Odpowiedź @ greeblesnort jest prawie tak dobra, jak jego imię. :-)
Ben Doom

0

Możesz skonfigurować domyślną stronę główną w example.com. Przy pierwszej wizycie ktoś wybiera region, do którego chce zostać skierowany. W ten sam sposób działa www.ups.com.

Użytkownik może zaznaczyć pole wyboru, aby uczynić to jego / jej domyślnym wyborem od tego momentu, zapisując wybór w pliku cookie.

Daje to korzyść z używania DNS w sposób, w jaki został zaprojektowany zgodnie z Paulem Vixie, jednocześnie umożliwiając użytkownikowi dokonanie najdokładniejszej decyzji, do którego centrum danych powinien być skierowany.


0

Jeśli masz witrynę internetową obsługiwaną w wielu regionach, nie musisz nic robić na poziomie DNS. Możesz użyć interfejsu API, takiego jak http://ipinfo.io, aby uzyskać kraj odwiedzającego, a następnie przekierować go na odpowiedni adres URL.

Jeśli nie mówimy o witrynie ani żadnym protokole obsługującym przekierowania, istnieje kilka opcji na poziomie DNS. Możesz wykonać to samo wyszukiwanie kraju IP, a następnie zwrócić rekord, który pasuje do regionu (DNS oparty na geolokalizacji), lub możesz mieć mapę opóźnień między różnymi sieciami i zwrócić rekord, który reprezentuje najniższe opóźnienie dla użytkownika (opóźnienie oparty na DNS). Usługa DNS Route53 Amazon oferuje oba.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.