Тайм-аут DNS, NXDOMAIN и SERVFAIL в PCAP: как отличить медленный DNS от медленного сервера
Как диагностировать тайм-ауты DNS, NXDOMAIN, SERVFAIL, повторяющиеся запросы и медленный запуск приложений с помощью данных захвата пакетов.
Многие случаи «медленных приложений» на самом деле являются случаями DNS. Пользователь нажимает кнопку, приложение ждет несколько секунд, и первая вина ложится на сервер. Захват пакета может показать, что TCP-соединение даже не было предпринято до тех пор, пока разрешение DNS не завершилось или не завершилось сбоем.
Доказательства DNS компактны, но их легко прочитать неправильно. NXDOMAIN, SERVFAIL и timeout — это разные результаты. Если рассматривать их как одну общую «ошибку DNS», это приведет к неправильному владельцу.
Тайм-аут означает, что полезный ответ не получен
Тайм-аут DNS обычно проявляется в виде повторяющихся запросов без полезного ответа. Клиент может повторить попытку того же имени, запросить несколько преобразователей или вернуться с IPv6 на IPv4. Ключевым признаком является то, что проходит время, прежде чем приложение сможет продолжить работу.
Осмотрите:
- имя запроса
- тип запроса: A, AAAA, CNAME, SRV и т. д.
- IP-резольвер
- интервал повтора
- поступил ли какой-либо ответ
- время до начала соединения TCP или TLS
- ведут ли несколько резольверов по-разному
Если до попытки подключения проходит несколько секунд повторных попыток DNS, сервер еще не медленный. Клиент до него не дошел.
NXDOMAIN — действительный отрицательный ответ
NXDOMAIN означает, что имя не существует. Это может быть проблема с конфигурацией приложения, опечатка, устаревший домен, проблема с разделенным горизонтом DNS или ожидаемый поиск дополнительного поведения. Это не то же самое, что отсутствие ответа.
Полезные вопросы:
- какое имя вернул NXDOMAIN?
- приложение пробовало другое имя?
- это был внутренний DNS или общедоступный DNS?
- расширение поискового суффикса создало неожиданные имена?
- быстро ли пришел отрицательный ответ?
Быстрый NXDOMAIN часто не является проблемой производительности. Это проблема корректности.
SERVFAIL указывает на проблему с преобразователем или органом власти
SERVFAIL означает, что преобразователь не смог завершить ответ. Причинами могут быть сбой проверки DNSSEC, недоступные авторитетные серверы, неправильная конфигурация преобразователя или частичный сбой.
PCAP рядом с клиентом может отображать только окончательный SERVFAIL преобразователя. Захват рядом с преобразователем может показать восходящие запросы и места их сбоя. Точка захвата имеет значение.
Почему хирургия PCAP заботится
PCAP Surgery не является DNS-сервером. Его роль заключается в том, чтобы помочь инженерам изолировать доказательства внутри перехваченных пакетов, обрезать соответствующие окна, сохранить время и подготовить файлы для безопасной передачи. В делах DNS часто требуются небольшие, целенаправленные выдержки:
- запросы перед подключением приложения
- ответы резольвера
- время повторной попытки
- связанное соединение TCP/TLS после разрешения
- достаточно контекста, чтобы доказать, что DNS был задержкой
Если большой PCAP содержит 10-секундную задержку, видимую пользователю, извлечение окна DNS-запроса плюс первая попытка подключения может значительно облегчить рассмотрение обращения в службу поддержки.
Что сохранить в записи устранения неполадок DNS
Сохранять:
- timestamps
- Идентификаторы DNS-транзакций
- пары запроса и ответа
- коды ответа
- IP-адреса резольвера
- IP-адрес клиента
- время последующего подключения
Будьте осторожны при анонимизации. Если имена запросов полностью удалены, получатель может не знать, была ли ошибка опечаткой, внутренним доменом, общедоступным доменом или поведением суффикса поиска.
Для поисковых запросов, таких как «Тайм-аут DNS pcap», «NXDOMAIN vs SERVFAIL» или «медленный захват DNS-пакетов», главное — доказать, ожидало ли приложение разрешения, прежде чем оно достигло сервера.