Назначение утилиты
Утилита nslookup служит для прямых запросов к DNS-серверам. Она показывает, какой адрес соответствует имени и какой сервер дал ответ. Это основной инструмент, чтобы отделить проблемы имён от проблем связи: если пинг по адресу проходит, а по имени нет, nslookup покажет, что именно происходит с разрешением.
Она есть в Windows и встречается в других системах. В Linux и macOS многие предпочитают dig, но принцип тот же, и nslookup для простых задач вполне достаточен.
Простой запрос и разбор ответа
Введите nslookup и имя сайта. В ответе две части. В верхней указан сервер, который отвечал на запрос, — тот, что назначен вашей системе, и его адрес. Ниже идут сведения об имени и найденные адреса. Если ответ помечен как неавторитетный, значит, его дал кэширующий сервер, а не тот, что хранит запись.
Если вместо сервера отображается «неизвестный», а адрес есть, система не смогла определить имя DNS-сервера по адресу. Это косметика, не ошибка.
Запрос к выбранному серверу
Чтобы проверить конкретный DNS-сервер, укажите его адрес вторым параметром после имени сайта. Сравнивая ответы разных серверов, вы поймёте, где данные актуальны. Например, ваш провайдерский сервер отдаёт старый адрес, а публичный уже новый — значит, запись ещё не обновилась в кэше провайдера.
Так же выявляют подмену: если разные серверы отдают разные адреса для одного имени, это повод разобраться. Различия бывают и по законным причинам, вроде географической балансировки нагрузки, поэтому делайте вывод осторожно.
Типы записей
Ключ type или интерактивная команда set type позволяет запрашивать не только адреса. Запись A содержит IPv4-адрес, AAAA — IPv6, MX — почтовые серверы домена, NS — серверы имён, TXT — текстовые данные, часто используемые для подтверждения владения и защиты почты, CNAME — псевдоним.
Для проверки почты домена запрашивают MX и TXT. Для проверки делегирования — NS. Для выяснения, куда ведёт псевдоним, — CNAME. Это набор для разбора большинства повседневных вопросов о домене.
Интерактивный режим и ошибки
Если запустить nslookup без параметров, откроется приглашение, где можно вводить имена по очереди, менять сервер командой server и тип записи командой set type. Выход по команде exit. Это удобно, когда нужно выполнить серию запросов.
Типичные ответы об ошибке: несуществующий домен означает, что записи нет, превышение времени — сервер не отвечает, отказ запроса — сервер не обслуживает вас. Каждое из них указывает свою причину, и различать их полезно при диагностике.
Важно помнить и о том, что nslookup использует собственный механизм запросов, отличающийся от того, что применяют приложения. Иногда программа не находит сайт, а nslookup находит: причина может быть в кэше, файле hosts или настройках браузера. Поэтому результат nslookup не всегда равен тому, что видит конкретная программа. Используйте его как отправную точку, а затем проверяйте остальные слои, ведь именно их различия часто объясняют парадоксальные ситуации.
Хорошая привычка при диагностике — записывать, какой сервер отвечал и что он вернул. Через несколько запросов сложится картина, которую легко пересказать специалисту или сравнить с настройками роутера, вместо смутного впечатления о том, что интернет «как-то не так» работает.
Учитывайте, что часть записей у крупных сервисов возвращается в разном виде в зависимости от места запроса: сервис направляет вас к ближайшему узлу. Поэтому различие адресов у двух серверов далеко не всегда сигнал проблемы.
Сценарии для повседневной практики
Три ситуации, где nslookup незаменим. Первая: сайт не открывается, и нужно понять, находится ли он вообще по имени. Вторая: вы перенесли сайт и проверяете, что новый адрес виден снаружи, направив запрос публичному серверу. Третья: вы настраиваете почту и проверяете MX и TXT-записи домена. Во всех случаях порядок один: запрос к вашему серверу, запрос к внешнему, сравнение. Расхождение подскажет, что делать дальше: ждать обновления кэша или исправлять запись.