Мониторинг DNS-сервера
Монитор DNS отвечает на вопрос, живы ли записи домена. Монитор DNS-сервера отвечает на другой: работает ли сам сервер, к которому ходят ваши пользователи и сервисы, и правильно ли он отвечает.
Что проверяется
Аптайм задаёт серверу вопрос, как команда dig @77.88.8.8 ya.ru A, и разбирает ответ побайтно. По умолчанию спрашивается ya.ru: это имя есть всегда, и ответ на него знает любой резолвер. Домен, тип записи и порт меняются в форме.
| Что не так | Причина в алерте |
|---|---|
| Сервер молчит | Нет ответа за 5 с (2 попытки) |
| Порт закрыт | Порт закрыт: сервер ответил ICMP port unreachable |
| Ответ нарушает формат DNS (RFC 1035, RFC 6891) | Ответ нарушает формат DNS: RDLENGTH 5 у записи A (ожидалось 4) |
| Код ответа не NOERROR | Сервер ответил SERVFAIL |
| В ответе нет записей нужного типа | NOERROR без записей A для ya.ru (NODATA) |
| Не найдено ожидаемое значение | Ожидаемое значение не найдено в ответе |
Мелкие отклонения вроде лишних байтов в конце ответа монитор не роняют: у живых серверов они встречаются. Они видны в карточке ответа как замечания.
Резолвер или авторитетный сервер
- Резолвер (по умолчанию): запрос с флагом RD, сервер должен сам найти ответ. Подходит для DNS провайдера и офиса, публичных 77.88.8.8 и 8.8.8.8.
- Авторитетный сервер: запрос без рекурсии, в ответе обязателен флаг AA. Укажите домен зоны, которую сервер обслуживает: на чужую зону он ответит отказом.
- Транспорт: UDP с переходом на TCP, если ответ обрезан, или только TCP.
- Резолвер может ответить из кэша. Монитор проверяет, что сервер жив и отвечает, а не то, что прямо сейчас работает его рекурсия наружу.
SERVFAIL и авария у чужой зоны
Резолвер отвечает SERVFAIL и когда сломан сам, и когда недоступны серверы спрашиваемой зоны. Чтобы различать эти случаи, после SERVFAIL Аптайм задаёт контрольный вопрос «. SOA»: на него резолвер отвечает без походов наружу. Если контрольный вопрос прошёл, в причине так и написано: сервер работает, но не разрешает это имя.
Перехват DNS
Некоторые провайдеры и офисные роутеры отвечают на запросы к порту 53 сами, от имени любого адреса. В такой сети выключенный DNS-сервер выглядит живым. Поэтому каждая точка проверки раз в 15 минут спрашивает адрес 192.0.2.1, которому отвечать некому. Пришёл ответ, значит, сеть точки перехватывает DNS, и её проверки DNS-серверов в итог не идут.
Перехват только части запросов, например к одному публичному резолверу, так не обнаружить. Если подозреваете такой, проверяйте сервер из нескольких стран: итог считается по большинству точек.
Как сверить вручную
В форме и в карточке монитора есть команда dig ровно для той проверки, которую делает монитор. Её можно скопировать и запустить у себя:
dig @77.88.8.8 ya.ru A