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

Связь с DNS-сервером через интерфейс командной строки

Итак, мы находимся в главе о DNS в нашем классе, и мне было интересно, есть ли какой-либо способ, хотя я могу подключиться к DNS-серверу на порту 53 через интерфейс командной строки (например, Telnet или netcat), как мы это делаем для SMTP или HTTP. или POP на их конкретных портах; Я попытался:

> telnet 8.8.8.8 53

Но соединение было закрыто, как только оно было установлено; позже я понял, что telnet использует TCP, а DNS использует UDP.

Затем я попытался сделать то же самое с netcat:

> nc -u 8.8.8.8 53

Нада! Я просто хочу увидеть работу DNS с некоторой прозрачностью (например, с http, SMTP и т. Д.)

Как вы заметили, DNS в основном использует UDP, но на самом деле сервис также предоставляется через TCP (обычно используется для больших ответов и зональных передач).
Вот почему вам в первую очередь удалось установить соединение при попытке telnet. Ваше соединение было закрыто, потому что вы не взаимодействовали со службой должным образом, а не потому, что telnet использует TCP.

Важное отличие состоит в том, что, в отличие от HTTP и SMTP, которые представляют собой текстовые протоколы, с которыми достаточно легко работать напрямую, DNS - это бинарный протокол.

Это означает, что вам понадобится некоторая клиентская программа DNS для взаимодействия с серверами имен любым разумным способом.

dig является стандартом де-факто для устранения неполадок DNS в течение очень долгого времени, поскольку он очень хорош как с точки зрения построения запросов, так и с точки зрения четкой печати всей информации в ответе. (Часть кодовой базы BIND и включена в сборку Windows от ISC.)

drill это еще одна альтернатива с аналогичными возможностями и по существу тем же форматированием вывода, что и dig.

nslookup хорошо известен, поскольку существует с незапамятных времен. От него отказались, за исключением Windows, и он имеет некоторые нежелательные особенности и ограниченные возможности по сравнению с ранее упомянутыми альтернативами. Параметр отладки (set debug) делает его пригодным для устранения неполадок в крайнем случае, поскольку он значительно улучшает полноту вывода, хотя форматирование вывода отладки оставляет желать лучшего.

Вы можете использовать dig утилита, например:

dig @your.dns.server www.foo.bar

Пример:

dig @8.8.8.8 www.google.com

Если вы хотите увидеть пошаговое разрешение имени, вы можете сделать это:

dig +add +trace @8.8.8.8 www.google.com

С уважением!

Для Windows вы можете использовать NSlookup

   nslookup [-opt ...]             # interactive mode using default server
   nslookup [-opt ...] - server    # interactive mode using 'server'
   nslookup [-opt ...] host        # just look up 'host' using default server
   nslookup [-opt ...] host server # just look up 'host' using 'server'