Существуют различные ссылки (например, DNS не может разрешить имя хоста; nslookup может или же https://web.archive.org/web/20160525082756/http://homepage.ntlworld.com/jonathan.deboynepollard/FGA/nslookup-flaws.html или же https://web.archive.org/web/20121113214415/http://cbfive.com/blog/post/PING-vs-NSLookup.aspx), в которых говорится следующее или что-то подобное, но не предлагаются альтернативы для использования:
Причина, по которой ping не может разрешить имя хоста, а nslookup может, заключается в том, что nslookup — это низкоуровневый инструмент, который обходит DNS-клиент Windows. Он использует любой DNS-сервер, которому вы его укажете (первый по умолчанию), и выполняет запрос на лету.
Мой вопрос в том, как я могу вручную протестировать DNS-клиент для проверки записи SRV? Есть ли способ увидеть информацию DNS, которую он пытается использовать? Я не могу установить Wireshark на все серверы в каждой среде, поэтому я ищу другой способ устранения неполадок.Я предполагаю, что ответ «нет», иначе зачем нам использовать nslookup (и так несовершенный). Очевидно, я не могу использовать ping для записи SRV.
Отредактировано с обновленными выводами:
Запросы UDP слишком длинные, поэтому ответ DNS с флагом усечения отправляется клиенту, поэтому необходимо выполнить запрос TCP. Следующий пакет после запроса TCP DNS (от TargetDNS к клиенту): «TCP-сегмент повторно собранного PDU» (который выглядит так, как будто содержит информацию об ответе), а затем отличается в зависимости от сценария:
- Запрос Nslookup — с запросом nslookup на самом деле имеется ответный пакет DNS с информацией
- ApplicationX (который, как я полагаю, использует DNS-клиент Windows) — запрос DNS-клиента Windows, ответный пакет DNS отсутствует (например, другой TCP-пакет был потерян)
- В кеше DNS (ipconfig /displaydns) или в кеше DNS-сервера клиента нет ничего для записи SRV (даже отрицательной).
Неудивительно, что это доказывает, что DNS-клиент и nslookup получают разные результаты, но что именно они делают по-разному (учет хостов, lmhosts, добавление суффиксов поиска DNS и т. д.)? Они используют одни и те же DNS-серверы (о чем свидетельствует Wireshark). Как я могу сузить, где лежит ошибка?