У меня есть локальный кеширующий 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.
Более подробную информацию о том, что происходит на корневом уровне, можно найти в документации. Вот