| Предыдущий | Следующий |
| DNS_INFO_NO_RECORDS | DNS_ERROR_NO_PACKET |
DNS_ERROR_BAD_PACKET
Ошибка формата пакета или синтаксического анализа
DNS_ERROR_BAD_PACKET означает, что DNS-сообщение нельзя принять как допустимый пакет. DNS использует компактные двоичные секции, где счётчики, поля RDATA переменной длины и сжатые имена должны укладываться в фактический размер сообщения. Усечённая датаграмма, недопустимый указатель сжатия, невозможное число секций, повреждённая опция EDNS или неправильное кадрирование длины TCP могут сделать пакет неразбираемым до чтения его записей.
Это состояние отличается от DNS_ERROR_RCODE. RCODE — структурированный ответ сервера в успешно разобранном пакете; повреждённый пакет не позволяет надёжно интерпретировать даже этот ответ.
Что сохранить
- Сохраните точные байты пакета и метаданные транспорта до того, как повтор заменит свидетельство.
- Сопоставьте счётчики заголовка DNS с количеством и границами записей question, answer, authority и additional.
- Для UDP проверьте усечение и бит TC; для TCP — двухбайтовую длину сообщения и сборку потока.
- Проверьте работу без посредников, изменяющих DNS, но не обвиняйте авторитетный сервер до подтверждения исходного адреса и идентификатора транзакции.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
