Какова анатомия DNS-сессии? - PullRequest
1 голос
/ 05 марта 2011

Я работаю над домашним заданием, которое в основном просит нас разобрать ответ DNS, чтобы получить IP-адрес и тому подобное.Проблема в том, что профессор очень подробно рассказал нам, как выглядит ответ от DNS-сервера, но я не знаю, что отправить на сервер.Моей первой попыткой было netcat <ip address of local name server> 53 и просто набрать www.google.com, нажать Enter и найти ответ, но я ничего не получил.

Может кто-нибудь описать мне, как выглядит запрос DNSнапример (например, сколько байтов разрешено для каждой части запроса)?

Ответы [ 4 ]

5 голосов
/ 05 марта 2011
  1. Загрузите wireshark и запустите его
  2. Сделайте что-то, что использует DNS (убедитесь, что вы не используете кэшированное имя хоста)
  3. Просмотрите захваченные пакеты wireshark.
4 голосов
/ 05 марта 2011

Это должно быть охвачено RFC 1034 , раздел 3.7, но я как бы застеклен, просто просматривая его, не говоря уже о том, чтобы прочесть его.

1 голос
/ 05 марта 2011

Основной формой DNS-запроса является короткий заголовок, который, по сути, содержит все фиксированные байтовые значения, за которыми следует то, что вы получите, если вы взяли имя, добавили к нему префикс (.), а затем заменили каждую точку набайт в диапазоне 1-63, указывающий длину следующего сегмента имени до следующей точки, за которой следуют еще несколько байтов с фиксированным значением.Пока все, что вы делаете, это обычный поиск адресов и ничего необычного, например, передача зон, это все, что вам нужно знать о протоколе DNS.

Подробнее о полях заголовка и т. Д. Читайте в RFC 1035.Или просто скопируйте их из дампа сниффера пакетов.Единственное, что вы захотите изменить, - это идентификатор запроса (он должен быть случайным, чтобы избежать тривиальных спуфинговых атак на вашу программу) и, возможно, тип RR (например, если вам нужно запросить IPv6 (AAAA) или обратный DNS (PTR) записи в дополнение к просто A.

0 голосов
/ 05 марта 2011

Это не дает прямого ответа на ваш вопрос, но попробуйте запустить nslookup для командной строки и посмотреть доступные опции.Вы можете поручить ему запрашивать определенные элементы, такие как записи MX и т. Д.

Но если вас больше интересует, как выглядит сам протокол?этот RFC содержит гораздо больше информации, чем вы могли бы хотеть: http://tools.ietf.org/html/rfc1035

...