The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Google public DNS и определение страны пользователя. Как?"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (DNS / Linux)
Изначальное сообщение [ Отслеживать ]

"Google public DNS и определение страны пользователя. Как?"  +/
Сообщение от Александр email(??) on 12-Ноя-12, 21:23 
Для сайта с разнесенными серверами настроили GeoDNS на своем ДНС-сервере. Определяем на Bind-е страну по IP-адресу клиента, используя GeoIP базу от Maxmind.

Для домена emuzo.net на нс-сервере ns1.emuzo.net и ns2.emuzo.net отдаем ip (IP-адреса 127.х.х.х прописаны на ДНС-серверах в наглядных целях.):
127.0.1.1 для США
127.0.1.2 для Германии
127.0.1.3 для Украины
127.0.1.4 для России
127.0.1.100 для всех остальных стран

Всё работает, но вместе с тем обнаружили недостоверность определения страны пользователя при использовании им ДНС-серверов от Google (8.8.8.8).
Так, например, при использовании Google Public DNS в Украине, рекурсивный днс-сервер гугла 8.8.8.8 обращается к нашему Bind-у с IP-адресов, которые определяются по базе Maxmind либо как DE, либо как US, т.к. входят в блоки гугловских IP.
Соотвественно и пользователь направляется на 127.0.1.1 (США) или 127.0.1.2 (Германия) вместо 127.0.1.3 (Украина).

Запрос из Украины с использованием ДНС-ов провайдера:
nslookup emuzo.net
╤хЁтхЁ: ns3.farlep.net
Address: 213.130.4.1
Не заслуживающий доверия ответ:
╚ь : emuzo.net
Address: 127.0.1.3 — Украина

Запрос из Украины с использованием ДНС-ов Google Public DNS:
nslookup emuzo.net 8.8.8.8
╤хЁтхЁ: google-public-dns-a.google.com
Address: 8.8.8.8
Не заслуживающий доверия ответ:
╚ь : emuzo.net
Address: 127.0.1.2 — Германия

Попробовали платный сервис. При использовании функции GeoDNS от ведущего сервиса ДНС-хостинга Zerigo.net ситуация аналогичная.
В настройках сервиса прописал нижеследующие IN A записи для домена emuzo.info:
127.0.0.1 для США
127.0.0.2 для Германии
127.0.0.3 для Украины
127.0.0.4 для России
127.0.0.5 для остальной европы
127.0.0.100 для всех остальных стран

Запрос из Украины с использованием ДНС-ов провайдера:
nslookup emuzo.info
╤хЁтхЁ: ns3.farlep.net
Address: 213.130.4.1
Не заслуживающий доверия ответ:
╚ь : emuzo.info
Address: 127.0.0.3 — Украина

Запрос из Украины с использованием ДНС-ов Google Public DNS:
nslookup emuzo.info 8.8.8.8
╤хЁтхЁ: google-public-dns-a.google.com
Address: 8.8.8.8
Не заслуживающий доверия ответ:
╚ь : emuzo.info
Address: 127.0.0.1 — США

Мы уже было смирились с этой проблемой как с издержками GeoDNS, НО случайно попался в поле зрения сервис CDN (сеть доставки контента, состоящая из разнесенных по миру серверов), который эту задачу решает.

Эта CDN сеть для наших задач предоставила субдомен 493511490.r.cdnua.net
записи для него хранятся на ns1.worldcdn.net (69.168.228.1), ns2.worldcdn.net (69.168.229.1)

И эти DNS-сервера, в отличие от наших и Zerigo.net, корректно направляют пользователя на сервера в нужной стране даже при использовании юзером Днс-ов от Гугла.

Запрос из Украины с использованием ДНС-ов провайдера:
nslookup 493511490.r.cdnua.net
╤хЁтхЁ: ns3.farlep.net
Address: 213.130.4.1
Не заслуживающий доверия ответ:
╚ь : 493511490.r.cdnua.net
Address: 82.118.16.222 — Украина

Запрос из Украины с использованием ДНС-ов Google Public DNS:
nslookup 493511490.r.cdnua.net 8.8.8.8
╤хЁтхЁ: google-public-dns-a.google.com
Address: 8.8.8.8
Не заслуживающий доверия ответ:
╚ь : 493511490.r.cdnua.net
Address: 82.118.16.222 — Украина

направляет на 82.118.16.222, расположенный в Харькове. Иногда бросает на Киевский сервер 77.222.131.2.

А теперь внимание вопрос: КАК это работает?

была идея, что Google использует под каждую страну несколько IP, с которых рекурсивно обращается к авторитативному серверу. А CDN сеть знает эти адреса.
Но глубокий анализ ДНС-запросов другого крупного сайта показал, что, например гугловский ip 74.125.189.18, фактически находящийся предположительно в германии используется в рекурсивных ДНС-запросах от пользователей не только Украины, но и Алжира, Египта, Пакистана и др. стран.

Помогите, пожалуйста, разобраться.

Спасибо всем, кто дочитал до конца! )

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Google public DNS и определение страны пользователя. Как?"  +/
Сообщение от PavelR (ok) on 13-Ноя-12, 05:50 
> Помогите, пожалуйста, разобраться.

Вам религия мешает загуглить поиск по ключевым словам "google dns cdn" ?
Всё просто. гугл передает адрес IP-сети пользователя в расширенной информации запроса.

Патчик прикольный на эту тему: http://wilmer.gaa.st/edns-client-subnet/

> Спасибо всем, кто дочитал до конца! )

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Google public DNS и определение страны пользователя. Как?"  +/
Сообщение от Александр email(??) on 13-Ноя-12, 13:33 
> Вам религия мешает загуглить поиск по ключевым словам "google dns cdn" ?
> Всё просто. гугл передает адрес IP-сети пользователя в расширенной информации запроса.
> Патчик прикольный на эту тему: http://wilmer.gaa.st/edns-client-subnet/

Большое спасибо, ушел копать дальше.
Искал по разному "Google Public DNS", "GeoDNS"...
По "Google DNS CDN" не сообразил, или может действительно что-то с религией )

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру