Як зробити регіональний DNS, як це робить CDN?


15

Я думаю, це питання може бути вирішеним, як працюють CDN на рівні DNS, але справжньою проблемою є те, що моя компанія має центри обробки даних на трьох континентах, і ми повинні мати europe.example.com us.example.com та asia.example .com

CDN зазвичай надсилає вас до локального центру обробки даних, який я думаю, залежно від вашої IP-адреси. Це має бути DNS-річ, коли сервер DNS у США надсилає вас до центру обробки даних у США для того ж самого сайту example.com DNS-пошуку?

Я помиляюся? Якщо я помиляюся з цього приводу, як би це зробити ефективно та, якщо можливо, без центральних серверів (не DNS)?


Відповіді:


12

Проблема з CDN полягає в тому, що вони не спрямовують вас на основі вашої власної IP-адреси - вони спрямовують вас на основі IP-адреси вашого DNS-сервера ... Це може бути абсолютно неправильно. І читайте статтю Пола Віксі про АСМ , це чуття грошей.

У будь-якому випадку, якщо ви вже region.example.comналаштувались та працюєте, ви можете розглянути можливість переадресації HTTP з example.comвідповідного веб-сервера на основі IP-адреси клієнта.

Це в значній мірі те, що робить Google, так я в кінцевому підсумку google.co.ukнабрав google.com.

Також переконайтесь, що ви надаєте засоби для клієнтів, щоб дістатися до інших варіантів. Клієнтам це не подобається, коли їх примушують до певного сайту, будь то помилки в базах даних Geo чи просто тому, що їм насправді потрібно бачити сайт з іншого регіону.


5

Новіші CDN (Cloudflare, MaxCDN, fast.ly) використовують anycast як для DNS, так і для фактичних серверів вмісту. Це дещо краще, ніж намагатися використовувати вихідний IP запиту DNS та базу даних, що постійно змінюється.

Теоретично використання anycast як для DNS, так і для контентних серверів дозволяє самій мережі знаходити "найближчі" сервери до клієнта. На практиці це здебільшого вірно, але виникають деякі дивні випадки, коли люди в Сінгапурі вдарять про крайові сервери в Каліфорнії замість Гонконгу через постійно мінливі стосунки між провайдерами.

Anycast важко зробити добре .

Старіші CDN, такі як Akamai та Limelight, як правило, використовують anycast для того, щоб перейти до найближчого сервера DNS, але потім застосувати підхід, орієнтований на джерело-IP. З мого досвіду, це не так добре, особливо якщо клієнт використовує DNS-сервери, які фактично не знаходяться поблизу з точки зору топології мережі. Однак величезний створений CDN, як Akamai, має сотні локацій на сервері вмісту, тому повернення відповіді "достатньо близько" призводить до гідного користувальницького досвіду. Очевидно, що існування сотень сайтів є дуже дорогим, тому жоден із всенаціональних CDN не вибрав цей маршрут. Отже, вони також не платять стільки за послуги, що еквівалентні в основному.


1

Існує декілька способів вирішити це, але всі вони зводиться до з'ясування, де знаходиться IP-адреса, і вказують її відповідно. Наприклад, ви можете вказати діапазон IP-адрес для Північної Америки та одного для Європи. Якщо IP-запит, що запитує інформацію (від DNS, вашого веб-сервера, вашого сервера вмісту тощо), потрапляє в європейський діапазон, то ваші європейські сервери повинні отримувати запити.


Бен, що ти маєш на увазі? Ви маєте на увазі, що у мене є DNS-сервер у США та один, наприклад, у Великобританії. Коли я думаю про DNS, я просто встановлюю свій запис A і я закінчую. Як я можу вказати ці сервери DNS на регіональній основі?
Стюарт Робінсон

Я вважаю, що він має на увазі щось схоже на погляди. Ви можете налаштувати різні погляди всередині DNS, які збігаються на основі IP-адреси клієнта, яку можна приблизно визначити як належність до географічного регіону. Існує багато служб, за якими можна подати запит до API та отримати місцезнаходження. Коротко оглянувшись , ви можете спробувати hostip.info/dl/index.html для варіанту з меншою ціною без витрат.
Greeblesnort

щойно трапилося через це в моєму вечірньому перегляді: blogs.techrepublic.com.com/networking/…
Greeblesnort

@Stewart - ні, ви б не запускали один DNS-сервер на регіон. Ну, ви могли, але це було б для надмірності, оскільки сама система DNS є розташуваною. @ greeblesnort відповідь майже так само добре, як його ім'я. :-)
Ben Doom

0

Ви можете налаштувати головну сторінку за замовчуванням на example.com. Перший раз, коли хтось відвідує, вони вибирають, до якого регіону вони хочуть бути спрямовані. Це те саме, що працює www.ups.com.

Користувач може встановити прапорець, щоб зробити цей свій вибір за замовчуванням з цього моменту, тим самим зберігаючи виділення у файлі cookie.

Це дає вам перевагу використовувати DNS таким чином, як він був розроблений відповідно до Пола Віксі, при цьому дозволяє вашому користувачеві зробити найбільш точне рішення, до якого центру обробки даних він повинен бути спрямований.


0

Якщо у вас є веб-сайт, який розміщений у кількох регіонах, вам не потрібно нічого робити на рівні DNS. Ви можете використовувати API, наприклад http://ipinfo.io, щоб отримати країну відвідувача, а потім перенаправити їх на відповідну URL-адресу.

Якщо ми не говоримо про веб-сайт або будь-який протокол, який обробляє переадресацію, то на рівні DNS є кілька варіантів. Ви можете виконати той самий пошук IP-адреси, а потім повернути запис, який відповідає регіону (DNS на основі геолокації), або ви могли мати карту затримки між різними мережами та повернути запис, який представляє найменшу затримку для користувача (затримка на основі DNS). Служба DNS Amazon Route53 пропонує обидва.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.