Определить доступность узла заданного по dns имени
Одна из важнейших подсистем, отвечающая за связь любого сервера с внешним миром — сетевая. Через сетевые интерфейсы поступают запросы от удаленных систем и через эти же интерфейсы направляются ответы, что позволяет налаживать коммуникацию и предоставлять/получать сервисы. В связи с этим особенно важно уметь производить диагностику и мониторинг сети хотя бы на базовом уровне, чтобы выявлять проблемы и вносить корректировки в конфигурацию в случае необходимости.
Для операционных систем семейства Linux написано множество утилит, помогающих в диагностике и мониторинге. Познакомимся с наиболее часто используемыми из них.
Диагностика сетевой связности (ping, arp, traceroute)
В данной статье мы будем опираться на использование протокола IP версии 4. Согласно стандартам, определяющим работу этого протокола, каждое устройство, подключенное к сети, должно иметь как минимум IP-адрес и маску подсети — параметры, которые позволяют уникально идентифицировать устройство в пределах определенной сети. В такой конфигурации устройство может обмениваться сетевыми пакетами с другими устройствами в пределах той же самой логической сети. Если к этому набору параметров добавить адрес шлюза по умолчанию — наш сервер сможет связываться с хостами, находящимися за пределами локального адресного пространства.
В случае каких-либо сетевых проблем в первую очередь проверяем, не сбились ли настройки сетевого интерфейса. Например, команды ip addr или ifconfig выведут IP-адрес и маску сети:
В выводе команды виден перечень сетевых интерфейсов, распознанных операционной системой. Интерфейс lo — это псевдоинтерфейс (loopback). Он не используется в реальных взаимодействиях с удаленными хостами, а вот интерфейс с именем ens192 — то, что нам нужно (именование сетевых интерфейсов различается в разных ветках и версиях ОС Linux). IP-адрес и маска сети, назначенные этому интерфейсу, указаны в поле inet — /24 после адреса обозначают 24-битную маску 255.255.255.0.
Теперь проверим, указан ли шлюз по умолчанию. Команды ip route или route покажут имеющиеся маршруты:
В таблице маршрутизации мы видим, что имеется маршрут по умолчанию (обозначается либо ключевым словом default, либо адресом 0.0.0.0). Все пакеты, предназначенные для внешних сетей, должны направляться на указанный в маршруте адрес через обозначенный сетевой интерфейс.
Синтаксис команды ping IP/имя опции:
Скриншот №3. Синтаксис команды
В данном случае видим, что на оба сетевых пакета, отправленных на адрес нашего шлюза по умолчанию, получены ответы, потерь нет. Это значит, что на уровне локальной сети со связностью все в порядке. Помимо количества полученных/потерянных сетевых пакетов мы можем увидеть время, которое было затрачено на прохождение запроса и ответа – параметр RTT (Round Trip Time). Этот параметр может быть очень важен при диагностике проблем, связанных с нестабильностью связи и скоростью соединения.
Часто используемые параметры:
- ping –c количество — указать количество пакетов, которое будет отправлено адресату (по умолчанию пакеты отправляются до тех пор, пока пользователь не прервет выполнение команды. Этот режим можно использовать, чтобы проверить стабильность сетевого соединения. Если параметр RTT будет сильно изменяться в ходе проверки, значит где-то на протяжении маршрута есть проблема);
- ping –s количество — указать размер пакета в байтах. По умолчанию проверка производится малыми пакетами. Чтобы проверить работу сетевых устройств с пакетами большего размера, можно использовать этот параметр;
- ping –I интерфейс — указать сетевой интерфейс, с которого будет отправлен запрос (актуально при наличии нескольких сетевых интерфейсов и необходимости проверить прохождение пакетов по конкретному сетевому маршруту).
В случае, если при использовании команды ping пакеты от шлюза (или другого хоста, находящегося в одной локальной сети с сервером-отправителем) в ответ не приходят, стоит проверить сетевую связность на уровне Ethernet. Здесь для коммуникации между устройствами используются так называемые MAC-адреса сетевых интерфейсов. За разрешение Ethernet-адресов отвечает протокол ARP (Address Resolution Protocol) и с помощью одноименной утилиты мы можем проверить корректность работы на этом уровне. Запустим команду arp –n и проверим результат:
Команда выведет список IP-адресов (так как был использован аргумент –n), и соответствующие им MAC-адреса хостов, находящиеся в одной сети с нашим сервером. Если в этом списке есть IP, который мы пытаемся пинговать, и соответствующий ему MAC, значит сеть работает и, возможно, ICMP-пакеты, которые использует команда ping, просто блокируются файрволом (либо со стороны отправителя, либо со стороны получателя). Подробнее об управлении правилами файрвола рассказано здесь и здесь.
Часто используемые параметры:
- arp –n — вывод содержимого локального arp-кэша в числовом формате. Без этой опции будет предпринята попытка определить символические имена хостов;
- arp –d адрес — удаление указанного адреса из кэша. Это может быть полезно для проверки корректности разрешения адреса. Чтобы убедиться, что в настоящий момент времени адрес разрешается корректно, можно удалить его из кэша и снова запустить ping. Если все работает правильно, адрес снова появится в кэше.
Если все предыдущие шаги завершены корректно, проверяем работу маршрутизатора — запускаем ping до сервера за пределами нашей сети, например, 8.8.8.8 (DNS-сервис от Google). Если все работает корректно, получаем результат:
Первым маршрутизатором на пути пакета должен быть наш локальный шлюз по умолчанию. Если дальше него пакет не уходит, возможно проблема в конфигурации маршрутизатора и нужно разбираться с ним. Если пакеты теряются на дальнейших шагах, возможно, есть проблема в промежуточной сети. А, возможно, промежуточные маршрутизаторы не отсылают ответные пакеты. В этом случае можно переключиться на использование другого протокола в traceroute.
Часто используемые опции:
- traceroute –n — вывод результата в числовом формате вместо символических имен промежуточных узлов;
- traceroute –I — использование ICMP-протокола при отслеживании маршрута. По умолчанию используются UDP-датаграммы;
- traceroute –s адрес— указать адрес источника для исходящего сетевого пакета;
- traceroute –i интерфейс— указать сетевой интерфейс, с которого будут отправляться пакеты.
Диагностика разрешения имен (nslookup, dig)
Разобравшись с сетевой связностью и маршрутизацией приходим к следующему этапу — разрешение доменных имен. В большинстве случаев в работе с удаленными сервисами мы не используем IP-адреса, а указываем доменные имена удаленных ресурсов. За перевод символических имен в IP-адреса отвечает служба DNS — это сеть серверов, которые содержат актуальную информацию о соответствии имен и IP в пределах доверенных им доменных зон.
Способы выяснения какой DNS-сервер использует наш сервер различаются в зависимости от используемой версии и дистрибутива ОС Linux. Например, если ОС используется Network Manager для управления сетевыми интерфейсами (CentOS, RedHat и др.), может помочь вывод команды nmcli:
В настройках сетевого интерфейса, в разделе DNS configuration, мы увидим IP-адрес сервера. В Ubuntu 18.04 и выше, использующих Netplan, используем команду systemd-resolve --status:
Используемый сервер также будет указан в настройках интерфейса, в разделе DNS Servers. В более старых версиях Ubuntu потребуется проверить содержимое файлов /etc/resolve.conf и /etc/network/interfaces. Если сервер не указан, воспользуйтесь статьей для ОС Ubuntu 18.04 или CentOS, чтобы скорректировать настройки.
Проверить работу сервиса разрешения имен нам помогут утилиты nslookup или dig. Функционально они почти идентичны: G-вывод утилиты dig содержит больше диагностической информации и гибко регулируется, но это далеко не всегда нужно. Поэтому используйте ту утилиту, которая удобна в конкретной ситуации. Если эти команды недоступны, потребуется доставить пакеты на CentOS/RedHat:
yum install bind-utils
sudo apt install dnsutils
После успешной установки сделаем тестовые запросы:
Аналогичный запрос утилитой nslookup выдает более компактный вывод, но вся нужная сейчас информация в нем присутствует.
Скриншот №11. Отправка тестового запроса 1
Скриншот №12. Отправка тестового запроса 2
Если имена разрешаются публичным DNS-сервером корректно, а установленным по умолчанию в ОС нет, вероятно, есть проблема в работе этого DNS-сервера. Временным решением данной проблемы может быть использование публичного DNS-сервера в качестве сервера для разрешения имен в операционной системе. В том случае, если разрешение имен не работает ни через локальный, ни через публичный DNS сервер — стоит проверить не блокируют ли правила файрвола отправку на удаленный порт 53 TCP/UDP пакетов (именно на этом порту DNS-серверы принимают запросы).
Часто используемые параметры:
Как обычно, полный набор опций и параметров для указанных утилит можно найти во встроенной справке операционной системы, используя команду man.
Всем привет сегодня хочу начать цикл статей посвященных сетевым утилитам, которые помогают найти причину и проблему в сетевом взаимодействии, большинство утилит, о которых я затрону речь в своих статьях - это бесплатные и встроенные программы. Сегодня в первую очередь я расскажу, о утилите ping или, как проверить доступность хоста. Это должен быть один из первых инструментов в арсенале сетевого инженера.
Ранее я уже рассказывал о внешних сервисах которые помогают про диагностировать ваши ресурсы со вне и проверить видит ли их ваш клиент или сотрудник компании. (В помощь сетевику — Ping.eu. Внешние сетевые утилиты системного администратора 1 часть).
Назначение утилиты ping
Утилита Ping — В Windows есть утилита для проверки соединений в сетях на основе TCP/IP, а также обиходное наименование самого запроса. С помощью данной утилиты вы посылаете пакеты на нужный вам адрес или хост и смотрите есть ли ответ или нет, если его нет и нет запрещающих правил блокировать ICMP пакеты, то можно сделать вывод что хост не доступен. Данная программка есть как в Windows так и в Linux системах, и пишется везде одинаково, единственное могут быть разные дополнительные ключи.
Откройте командную строку в Windows и введите ping, а Linux системах в консоли команда та же. Перед вами откроется описание утилиты со всеми ключами.
Утилита ping или как проверить доступность хоста. Сетевые утилиты 1 часть-02
Ключи и параметры PING
Использование: ping [-t] [-a] [-n <число>] [-l <размер>] [-f] [-i <TTL>]
[-v <TOS>] [-r <число>] [-s <число>]
[[-j <список_узлов>] | [-k <список_узлов>]]
[-w <время_ожидания>] [-R] [-S <адрес_источника>]
[-c секция] [-p] [-4] [-6] конечный_узел
- -t - Проверяет связь с указанным узлом до прекращения. Для отображения статистики и продолжения проверки нажмите клавиши CTRL+BREAK, для прекращения нажмите CTRL+C. Данный ключ очень часто используют, когда нужно в течении долгого времени тестировать доступность хоста. Например можно запустить ping на сутки и в самом конце посмотреть статистику по качеству вашего сетевого соединения, количество потерянных пакетов, это удобно и бесплатно, есть сразу под капотом Windows.
- -a Разрешает адреса в имена узлов.
- -n <число> Число отправляемых запросов проверки связи.
- -l <размер> Размер буфера отправки.
- -f Устанавливает флаг, запрещающий фрагментацию, в пакете (только IPv4).
- -i <TTL> Срок жизни пакетов.
- -v <TOS> Тип службы (только IPv4; этот параметр использовать не рекомендуется, и он не влияет на поле TOS в заголовке IP).
- -r <число> Записывает маршрут для указанного числа прыжков (только IPv4).
- -s <число> Задает метку времени для указанного числа прыжков (только IPv4).
- -j <список_узлов> Задает свободный выбор маршрута по списку узлов (только IPv4).
- -k <список_узлов> Задает жесткий выбор маршрута по списку узлов (только IPv4).
- -w <время_ожидания> Задает время ожидания каждого ответа (в миллисекундах).
- -R Использует заголовок маршрута для проверки и обратного маршрута (только IPv6). В соответствии с RFC 5095, использование этого заголовка маршрута не рекомендуется. В некоторых системах запросы проверки связи могут быть сброшены, если используется этот заголовок.
- -S <адрес_источника> Задает адрес источника.
- -c секция Идентификатор секции маршрутизации.
- -p Проверяет связь с сетевым адресом поставщика виртуализации Hyper-V.
- -4 Задает принудительное использование протокола IPv4.
- -6 Задает принудительное использование протокола IPv6.
Какой ping считается нормальным?
Давайте разберемся какой PING является нормальным. Прежде чем мы ответим на этот вопрос нужно понимать, что от типа соединения очень сильно зависит разброс и норма данного показателя, так для локальной сети цифры приемлемые для обычного интернет соединения будут казаться отвратительными, еще очень важным критерием является ваше нахождение и месторасположение сервера к которому вы обращаетесь, логично предположить, что если вы живете в Сибири, а обращаетесь к серверу в северной Америке, то там задержки будут куда выше, ежели вы бы делали обращение из Ирландии.
- Ping в локальной сети - если у вас с локальной сетью все в порядке на физическом уровне и на уровне топологии и настроек на сетевом оборудовании, то ваш ping не должен превышать 5 мс, для меня нормальным является пинг в локальной сети в 1 мс. Допустимые диапазоны от 1-20 мс, это считается низким пингом.
- Широкополосное интернет соединение - тут нормальным пингом является от 25-100 мс это считается средним показателем, например у меня из Москвы до Яндекса ping составляет от 13-15 мс, до Google 21-25 мс.
- Мобильный интернет - тут так же нормальным можно считать от 30-120 мс.
Все эти временные задержки могут быть критичными для ряда сервисов или игр, например если ping превышает определенный предел в кластере из серверов, то могут быть проблемы с их согласованностью, в играх так же могут быть проблемы с соединением. Например, низкий пинг в играх-шутерах от первого лица (FPS), стратегиях в реальном времени, гоночных играх и многопользовательских играх означает более высокую скорость передачи данных и получение ответа сервера в игре - и, в конечном итоге, более плавный игровой процесс. Те, у кого высокий ping, скорее всего, будут испытывать задержки (или лаги) в игре, что в конечном итоге повлияет на результат игры. Фактически, при еще более высоких значениях серверы многих игр FPS автоматически отключают этих игроков. Во многих онлайн-играх отображается ваше время пинга, а также пинг других игроков или серверов.
Что такое задержка?
В то время как ping - это сигнал, который отправляется с одного компьютера на другой в той же сети, задержка - это время (в миллисекундах), которое требуется для возврата ping на компьютер. Таким образом, задержка - это измерение всего пути приема этого сигнала туда и обратно, в то время как пинг - только в одну сторону.Также важно знать, что задержка относится к качеству, но не к скорости вашего сетевого подключения. Скорость сетевого подключения состоит из двух элементов. Первый - это пропускная способность (или количество данных, которые могут быть переданы в течение определенного периода времени); а второй - задержка, то есть время прохождения данного объема данных. Ping часто используется как синоним термина "задержка". Поэтому, когда вы слышите, как геймеры используют термины "низкая задержка" и "высокая задержка", они часто являются синонимами "низкий ping" и "высокий ping". Но это не совсем так.
Запросы в утилите PING
Давайте проверим доступность Яндекса вводим
Видим, что мы получили от него 4 пакета, по умолчанию утилита ping отправляет 4 пакета по 32 байта
Утилита ping или как проверить доступность хоста. Сетевые утилиты 1 часть-03
Если поставить ключик -t то пинг будет постоянным, это полезно когда например вы длительное время смотрите связь с нужным вам хостом, тут можно посмотреть количество потерянных пакетов и доставленных, на основании чего можно посмотреть качество канала, еще чем меньше время ответа тем лучше, в локальной сети у вас пинг не должен быть больше 1-2 мл секунд между компьютерами домена.
Утилита ping или как проверить доступность хоста. Сетевые утилиты 1 часть-04
Иногда бывает ситуация, что какие то пакеты бегают до цели а какие то нет, полезно посмотреть например проходят ли пакеты размером побольше и нет ли на железном роутере или коммутаторе каких ограничений на размер пакета. Вводим команду с ключом -l? ult 4096 это число байт.
Утилита ping или как проверить доступность хоста. Сетевые утилиты 1 часть-05
Почему не отвечает сервер на пакет PING?
Хотя ping является быстрым средством проверить доступность узла в сети, он же может создавать огромные проблемы и области сетевых атак, поэтому многие публичные сайты просто отключают его прохождение на свои серверы, например компания Microsoft, которая так же запрещает Ping до своего сайта, но это не означает, что он не работает.
DNS (Domain Name System) — это система доменных имён, с помощью которой каждому имени домена сопоставляется его реальный IP адрес. В основе самого понятия DNS лежит представление о структуре доменного имени и зонах. Чтобы понять, как работать с доменными именами в Linux, нам необходимо изучить основные команды для работы с DNS, их синтаксис и примеры применения на практике. В этой статье рассмотрим следующие команды: host, nslookup, dig, whois, ping. Все практические задачи по работе с доменными именами мы покажем на нашем VPS под управлением серверной ОС CentOS 7. Для работы нам потребуется установить пакет утилит: bind-utils, без которого в CentOS 7 не будут работать команды host, nslookup, dig.
Также в синтаксисе некоторых команд мы будем использовать основные DNS записи для доменного имени (A, AAAA, MX, NS, SOA, TXT, CNAME, PTR), ниже расшифруем, что означает каждая из них.
Зарегистрировать домен Вы можете здесь.
Основные DNS записи для домена
Все владельцы доменов могут зайти в свой рабочий кабинет у хостинг-провайдера (или регистратора доменных имен) и посмотреть записи для своего домена, оформленные, как правило, в виде таблицы, которая содержит следующие поля:
- Имя (хост, псевдоним);
- Тип записи;
- Значение (IP адрес, назначение, ответ и т.д.).
Существуют следующие типы записей:
Команда dig
Одна из основных команд Linux для работы с доменами — это dig (domain information groper). Утилита предоставляет возможность узнать о домене наиболее полную информацию, например, IP адрес, который привязан к данному доменному имени и еще ряд полезных для системного администратора параметров. Синтаксис команды dig следующий:
dig [@сервер] [имя домена] [тип записи] [флаги], где:
- @cервер — указывает IP-адрес сервера DNS, если не указать этот параметр, то обращение идет к серверу DNS «по умолчанию»;
- имя домена — указывает имя домена, о котором нужно получить информацию;
- тип записи — тип записи DNS (А, MX, TXT, NS и т.д.);
- флаги — с помощью флагов можно задать дополнительные опции утилиты dig.
Ниже укажем основные флаги утилиты dig:
- +[no]all — используется для вывода на экран или сокрытия всех установленных «по умолчанию» флагов;
- +[no]answer — необходима для отображения только ответа на запрос;
- +short — выводит информацию о домене в сокращенном формате;
- +[no]identify — применяется совместно с флагом +short для отображения информации об IP-адресе сервера;
- +[no]comments — служит для вывода информации без комментариев;
- +[no]trace — используется для вывода списка DNS серверов, через которые идет запрос на получение данных о домене.
Дополнительно, могут быть использованы следующие опции для команды dig:
- -4 — разрешает к использованию только IPv4;
- -6 — разрешает к использованию только IPv6;
- -x — служит для получения имени домена по его IP-адресу;
- -f — предназначена, чтобы прочитать список доменов из файла;
- -t — служит для обозначения типа записи, которую надо вывести на экран;
- -p — показывает номер порта DNS сервера.
Мы показали только часто употребляемые флаги и опции команды dig, для получения полной информации по данному вопросу советуем воспользоваться командой:
Сейчас приведем практические примеры использования утилиты dig. Самый простой случай применения dig:
Например, введем в терминале:
Как понять результаты выполнения этой команды? Информация условно поделена на три секции:
- секция HEADER — показывает текущую версию утилиты dig, ID запроса и т. д.;
- секция QUESTION SECTION — выводит на экран текущий запрос;
- секция ANSWER SECTION — отображает ответ на созданный запрос (в нашем запросе выводит IP домена).
Если вы хотите получить только основные данные по домену, то стоит задать сокращенный запрос следующей командой:
При использовании флага +noall будет отключен вывод на экран информации всех трех секций:
Если вы хотите увидеть информацию только из секции ANSWER SECTION, то выполните следующую команду:
При необходимости получить такого рода информацию по нескольким доменам сразу, советуем создать специальный файл sites.txt в редакторе nano и занести туда доменные имена нужных сайтов, например:
Далее следует выполнить команду в терминале:
Теперь попробуем получить определенные типы записей DNS (A, MX, NS, TXT и т.д.), для этого выполняем команду dig, применяя следующие флаги, например, для типа записи «почтовый сервер»:
Или же, если мы хотим получить ответ только для третьей секции утилиты dig:
Для решения обратной задачи — получения имени домена по IP-адресу, выполним команду dig с опцией -x:
Попытаемся узнать, через какие DNS сервера идет запрос для получения информации о домене (команда трассировки в Linux):
Для вывода текущей версии утилиты dig воспользуемся опцией -v:
Для проверки синхронизации зоны со всеми NS введем команду:
Команда nslookup
Эта команда также позволяет получить информацию по домену или по IP адресу. Основной синтаксис написания nslookup:
nslookup [опции] [доменное имя] [сервер]
где [сервер] — указывать необязательно.
Самый простой пример использования nslookup приведем ниже:
Можем выполнить и обратную задачу — по IP адресу узнать доменное имя сайта.
Ниже приведем основные опции команды nslookup:
- type – записывается тип записи DNS (к примеру, NS, TXT, SOA и др.);
- port – указывается номер порта;
- recurse – в случае, когда DNS не отвечает, использовать другие DNS;
- retry – задается количество попыток;
- timeout – время;
- fail – в случае, когда DNS возвращает ошибку, необходимо использовать другой сервер.
Приведем примеры команды, с использованием опции type (тип записи), например, для получения записей типа NS, MX, TXT, SOA и т.д.:
Техническую информацию о домене можно получить в ответе, запустив команду nslookup с параметром для типа записи SOA:
- origin — источник информации;
- mail addr — указывает email address администратора домена;
- serial — показывает время в формате timestamp;
- refresh — выводит время в секундах, в течении которого нужно повторить подключения, чтобы обновить информацию;
- retry — указывает время в секундах, через которое необходимо опять повторить подключения к DNS, в случае, если он недоступен;
- expire — показывает интервал времени в секундах, через который нужно считать информацию, полученную от первого DNS, устаревшей;
- minimum — это время в секундах, которое проходит до следующего обновления.
Команда whois
Whois — это сервис, который позволяет узнать всю информацию о владельце домена. В ОС Linux эту команду можно вводить прямо в терминале. В CentOS 7 данная служба не установлена «по умолчанию», поэтому необходимо ее установить:
Для изучения всех параметров команды whois выполните:
Команда ping
Команда ping известна всем пользователям сети, которые сталкивались с проблемами с соединением. Ping служит для того, чтобы узнать, есть ли связь с удаленным узлом сети, используя протокол ICMP (Internet Control Message Protocol). Принцип действия утилиты простой: на удаленный хост передается пакет с данными ICMP, с целью получить пакет с ответом — если он приходит, то удаленный узел считается доступным.
Синтаксис данной команды:
ping [опции] [адрес удаленного узла]
На скриншотах ниже показаны простые примеры использования команды ping:
Команда ping может исполняться достаточно долго, для выхода из этого режима необходимо нажать комбинацию клавиш: ctrl+c.
Ниже приведем некоторые опции утилиты ping с примерами:
Команда host
Еще одна команда для работы с DNS — это host. Она предназначена для получения информации о доменном имени, например, чтобы по имени домена узнать IP адрес:
Данную команду можно использовать со следующими опциями, например:
- -l — выводит на экран всю информацию о домене;
- -v — выдает результаты в подробном формате;
- -w — принуждает утилиту host ждать ответ;
- -r — используется для выключения режима рекурсии (в этом случае DNS-сервер не обращается за информацией к другим DNS-серверам, используется только локальная база);
- -d — необходимо для включения режима отладки;
- -t querytype — определяет тип запроса (например, -t TXT — возвращает только тип записи TXT для домена);
- -a — служит для восстановления всех записей в DNS.
Заключение
В данной статье мы рассказали нашим читателям, как работать с системой доменных имён (DNS) с помощью команд host, nslookup, dig, whois, ping. В нашем материале приведены практические задачи, которые может решать системный администратор или пользователь Linux в своей ежедневной работе, применяя эти утилиты.
Кроме того, эта команда используется для поиска и устранения проблем с DNS. В данном руководстве мы рассмотрим наиболее типичные примеры ее применения.
Синтаксис команды nslookup
Наиболее распространенные опции и типы аргументов мы рассмотрим ниже в соответствующих примерах.
Получение IP-адреса домена
Авторитативный и неавторитативный ответы
В приведенном результате присутствует фраза «Non- Authoritative Answer» (неавторитативный ответ).
Авторитативным считается ответ от DNS-сервера, на котором есть полная информация о зоне домена. Во многих случаях на DNS-серверах такой информации нет, они хранят кэш с результатами прошлых запросов, на которые был получен авторитативный ответ. Когда такой сервер получает запрос, он осуществляет поиск в файле кэша и при наличии необходимых данных отправляет их как неавторитативный ответ, как в рассматриваемых нами примерах.
Запрос записи MX
Запрос записи NS
Запись NS (Name Server, сервер имен) содержит соответствие доменного имени DNS-серверу, авторитативному для заданного домена. Ее можно получить при помощи опции -query=ns:
Запрос записи SOA
Запись SOA (Start of Authority, начальная запись зоны) содержит информацию о зоне домена, адрес его администратора, серийный номер и т.д. Ее можно получить при помощи опции -query=soa:
Просмотр всех имеющихся записей DNS
При помощи опции -query=any мы можем просмотреть все записи DNS, которые у нас есть для заданного доменного имени:
Обратный поиск DNS
Если вместо имени указать в качестве аргумента IP-адрес, будет выполнен обратный поиск DNS:
Использование конкретного DNS-сервера
Изменение номера порта
По умолчанию DNS-серверы используют порт 53, но при необходимости можно указать другой номер порта посредством опции -port:
Изменение интервала ожидания ответа
Интервал ожидания ответа по умолчанию можно изменить, указав желаемое значение в секундах с опцией -timeout:
Режим отладки
При помощи опции -debug вы можете включить режим отладки:
В режиме отладки при поиске выводится информация о пакетах.
Интерактивный режим
Для входа в интерактивный режим запустите команду nslookup без опций. Далее можно вводить необходимые имена или адреса, а также устанавливать парметры при помощи команды set, например, следующие команды интерактивного режима:
возвращают результат, аналогичный команде
Конечно, при поиске записей для одного имени использовать интерактивный режим бессмысленно. Но при необходимости работы с большим количеством записей он очень удобен, так как позволяет работать в режиме диалога.
Заключение
Мы рассмотрели основы работы с командой nslookup, а также основные типы записей DNS. Для более подробной информации о команде и ее опциях можно обратиться к соответствующей man-странице.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Читайте также: