Мониторинг DNS
DNS-монитор запрашивает у одного имени одну запись и сообщает, что вернулось. Он отвечает на два вопроса: резолвится ли имя вообще и резолвится ли оно в то значение, которое вы ожидаете. О сервисе за этим именем он не говорит ничего — это другой монитор.
Для чего подходит
Имя перестало резолвиться
Удалённая зона, сломанное делегирование после переезда к другому регистратору, замолчавшие nameserver'ы. Серверы живы, а достучаться до них не может никто. DNS-монитор называет причину одной строкой вместо часа догадок.
Запись изменилась без вашего ведома
Запишите ожидаемое значение — и монитор упадёт в тот момент, когда ответ перестанет его содержать. Так ловятся угнанный или взломанный аккаунт, коллега, правивший не ту зону, наполовину откатившийся переезд и CDN или SaaS-провайдер, который перевёл ваше имя на новый адрес.
Записи, на которые не смотрят, пока не сломается
MX, по которым ходит ваша почта, TXT с SPF, DKIM или подтверждением домена у провайдера, NS с делегированием, CNAME на CDN. Об их пропаже никто не предупреждает — почта просто перестаёт доходить, а сервис тихо сообщает, что домен больше не подтверждён.
Сколько занимает резолв
Каждая проверка записывает время ответа. Медленный DNS добавляется к началу каждого запроса посетителя и при этом не виден в серверных замерах.
Для чего не подходит
DNS-монитор читает запись. Он никогда не подключается к тому, на что она указывает:
| Что нужно узнать | Что использовать |
|---|---|
| Скоро ли истекает регистрация домена? Это самая частая путаница. Записи прекрасно резолвятся вплоть до дня, когда реестр заберёт домен — DNS-монитор не предупредит заранее, он упадёт вместе со всем остальным | Монитор WHOIS |
| Работает ли сайт за этим именем? A-запись резолвится идеально, пока веб-сервер отдаёт всем 502 | Монитор HTTP / HTTPS |
| Принимает ли почтовый сервер письма? MX-запись говорит только о том, какой хост должен их принимать | Монитор SMTP на хост, указанный в MX |
| Нет ли моего IP или домена в спам-блэклистах? Блэклисты публикуются через DNS, но проверка означает опрос десятков провайдеров, а не одной записи | Монитор DNSBL |
| Доступен ли хост? Имя может резолвиться в адрес, который ни на что не отвечает | Монитор Ping |
| Жив ли каждый ваш nameserver и отвечают ли они одинаково? Один монитор спрашивает один сервер, а не все по очереди | По DNS-монитору на каждый nameserver: его IP в поле «DNS-сервер» и одинаковые ожидаемые значения. Монитор UDP или TCP на порт 53 по-прежнему покажет только, что порт отвечает, но не что отвечает сервер |
Что делает каждая проверка
DNS проверяется только с чекеров, а не с сервера PingZen: по умолчанию с московского чекера или с тех чекеров, которые вы выберете в форме монитора. Монитор, созданный без чекера через API, MCP или импорт CSV, получает публичный чекер, в первую очередь московский.
По умолчанию — один запрос выбранного вами типа записи к Google Public DNS (8.8.8.8). Если 8.8.8.8 не ответил вовремя, вернул SERVFAIL не из-за DNSSEC, отказал в запросе или не дал пригодного ответа, проверка задаёт тот же вопрос ещё раз через Cloudflare (1.1.1.1) и судит по его ответу, так что из-за сбоя одного резолвера проверка не падает. NXDOMAIN, отсутствие записи, сбой DNSSEC и ответ, не совпадающий с ожидаемыми значениями, считаются окончательными: второй раз такой запрос не задают. Если 8.8.8.8 подвёл, а в ответе 1.1.1.1 нет ожидаемого значения, текст ошибки называет оба резолвера: Не найдены ожидаемые значения: 9.9.9.9. Получено: 1.2.3.4 (8.8.8.8: таймаут 10 с; 1.1.1.1: ответил).
Если у монитора свой DNS-сервер, проверка спрашивает только его и судит по его ответу. В обоих случаях проверка записывает:
- Полученные значения — весь список вернувшихся записей, он сохраняется с каждым результатом проверки
- Время резолва — сколько занял ответ, в миллисекундах
По умолчанию запрос идёт через публичный рекурсивный резолвер, поэтому вы видите то, что видит публичный интернет, вместе с закэшированными ответами. Запись, изменённая минуту назад, может появиться здесь только после истечения старого TTL. Для монитора это обычно и нужно: он показывает ответ, который на самом деле получают ваши пользователи. Если у монитора свой DNS-сервер, вы видите ответ именно этого сервера.
Типы записей
| Тип | Что им смотрят |
|---|---|
A | IPv4-адрес, на который указывает имя. Значение по умолчанию и правильный выбор, если вы не уверены |
AAAA | IPv6-адрес. Отдельный монитор имеет смысл: AAAA может отсутствовать или быть неверной, пока с A всё в порядке |
CNAME | Цель алиаса — CDN, балансировщик, хост SaaS-сервиса |
MX | Маршрутизация почты. Значения записываются вместе с приоритетом, например 10 mail.example.com. |
TXT | SPF, DKIM, DMARC и строки подтверждения домена. Запись, разбитая на несколько строк, записывается склеенной через пробел |
NS | Делегирование — какие nameserver'ы должны быть авторитативными для зоны |
SOA | Собственная запись зоны. Чаще всего используется как доказательство, что зона существует и отдаётся |
PTR | Обратный резолв адреса. По нему почтовые серверы судят об отправителе |
Этими восемью список исчерпывается. Любой другой тип — SRV, CAA и прочие — не даст сохранить монитор ни через API, ни через MCP: в ответе придёт сообщение со списком поддерживаемых типов.
Ожидаемые значения
Если список ожидаемых значений пуст, монитор спрашивает только о том, резолвится ли имя. Если он заполнен, каждое перечисленное значение обязано оказаться в ответе.
- Каждое перечисленное значение должно целиком совпасть с одним из значений ответа. Это не поиск подстроки и не шаблон.
- В ответе может быть больше записей, чем вы перечислили. Две A-записи при одной ожидаемой — это нормально, важно лишь наличие перечисленной.
- Если какого-то значения нет, проверка падает, а сообщение об ошибке показывает и чего не хватило, и что пришло вместо этого — новое значение видно прямо на странице монитора.
- Полученные значения записываются и при упавшей проверке, так же как при успешной.
- Имена совпадают в любом регистре, с точкой на конце и без неё:
Mail.Example.comсовпадёт с ответомmail.example.com.. ЗначенияTXTсравниваются ровно так, как написаны, с учётом регистра и пробелов. У значенийMXвпереди стоит приоритет, его тоже пишите:10 mail.example.com. - До 100 значений на монитор.
Ожидаемые значения задаются в форме монитора, по одному в строке, а также через API или инструменты MCP.
Логика статусов
DNS-монитор либо работает, либо нет. Состояния деградации у него нет, порога на медленный ответ тоже: долгий, но правильный ответ — это по-прежнему UP. Ответ, не совпадающий с ожидаемыми значениями, — такой же DOWN, красный, как любая другая неудача, но на бейдже написано «Ответ не совпадает» («Не совпадает», где мало места): так его не спутать с именем, которое перестало резолвиться.
| Результат | Статус |
|---|---|
| Запись вернулась, ожидаемые значения не заданы | UP |
| Запись вернулась и содержит все ожидаемые значения | UP |
| В ответе не хватает ожидаемого значения | DOWN |
| Имя не существует (NXDOMAIN) | DOWN |
| Имя есть, но записи такого типа у него нет | DOWN |
| Подпись DNSSEC домена не проходит проверку. Резолвер называет причину расширенным кодом (EDE), он виден в тексте ошибки: например, EDE 9, если не хватает ключа DNSKEY | DOWN |
| DNS-серверы домена дали сбой (SERVFAIL), и повторный запрос через 1.1.1.1 не помог | DOWN |
| Резолверы отказали в запросе или оказались недоступны | DOWN |
| 8.8.8.8 не ответил вовремя, а 1.1.1.1 тоже не дал пригодного ответа или его не спрашивали | TIMEOUT |
| DNS-сервер, указанный в мониторе, отказал в запросе или оказался недоступен | DOWN |
| DNS-сервер, указанный в мониторе, не ответил вовремя | TIMEOUT |
У каждой из этих неудач своя причина на странице монитора — «Такого домена нет», «Нет записи этого типа», «Подпись DNSSEC не проходит проверку», «DNS-серверы домена дали сбой», «Публичный DNS не ответил», «Ваш DNS-сервер не ответил или отказал», «Ответ не совпадает с ожидаемым». Когда сбоят резолверы, в тексте ошибки видно, что ответил каждый из них, например DNS-серверы домена example.com дали сбой (8.8.8.8: REFUSED; 1.1.1.1: SERVFAIL). На домен со сломанной подписью DNSSEC Google 8.8.8.8 иногда отвечает обычным SERVFAIL без пояснения; тогда проверка спрашивает 1.1.1.1, и уже его ответ указывает на DNSSEC. Если у монитора свой DNS-сервер, его ответ окончательный: 1.1.1.1 не спрашивают, а текст ошибки называет ваш сервер, например DNS-серверы домена example.com дали сбой (10.0.0.53: SERVFAIL).
Под заголовком со статусом — карточка Текущий ответ: последний ответ, который получила проверка, и сервер, который спрашивают проверки. Если ответ не совпадает с ожидаемыми значениями, карточка показывает, каких ожидаемых значений нет в ответе и какие значения ответа не входят в список ожидаемых; если запись меняли вы сами, кнопка Да, принять новый ответ делает текущие значения ожидаемыми. При любой другой неудаче над карточкой появляется баннер с причиной простыми словами и одним следующим шагом.
Один неудачный резолв — ещё не авария: как и у любого монитора, DOWN подтверждается только после нескольких подряд упавших проверок, по умолчанию трёх. Что происходит дальше, описано в разделе инциденты.
Настройки
Имя
Имя для запроса, с префиксом dns:// или без него: example.com и dns://example.com работают одинаково. Для поддомена пишите полное имя — mail.example.com, а не mail. Без порта.
Тип записи
Один из восьми типов выше. По умолчанию A. Один монитор спрашивает один тип, поэтому следить и за A-записью, и за MX того же домена — это два монитора.
Ожидаемые значения
Необязательно. Каждое перечисленное значение должно быть в ответе, иначе проверка падает. Пустой список означает «подойдёт любой ответ». До 100 значений.
DNS-сервер
Необязательно. IP-адрес DNS-сервера, на который отправлять запросы вместо публичного DNS, без порта: например, 9.9.9.9 или 2620:fe::fe. Запросы уходят на его порт 53. Спрашиваем только этот сервер и ждём ответа до 10 секунд, а если таймаут монитора короче — меньше. Адрес в локальной сети, например 192.168.1.1 или 10.0.0.53, спросит только ваш приватный чекер в этой же сети: публичные чекеры до него не достанут, поэтому с публичным чекером такой монитор не сохранится.
Интервал проверки
По умолчанию 60 секунд. Записи меняются редко, так что более длинный интервал обычно ничего не теряет — если только смысл монитора не в том, чтобы быстро поймать несанкционированное изменение.
Таймаут
По умолчанию 5 секунд. Ответа 8.8.8.8 или DNS-сервера, указанного в мониторе, проверка ждёт не дольше меньшего из двух значений: этого таймаута и собственного потолка PingZen на DNS-запросы, 10 секунд. Если приходится спрашивать 1.1.1.1, его ответа проверка ждёт ещё до 5 секунд, а при коротком таймауте монитора — меньше. В ошибке таймаута указано, сколько секунд проверка ждала на самом деле.
Какой резолвер используется
Если у монитора нет своего DNS-сервера — сначала Google Public DNS (8.8.8.8), а если он подвёл одним из описанных выше способов — Cloudflare (1.1.1.1). Если сервер указан, спрашиваем только его.
Ключевые возможности
- Восемь типов записей: A, AAAA, CNAME, MX, TXT, NS, SOA и PTR
- Необязательные ожидаемые значения, и при ошибке видно и чего не хватило, и что пришло
- Полученные значения и время резолва записываются при каждой проверке, успешной и упавшей
- Понятная причина и один следующий шаг для каждого способа не получить ответ вместо плоского «упало»
- Показывает ответ публичного резолвера, то есть тот ответ, который получают ваши пользователи
- Может спрашивать вместо него ваш DNS-сервер, в том числе адрес в локальной сети — через приватный чекер в этой же сети