Как пользоваться командой nslookup в Linux?

Для проверки DNS используется универсальная команда nslookup. Она есть как в Windows, так и в Linux. Утилита поможет получить IP-адрес, а также сделать обратное преобразование и определить скорость работы DNS сервера.

Принцип работы DNS

Интернет - большое количество устройств, которые связаны между собой в сеть. Под устройством можем понимать сервера, компьютеры, ноутбуки  и так далее. Для объединения компьютеров в сеть используются ip-адреса, однако людям работать с ними не удобно, гораздо удобнее воспринимать информацию с символьными именами, например www.vseprolinux.ru.

Чтобы не запоминать много цифр в виде ip-адресов, в 80-х годах была создана DNS - система доменных имен, протокол прикладного уровня. Он преобразовывает имена устройств (компьютеров) в IP-адреса.

Пример: vseprolinux --> 195.161.114.71

Теперь вместо адреса достаточно ввести в адресную строку доменное имя, название сайта в виде www.site.ru, далее уже Ваш ДНС делает запрос, чтобы узнать ip-адрес запрашиваемого узла.

Все это хорошо, только если не работает ДНС, то и не работает сайт,  для диагностики проблем ДНС системы обычно используется команда nslookup.

Синтаксис nslookup

Рассмотрим синтаксис команды.

nslookup [параметры] [домен] [сервер]

Домен - доменное имя. Сервер - необязательный аргумент

Основные опции:

  • -type - тип записи ДНС. ns, txt, ptr, cname, soa и другие;
  • -port - порт ДНС;
  • -recurse - если ДНС не отвечает, то использоваться другие DNS;
  • -retry - количество попыток;
  • -timeout - время;
  • -fail - если DNS доменных имен возвращает ошибку, то использовать другой сервер.

Примеры

Узнаем IP-адрес сайта vseprolinux.ru. Для этого выполним команду без аргументов.

nslookup vseprolinux.ru

Узнаем ip-адрес сайт через линукс

На скриншоте выше видно:

  1.  Server: 192.168.201.254 - адрес текущего ДНС сервера компьютера, который указан а настройках сети, в моем случае /etc/resolv.conf
  2. Address: 192.168.201.254#53 - IP-адрес вместе с портом. По умолчанию используется 53 порт.
  3. Non-authoritative answer - не авторитетный ответ. Такой ответ выдается в двух случаях: ДНС не обслуживает зону, и ответ получен из кэша, данные могли устареть.  Авторитетным ответом будет считаться только если сервер имеет полную информацию о зоне.
  4. 195.161.114.71  - IP-адрес сайта.

Теперь сделаем обратное преобразование.

nslookup 195.161.114.71

Обратное преобразование nslookup

Получим NS запись.

nslookup -type=ns vseprolinux.ru

NS записиКак узнать адрес почтового сервера MX (Mail eXchange)?. Для этого введем команду

nslookup -type=mx vseprolinux.ru

Пример MX

Запись MX содержит всего два поля:

  1. приоритет;
  2. адрес сервера принимающего почту для данного домена.

Чем ниже значения, тем более высокий приоритет.

В наше время все больше внимания уделяется защите от спама в email сообщениях. Выделим два основных варианта, через TXT запись DNS:

  • spf - Sender Policy Framework. Представляется собой текстовую запись, которая содержит список хостов, которые имеют права отправлять письма от домена;
  • dkim -DomainKeys Identified Mail. TXT запись ключа. Для определения отправителя добавляется цифровая подпись, далее подпись автоматически проверяется получателем.

Чтобы узнать  TXT надпись, введем в терминале команду с типом txt:

nslookup -type=txt vseprolinux.ru

-type=txt
Утилита может вывести техническую информацию о домене "Start Of Authority". Для этого используется тип запроса soa:

nslookup -type=soa vseprolinux.ru

-type=soa

Утилита в Линуксе покажет такие записи:

  • origin - от кого узнали информацию;
  • mail addr - email address администратора домена;
  • serial - время в формате timestamp;
  • refresh - время в секундах, когда нужно повторить подключения для обновления информации;
  • retry - время в секундах, через которое повторять подключения к DNS, если он недоступен;
  • expire - время в секундах, через сколько времени считать иформацию устаревшей полученную от первого ДНС;
  • minimum - время в секундах до следующего обновления.