Как я могу отправлять посетителей на ближайший сервер, используя DNS?


20

Есть ли способ локализовать записи DNS? Это означает, что пользователи из Азии разрешают mydomain.com другому IP-адресу, чем пользователи из США или Европы. Это было бы полезно, чтобы дать пользователям сервер поблизости. DNS - единственная техника, используемая до сих пор, что означает, что я не могу разместить какую-либо программную маршрутизацию или центральную систему, заменяющую DNS для решения этой проблемы.

Ответы:


20

Да, в настоящее время есть два популярных решения этой проблемы.

Первый называется Anycast, когда один и тот же IP-блок буквально используется в нескольких местах по всему миру. Другими словами, серверы имен для вашего домена всегда возвращают один и тот же IP-адрес, но этот IP-адрес фактически назначается более чем одному набору физических серверов.

Вы можете прочитать больше об этом здесь http://en.wikipedia.org/wiki/Anycast

Во втором методе снова используется AnyCast, однако на этот раз диапазон IP-адресов, к которому обращаются, относится к самим нашим серверам имен. Поскольку серверы имен будут запрашивать только у тех клиентов, которых они тоже наиболее близки (что определяется магией BGP), они могут сами возвращать IP-адреса, которые являются логически локальными для клиента.

Примером этого является домен l.google.com от Google.

От хозяина в Австралии

crimson:~ dave$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com is an alias for www-notmumbai.l.google.com.
www-notmumbai.l.google.com has address 66.249.89.99
www-notmumbai.l.google.com has address 66.249.89.147
www-notmumbai.l.google.com has address 66.249.89.103
www-notmumbai.l.google.com has address 66.249.89.104

От хозяина в США

[dave@odessa ~]$ host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 74.125.95.99
www.l.google.com has address 74.125.95.147
www.l.google.com has address 74.125.95.104
www.l.google.com has address 74.125.95.106
www.l.google.com has address 74.125.95.105
www.l.google.com has address 74.125.95.103

Итак, CNAME for www.google.comразрешается www.l.google.com, но когда вы решаете это, в зависимости от вашего местоположения, ваш клиент получает другой набор IP-адресов. Это связано с тем, что сервер имен, получивший запрос, www.l.google.comбыл локальным сервером имен относительно клиента.


5
Этот ответ технически отвечает на вопрос, но я думаю, что он довольно бесполезен с точки зрения того, чтобы быть реальным ответом на реальную проблему: большинство сторон не имеют anycast, поэтому ваш ответ недоступен для всех таких сторон.
CNST

так какой владелец регистрации предлагает это решение?
динамичный

Также стоит отметить, что DNS имеет эту функцию изначально. Поместите DNS-сервер в регион с записью, указывающей на веб-сервер в этом регионе. Повторите в других регионах. Прибыль.
dmourati

@dmourati: не будет ли это распространять и обновлять другие DNS-серверы? Я всегда предполагал, что DNS-серверы всегда распространяют информацию, пока все они не синхронизируются.
Гуру Прасад

@GuruPrasad Несколько хостов (обычно в разных географических областях) получают один и тот же IP-адрес одноадресной рассылки, и через BGP объявляются разные маршруты к этому адресу. Маршрутизаторы считают их альтернативными маршрутами к одному и тому же пункту назначения, хотя на самом деле они являются маршрутами к различным пунктам назначения с одним и тем же адресом. Как обычно, маршрутизаторы выбирают маршрут по используемой метрике расстояния (наименее затратная, наименее перегруженная, кратчайшая). Выбор маршрута в этой настройке равносилен выбору пункта назначения. == Википедия / Anycast ---- но он работает лучше в IPv6, чем это описание
Гарет Клаборн

2

Если вы хотите локализовать серверы только для Азии, Северной Америки и Европы, вы можете сами запустить веб-приложение и DNS.

С DNS вы можете использовать что-то вроде подхода Split-Horizon DNS , чего можно достичь либо с помощью встроенных функций вашего DNS-сервера (они могут называть его GeoDNS ), либо с помощью брандмауэра , который перенаправляет разные диапазоны IP-адресов на разные рабочие места. экземпляры вашего DNS-сервера (вы можете запустить несколько разных копий сервера на вашей локальной машине, которые будут прослушивать разные локальные IP-адреса).

Вы, вероятно, могли бы получить ожидаемые результаты в ≈90% случаев, отвечая на запросы DNS с IP-адресов RIPE и AfriNIC с Aзаписью вашего хоста в Европе, запросов от APNIC - хоста в Азии и запросов с IP-адресов с Блоки / 8, администрируемые ARIN , LACNIC и остальным адресным пространством / 8 с Aзаписью вашего сервера в Северной Америке. В некоторых ситуациях это может привести к неверным результатам (некоторые блоки / 8 совместно используются между Европой и Северной Америкой, некоторое адресное пространство - произвольным и т. Д.), Но худшее, что может случиться, - это некоторая дополнительная задержка для пострадавшей стороны, поэтому не следует не будет большого дела.

(И, да, должен быть способ облегчить эти вещи, но, похоже, пока нет.)


2

У меня была такая же проблема. У нашей компании есть клиенты в России и Китае, и им всем нужно очень быстрое подключение к нашему сервису. Мы использовали Amazon Route 53 Geo dns и только что создали две записи: одна будет направлять клиентов из Китая в наш кластер в Токио и клиентов из России в Лондон.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.