Назад | Перейти на главную страницу

Имеет ли значение порядок ответов DNS в nslookup?

Я реализовал программу ретрансляции DNS в Windows.
Я получаю 3 DNS-запроса каждые nslookup команда, PTR, A и AAAA.
Сначала я отвечаю на запрос type = A, а через несколько микросекунд отвечаю на запрос PTR / AAAA.
Но у меня тайм-аут nslookup и обнаружил, что каждый ответ A и AAAA получен localhost, но ответ PTR получил ICMP Port unreachable ошибка.
Интересно, почему это происходит?

Запросы адресов (A и AAAA) отделены от запроса записи PTR. Пока у вас нет адреса, вы не можете запросить запись PTR.

Для типичного SMTP обратного поиска проверки DNS для IP 192.0.2.8 процесс выглядит следующим образом:

  • Переведите IP-адрес в формат поиска.
  • Поиск PTR для 8.2.0.192.in-addr.arpa.
  • Получить PTR с именем smtp.example.org
  • Адреса поиска для smtp.example.org
  • Получить адрес 192.0.2.8

IP-адреса меняются местами для поиска, так как это необходимо для поиска в таких подсетях, как 2.0.192.in-addr.arpa чтобы найти сервер имен для подсети.

Делегирование частичных подсетей выполняется с использованием записей CNAME.

Вы используете UDP, TCP или оба? Используете ли вы тот же номер порта UDP, который был источником исходного запроса, в качестве порта назначения при использовании UDP? (Другими словами: когда UDP-запрос поступает с IP-адреса a.b.c.d порта X на ваш IP-адрес и порт 53, ответ должен быть отправлен с вашего порта 53 на порт X a.b.c.d.)

DNS может использовать как TCP, так и UDP: обычно UDP используется первым, потому что он самый быстрый, но если ответ не помещается в один пакет UDP, сервер вставляет столько, сколько может, и добавляет флаг, который сообщает клиенту, что «вот первая часть; если вам нужно больше, спросите еще раз по TCP, чтобы получить полный ответ ».