Назад | Перейти на главную страницу

Кеширование DNS. Как он выбирает, какой DNS-сервер запрашивать?

У меня есть локальный кеширующий DNS-сервер (с именем).

Скажем, я хочу разрешить домен blizzard.com. Как моему локальному DNS удается найти правильный сервер для запроса этого домена? Есть ли где-нибудь список других DNS-серверов? Могу ли я их изменить (скажем, на Google 8.8.8.8)?

Спасибо!

DNS - это четко определенный протокол, а кеширование - это не волшебный черный ящик - все поведение четко определено.

Если вашему кэширующему серверу необходимо получить новый RR, он будет проходить по иерархии итеративно, как это делал бы любой DNS-сервер (при условии, что у вас не настроены серверы пересылки, чего не следует), а затем запросит сервер имен, который является полномочным для blizzard.com. для RR.
Это значение используется в течение времени, указанного в поле TTL RR.

Разное объяснил более подробно здесь: http://www.zytrax.com/books/dns/ch2/ и тут: http://en.wikipedia.org/wiki/Domain_Name_System#DNS_resolvers

Как моему локальному DNS удается найти правильный сервер для запроса этого домена?

он спрашивает.

Есть ли где-нибудь список других DNS-серверов?

Да, корневой список ИЛИ список апстрима. В корневом списке он спросит "." корневой сервер (один из них) для серверов для com. домена, то для blizzard.com. соответствующие сервера и так далее.

Выполнение следующей команды даст вам хорошее представление о том, что происходит.

dig +trace example.com

Официальный список корневых серверов поддерживается Вот. Это файл «подсказок», который большинство рекурсивных серверов будет использовать, чтобы выяснить, где начать поиск доменов. Это очень редко меняется. Большинство изменений, которые я недавно вспоминаю, были просто добавлены записи AAAA для IPv6.

Более подробную информацию о том, что происходит на корневом уровне, можно найти в документации. Вот