Вопрос или проблема
Из любопытства, я проверяю DNS-пакеты в Wireshark. Я вижу, что есть DNS-запрос от хоста и затем DNS-ответ от DNS-сервера. Все идет как и ожидалось.
Однако, если вы проверите запрос более подробно, вы увидите, что сервер также отправляет NS (авторитативный сервер имен). Мой вопрос: зачем?
Как хост, меня интересует только IP. Это главная задача DNS – преобразование имени в IP-адрес.
Почему, как хосту, мне нужна информация NS?
Традиционно серверы имен не отправляют короткий ответ на запрос, а RFC 1034/1035 совместимый полный ответ, который включает раздел о полномочиях, содержащий ресурсные записи, указывающие на авторитативные серверы имен.
Причина, вероятно, в том, что с распределенной и делегированной структурой DNS в то время казалось хорошей идеей включить “источник правды” в ответы.
Правка: Кстати: отправка раздела о полномочиях является совместимой с RFC, но не обязательной для всех ответов на запросы.
В BIND это поведение может быть настроено директивой minimal-responses yes | no;
, где по умолчанию установлено no
и разделы Authority и Additional ответа на запрос всегда будут полностью заполнены.
Другие серверы имен, такие как CloudFlare, AWS Route 53, Infoblocks и, вероятно, другие, всегда будут отправлять такие минимальные ответы по умолчанию. Публичные резолверы Google вернут раздел Authority, если он доступен.
Я думаю, что происхождение этой традиции включения как раздела о полномочиях, так и фактического ответа на запрос, находит свои корни в (псевдо) коде из устаревшего RFC882 страниц 15-16
Если сервер имен не является авторитетным, код копирует Ресурсные записи для более близкого сервера имен в ответ. Последняя часть кода копирует все соответствующие ресурсные записи в ответ.
Сервер не знает, приходит ли запрос от конечного клиента или это рекурсивный запрос от другого сервера имен. Если это другой сервер имен, он может кешировать раздел о полномочиях и запрашивать эти серверы имен напрямую в будущем.
Я полагаю, что это было первоначальное обоснование в протоколе, но это имеет последствия для безопасности. Ответ может включать раздел о полномочиях, который перечисляет недопустимые серверы имен, и это использовалось в атаках на подделку кеша. Таким образом, серверы имен обычно не кешируют записи NS, если только они не являются записями делегации для поддомена запрашиваемого домена.
.
Ответ или решение
Теория:
Система доменных имен (DNS) представляет собой критически важную часть инфраструктуры интернета, обеспечивая механизм преобразования доменных имен в IP-адреса. Основное назначение DNS заключается в облегчении доступа к ресурсам сети через доменные имена, удобные для пользователя, вместо использования сложных числовых IP-адресов. Однако DNS — это не только преобразование имен; это также сложная иерархическая структура, состоящая из множества уровней делегирования ответственности за различные зоны. В этом контексте информирование о полномочиях серверов имен (NS) в DNS-ответах служит важной технической цели.
Пример:
Когда клиент запрашивает имя через DNS, он может взаимодействовать как с авторитетными, так и с рекурсивными серверами имен. В этом процессе ответ DNS может включать секцию с информацией об авторитетных серверах имен для запрашиваемого домена. Включение этой информации позволяет рекурсивным серверам кэшировать данные об авторитетных серверах, что значительно ускоряет последующие запросы и позволяет минимизировать нагрузку на верхние уровни DNS-иерархии.
Применение:
Предоставление информации о полномочиях в DNS-ответах имеет практическое значение за пределами первоначального преобразования имени в IP-адрес. Например, если запрос не может быть полностью обработан текущим сервером из-за отсутствия данных, информация об авторитетных серверах имен направляет последующие запросы к наиболее надежным источникам. Это особенно полезно для рекурсивных серверов, поскольку они могут запрашивать информацию напрямую у авторитетного сервера, что улучшает производительность и обеспечивает актуальность всей информации. Дополнительно, информация об авторитетных серверах может обеспечивать резервную защиту против некоторых форм атак на сеть, таких как кеш-поинсонг, хотя это также представляет потенциальные вектора для других атак, требующих особого внимания и защиты.
Таким образом, включение информации о полномочиях имен — это не только историческое решение согласно RFC-стандартам (включая RFC 1034 и RFC 1035), но и необходимая часть сложной экосистемы DNS, играющая ключевую роль в обеспечении устойчивости, производительности и надежности сетевого взаимодействия.