Як я можу надсилати відвідувачів на найближчий сервер за допомогою 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 для www.google.comвирішує www.l.google.com, але коли ви вирішите це, залежно від вашого місцезнаходження, ваш клієнт отримує інший набір IP-адрес. Це відбувається тому, що сервер імен, на який було отримано запит, www.l.google.comбув локальним сервером імен, відносно клієнта.


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

тож який реєстрант пропонує це рішення?
динамічний

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

@dmourati: чи не поширюватиме та не оновлюватиме інші сервери DNS? Я завжди вважав, що сервери DNS завжди поширюють інформацію, поки всі вони не синхронізуються.
Гуру Прасад

@GuruPrasad Кілька хостів (як правило, в різних географічних районах) отримують одну і ту ж єдину IP-адресу, а різні маршрути до адреси оголошуються через BGP. Маршрутизатори вважають це альтернативними маршрутами до одного і того ж пункту призначення, хоча насправді це маршрути до різних напрямків з однаковою адресою. Як завжди, маршрутизатори вибирають маршрут за будь-якою метрикою відстані, яка використовується (найменша вартість, найменш перевантажена, найкоротша). Вибір маршруту в цій настройці означає вибір пункту призначення. == wikipedia / anycast ----, але це працює краще в IPv6, ніж цей опис
Гарет Клаборн

2

Якщо ви хочете локалізувати сервери лише для країн Азії, Північної Америки та Європи, ви можете вирішити запускати як веб-сайт, так і свій DNS.

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

Можливо, ви зможете отримати очікувані результати у ≈90% випадків, відповівши на запити DNS від IP-адрес RIPE та AfriNIC із Aзаписом вашого хоста в Європі, запити від APNIC - хоста в Азії та запити IP-адрес від / 8 блоків, які адмініструють ARIN , LACNIC та решта / 8 адресного простору із Aзаписом вашого сервера в Північній Америці. Це призведе до помилкових результатів у певних ситуаціях (деякі / 8 блоків поділяються між Європою та Північною Америкою, дещо адресним простором є anycast тощо), але найгірше, що трапиться, - це додаткова затримка постраждалої сторони, тому не повинно бути ' не бути великою справою.

(І так, має бути спосіб полегшити ці речі, але поки що здається, що таких немає.)


2

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

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