Проверка DNS-записей домена

Запросите DNS-записи любого домена или имени хоста и посмотрите значения и TTL в том виде, в каком публичные резолверы возвращают их прямо сейчас.

Что запрашивает эта проверка DNS

Инструмент запрашивает у публичных рекурсивных резолверов типы записей, важные в повседневной работе: A и AAAA для адресов IPv4 и IPv6, NS для авторитетных серверов имён, MX для маршрутизации почты, TXT для SPF, подтверждения домена и подобных данных, CAA для ограничений на удостоверяющие центры, SOA для метаданных зоны и CNAME для псевдонимов.

Каждый ответ показывается вместе с TTL и резолвером, который его вернул. Если записи какого-то типа не существует, результат говорит об этом прямо, потому что отсутствие записи часто и есть тот ответ, который вы искали.

Типы записей простыми словами

Записи A и AAAA сопоставляют имя с адресами. CNAME говорит, что имя является псевдонимом другого имени; она не может соседствовать с другими записями на том же имени, поэтому корневой домен обычно не может быть CNAME, а провайдеры предлагают вместо этого ALIAS или CNAME flattening. NS-записи перечисляют серверы, авторитетные для зоны. MX-записи перечисляют почтовые серверы с приоритетом, и первым пробуется сервер с наименьшим числом.

TXT-записи содержат произвольный текст и сегодня используются главным образом для политик SPF и токенов подтверждения владения. CAA-записи называют удостоверяющие центры, которым разрешено выпускать сертификаты для домена. SOA-запись содержит серийный номер зоны и таймеры, включая значение, определяющее, как долго кэшируется ответ о несуществующем имени.

TTL, кэширование и миф о распространении

Изменения DNS не расходятся по интернету волной. Когда вы меняете запись, ваши авторитетные серверы начинают отдавать новое значение почти сразу. Время уходит на то, что резолверы по всему миру закэшировали старый ответ и вправе хранить его, пока не истечёт TTL. Запись с TTL 3600 может отдаваться из кэша до часа после изменения, с TTL 300 — пять минут.

Поэтому процент «распространения» не имеет смысла: нет фиксированного множества серверов, которые можно пересчитать, есть только кэши, истекающие в разные моменты. Полезные вопросы такие: что авторитетные серверы возвращают сейчас, каким был старый TTL и как давно сделано изменение. Отрицательные ответы тоже кэшируются, на срок, заданный в SOA-записи; поэтому совсем новая запись может какое-то время казаться отсутствующей резолверу, который запрашивал это имя незадолго до её появления.

Это не копия файла зоны

Проверка DNS задаёт конкретные вопросы о конкретных именах. Она не перечисляет все записи зоны и не может обнаружить поддомены, о которых вы не спрашивали. Полная передача зоны закрыта для посторонних практически на любом правильно настроенном сервере имён. Чтобы проверить поддомен вроде mail.example.com или служебную запись вроде _dmarc.example.com, запросите именно это имя.

Ответы могут на законных основаниях различаться в зависимости от местоположения. CDN и провайдеры управляемого DNS возвращают разные адреса в зависимости от того, откуда пришёл запрос. Два инструмента, показывающие разные A-записи для одного имени, не обязательно противоречат друг другу.

Типичные проблемы, которые выявляет проверка DNS

Типичные находки: NS-записи в зоне не совпадают с делегированием в реестре; MX-записи указывают на имя хоста без адреса или на CNAME; в TXT больше одной SPF-записи; забытая AAAA-запись указывает на старый сервер, хотя A-запись обновили; CAA-записи блокируют удостоверяющий центр, которым вы пытаетесь воспользоваться; очень большие TTL у записей, которые вы собираетесь переносить.

Как пользоваться этим инструментом

  1. Введите домен. Введите или вставьте доменное имя, например example.com. Подойдёт и полный URL: схема, путь и начальное www будут отброшены.
  2. Запросите записи. Инструмент запрашивает у публичных резолверов записи A, AAAA, NS, MX, TXT, CAA, SOA и CNAME.
  3. Посмотрите значения и TTL. Каждая запись показана со значением и TTL. Типы записей, запрос которых не удался, названы явно, а не показаны как пустые.

То же самое в командной строке

Та же проверка из терминала. В командах используется example.com: замените его своим именем.

  • Один тип записиdig example.com MX +short
  • Несколько типов с TTLdig example.com A AAAA NS MX TXT +noall +answer
  • Запрос к конкретному резолверуdig @1.1.1.1 example.com A +short
  • Windowsnslookup -type=MX example.com

Частые вопросы

Сколько времени занимают изменения DNS?

Авторитетные серверы обычно начинают отдавать новое значение в пределах секунд или минут. Резолверы, закэшировавшие старое значение, могут хранить его до истечения прежнего TTL. Если старый TTL был один час, ждите до часа; смена NS-серверов может занять больше, потому что у записей делегирования в реестре TTL часто составляет сутки или двое.

Почему я вижу другой IP-адрес, чем показывает другой инструмент?

Многие домены используют DNS с учётом географии или нагрузки, поэтому ответ зависит от того, какой резолвер спрашивает и откуда. Кэши с разным временем истечения тоже дают временные расхождения сразу после изменения.

Что такое TTL в DNS?

Time to live — это число секунд, в течение которых резолвер может хранить запись в кэше, прежде чем запросить её снова. Малые TTL ускоряют вступление изменений в силу ценой большего числа запросов; большие TTL снижают нагрузку и повышают устойчивость, но замедляют изменения.

Можно ли через проверку DNS получить список всех поддоменов?

Нет. DNS отвечает на вопросы об именах, которые вы уже знаете. Для перечисления зоны нужна передача зоны, которую операторы закрывают для публики. Инструменты, показывающие поддомены, опираются на другие источники, например на журналы Certificate Transparency.

Что означает NXDOMAIN?

Это значит, что запрошенного имени в DNS не существует вовсе. Это не то же самое, что имя, которое существует, но не имеет записи запрошенного типа: в таком случае возвращается пустой ответ без ошибки.

Почему моя новая запись ещё не видна?

Если резолвер запрашивал имя незадолго до того, как вы создали запись, он закэшировал отрицательный ответ и будет хранить его в течение времени отрицательного кэширования, заданного в SOA-записи зоны. Это проходит само; прямой запрос к авторитетному серверу имён подтвердит, что запись уже работает.