Источник истины для домена
У каждого домена есть хотя бы один сервер, который знает о нём достоверно. Именно он и называется авторитетным: его ответ считается окончательным, а не пересказом чужих данных. Когда рекурсивный резолвер дошёл до конца цепочки, он получает адрес узла именно от такого сервера. В отличие от кэширующих серверов, авторитетный не запоминает чужие ответы, а хранит записи собственной зоны.
Зона DNS — это набор записей, за которые сервер отвечает: адреса узлов, псевдонимы, почтовые маршруты, текстовые метки. Обычно зона совпадает с доменом и всеми его поддоменами, если поддомен не делегирован отдельно.
Что находится в зоне
Каждая зона начинается с записи SOA (Start of Authority). В ней указан первичный сервер, контакт администратора, серийный номер зоны и временные параметры обновления. Далее идут записи NS, называющие серверы, ответственные за зону. Остальное содержимое: A и AAAA для адресов, CNAME для псевдонимов, MX для почты и TXT для служебных строк. Разбор основных типов вынесен на отдельные страницы: dns-zapis-a-aaaa, dns-zapis-cname, dns-zapis-mx, dns-zapis-txt.
Серийный номер важен: вторичные серверы сравнивают его со своим значением и понимают, что зона изменилась и её пора забрать заново.
Первичный и вторичный серверы
Для надёжности зону обслуживают минимум два сервера. Первичный держит редактируемую копию, вторичные получают её автоматически при помощи передачи зоны. Клиенту различия не видны: любой из серверов, перечисленных в NS, отвечает авторитетно. Сегодня многие провайдеры DNS используют более сложную схему с несколькими точками присутствия и распределением по anycast, но логика та же: одни и те же записи доступны с разных узлов.
Если все серверы зоны недоступны, домен для внешнего мира перестаёт разрешаться, даже при исправном сайте на хостинге. Поэтому серверы имён размещают в разных сетях.
Откуда сервер знает, что ему доверяют
Полномочия передаются сверху вниз. Оператор зоны верхнего уровня хранит записи NS для вашего домена, и именно они указывают, к кому идти дальше. Смена серверов имён у регистратора меняет эти записи в родительской зоне, и после этого мир начинает спрашивать новых хозяев зоны. Подробнее о ролях см. страницу registrator-domenov.
Поле авторитетности отмечается в ответах флагом aa. Кэширующий резолвер, отвечая из памяти, этот флаг не выставляет, и по нему видно, что вы получили ответ из первых рук.
Проверка на практике
Команда dig example.com NS покажет серверы имён домена. Затем можно спросить одного из них напрямую: dig @адрес_сервера example.com A. В выводе ищите флаг aa в строке flags. Аналогичную проверку выполняет nslookup в интерактивном режиме после команды server и смены сервера. Различие между ответом авторитетного сервера и кэша помогает понять, изменения ещё не дошли до резолверов или их вовсе не внесли в зону.
Частая ошибка: в записях NS у регистратора и внутри самой зоны указаны разные серверы. Тогда часть запросов уходит в одно место, часть в другое, и поведение выглядит случайным.
Когда ответ содержит лишнее или неполное
Ошибки в зоне проявляются по-разному. Если у имени пропала A-запись, авторитетный сервер вернёт пустой ответ с кодом успеха: такое имя существует, но записи нужного типа у него нет. Если имени нет вовсе, придёт код NXDOMAIN. Путаница между этими двумя случаями типична: администратор ищет проблему в DNS, хотя нужная запись просто не создана.
Иногда сервер отвечает, но с ошибкой SERVFAIL или REFUSED. Первое чаще сигнализирует о внутреннем сбое либо повреждённой зоне, второе о том, что сервер не настроен обслуживать эту зону или ограничивает запросы по адресу источника. Поэтому при разборе полезно опрашивать каждый сервер из списка NS по отдельности и сравнивать ответы и серийные номера SOA: расхождение показывает, что синхронизация между первичным и вторичным серверами не сработала.
Некоторые серверы дополнительно ограничивают частоту ответов, чтобы их нельзя было использовать для усиления атак. Если вы получаете отказ при частых запросах, это не поломка, а защитная настройка, и её следует учитывать при автоматических проверках.