Диагностика сетевого подключения (ping, arp, traceroute, dig, nslookup)
Содержание:
Утилита Ping
Назначение состоит в определении возможности прохождения пакетов от узла на котором выполняется запрос до узла в сети. Команда ping посылает ICMP ECHO запрос на целевой узел и получает ECHO ответ в случае доступности узла. Если в течении определенного времени ответ не получен утилита завершает работу с выводом строки «unknown host». При удачном запросе возвращает обобщенную статистику и строки вида (UNIX и MacOS):64 bytes from (): icmp_seq=1 ttl=57 time=27.8 ms
где 64 bytes — кол-во переданных байт с одним пакетом, icmp_seq — номер запроса, ttl(time to live) — время жизни IP (в приближенном смысле не более маршрутизаторов на пути, чем значение ttl, т.к. прохождение по каждому из роутеров на пути отклика уменьшает значение на 1, а 0 анулирует пакет), time — быстрота прохождения пакетов по всему пути в миллисекундах.
Откройте командную строку или терминал и введите следующие строки ping . В системе Windows используйте ключ -t. Если Вы начали получать ответ, подождите достаточное кол-во повторений для определения устойчивости связи и, если остановок не возникает, будьте уверены, что доступ к нужному компьютеру в сети есть и ошибки стоит искать в настройках локальной системы. К примеру, в настойках самого браузера, антивируса или сетевого экрана. Если же значение packet loss в обощенной статистике работы утилиты отличается от 0%, возможно, вам стоит попробовать несколько раз перезагрузить страницу. При значительных сбоях в пинге и завершении работы с сообщением «unknown host» стоит попробовать найти проблемный узел с помощью утилиты Tracert (в UNIX системах может иметь аналог traceroute).
Синтаксис nslookup
Рассмотрим синтаксис команды.
nslookup
Домен — доменное имя. Сервер — необязательный аргумент
Основные опции:
- -type — тип записи ДНС. ns, txt, ptr, cname, soa и другие;
- -port — порт ДНС;
- -recurse — если ДНС не отвечает, то использоваться другие DNS;
- -retry — количество попыток;
- -timeout — время;
- -fail — если DNS доменных имен возвращает ошибку, то использовать другой сервер.
Примеры
Узнаем IP-адрес сайта vseprolinux.ru. Для этого выполним команду без аргументов.
nslookup vseprolinux.ru
На скриншоте выше видно:
- Server: 192.168.201.254 — адрес текущего ДНС сервера компьютера, который указан а настройках сети, в моем случае /etc/resolv.conf
- Address: 192.168.201.254#53 — IP-адрес вместе с портом. По умолчанию используется 53 порт.
- Non-authoritative answer — не авторитетный ответ. Такой ответ выдается в двух случаях: ДНС не обслуживает зону, и ответ получен из кэша, данные могли устареть. Авторитетным ответом будет считаться только если сервер имеет полную информацию о зоне.
- 195.161.114.71 — IP-адрес сайта.
Теперь сделаем обратное преобразование.
nslookup 195.161.114.71
Получим NS запись.
nslookup -type=ns vseprolinux.ru
Как узнать адрес почтового сервера MX (Mail eXchange)?. Для этого введем команду
nslookup -type=mx vseprolinux.ru
Запись MX содержит всего два поля:
- приоритет;
- адрес сервера принимающего почту для данного домена.
- spf — Sender Policy Framework. Представляется собой текстовую запись, которая содержит список хостов, которые имеют права отправлять письма от домена;
- dkim -DomainKeys Identified Mail. TXT запись ключа. Для определения отправителя добавляется цифровая подпись, далее подпись автоматически проверяется получателем.
Чтобы узнать TXT надпись, введем в терминале команду с типом txt:
nslookup -type=txt vseprolinux.ru
Утилита может вывести техническую информацию о домене «Start Of Authority». Для этого используется тип запроса soa:
nslookup -type=soa vseprolinux.ru
Утилита в Линуксе покажет такие записи:
- origin — от кого узнали информацию;
- mail addr — email address администратора домена;
- serial — время в формате timestamp;
- refresh — время в секундах, когда нужно повторить подключения для обновления информации;
- retry — время в секундах, через которое повторять подключения к DNS, если он недоступен;
- expire — время в секундах, через сколько времени считать иформацию устаревшей полученную от первого ДНС;
- minimum — время в секундах до следующего обновления.
Выполнение обратного запроса [ править | править код ]
При запросе считывается запись «PTR», содержащая искомое доменное имя. Если запись отсутствует или соответственный поддомен не делегирован, то IP-адрес считается не имеющим обратной записи DNS.
PTR-записи не требуют какой-либо специальной обработки, это простые записи, подобные CNAME, который определяет псевдонимы.
in-addr.arpa
DNS-запись in-addr.arpa выглядит так:
Это будет означать, что IP-адресу 10.12.34.56 соответствует имя узла host1.example.net.
ip6.arpa
DNS-запись ip6.arpa выглядит так:
Это будет означать, что IPv6-адресу 2001:0db8::1:2345 соответствует имя узла host1.example.net.
Параметры
Команда | Синтаксис | Описание |
---|---|---|
nslookup exit | /exit | Выход из утилиты. |
nslookup finger | finger | >] | Соединение с finger сервером на текущем ПК. |
nslookup help | /help | Выводит краткий список доступных подкоманд nslookup. |
nslookup ls | ls | >] | Выводит информацию о домене. |
nslookup lserver | lserver | Меняет стандартный сервер для заданного домена DNS. |
nslookup root | root | Меняет стандартный сервер, на корневой сервер DNS. |
nslookup server | server | Меняет стандартный сервер имён, на выбранный вами. |
nslookup set | set | Изменение стандартной конфигурации утилиты nslookup. |
nslookup set all | set all | Выводит параметры текущей конфигурации. |
nslookup set class | set > | Меняет класс запроса. Класс указывает группу протоколов информации. |
nslookup set d2 | set d2 | Включает или выключает глубокий режим отладки. В режиме отладки выводятся данные о каждого пакета. |
nslookup set debug | set debug | Включает или выключает режим отладки. |
nslookup set defname | set defname | Добавляет используемый по умолчанию домен DNS, к запросу на поиск одиночного компонента. Компонент называется одиночным, если не содержит точек. |
nslookup set domain | set domain= | Изменяет имя домена по умолчанию (DNS) на указанное имя. |
nslookup set ignore | set ignore | Игнорировать ошибки с неполными пакетами. |
nslookup set port | set port= |
Изменяет стандартный TCP/UDP порт сервера DNS на указанный.
nslookup set querytype
set querytype=
Изменяет тип записи ресурса для запроса.
nslookup set recurse
set recurse
Указывает DNS серверу по умолчанию, опросить другие сервера в сети, если у него нет необходимой информации.
nslookup set retry
set retry=
Указать число необходимых повторов запроса.
nslookup set root
set root=
Изменяет адрес коренного сервера.
nslookup set search
set search
Добавляет имена доменов DNS из списка поиска доменов DNS в запрос, до тех пор пока не будет получен ответ. Данный метод используется в тех случаях, когда set и lookup содержат хотя-бы одну точку, но не содержат завершающей точки.
nslookup set srchlist
Set srchlist=
Изменяет стандартное имя домена DNS и список поиска.
nslookup set timeout
set timeout=
Изменяет таймаут ожидания ответа в секундах.
nslookup set type
set type=
Изменяет тип записи ресурса для запроса.
nslookup set vc
set vc
Указывает использовать или не использовать виртуальную цепь при отправке запросов на сервер.
nslookup view
view
Вывод и сортировка данных, полученных ранее при помощи команды ls.
Причины ошибок в файле Nslookup.exe
Проблемы Nslookup.exe могут быть отнесены к поврежденным или отсутствующим файлам, содержащим ошибки записям реестра, связанным с Nslookup.exe, или к вирусам / вредоносному ПО.
Более конкретно, данные ошибки nslookup.exe могут быть вызваны следующими причинами:
- Поврежденные ключи реестра Windows, связанные с nslookup.exe / Windows.
- Вирус или вредоносное ПО, которые повредили файл nslookup.exe или связанные с Windows программные файлы.
- Другая программа злонамеренно или по ошибке удалила файлы, связанные с nslookup.exe.
- Другая программа находится в конфликте с Windows и его общими файлами ссылок.
- Поврежденная загрузка или неполная установка программного обеспечения Windows.
Примечания
- Если computerTofind является IP-адресом, а запрос хочет получить A или PTR запись, возвращается имя компьютера. Если computerTofind является именем и у него нет точки в конце, к имени добавляется имя домена DNS по умолчанию. Это зависит от состояния следующих заданных подкоманд: domain, srchlist, defname и search.
- Если вы используете дефис (-) вместо computerTofind, утилита nslookup перейдёт в интерактивный режим.
- Длина строки не может превышать 256 символов.
- nslookup имеет два режима: интерактивный и неинтерактивный. Если вы собираетесь воспользоваться утилитой единожды – используйте неинтерактивный режим. Первым параметром введите имя или IP-адрес компьютера, который вы хотите найти, а вторым параметром введите имя или IP-адрес сервера DNS-имен. Если вы опустите второй аргумент, nslookup использует DNS-сервер по умолчанию. Если вам нужно использовать утилиту несколько раз, вы можете войти в интерактивный режим. Для этого введите дефис (-) для первого параметра и имя или IP-адрес сервера имен DNS для второго параметра. Или опустите оба параметра, и nslookup использует DNS-сервер по умолчанию. Ниже приведены некоторые советы о работе в интерактивном режиме:
- Чтобы прервать линию интерактивных команд в любое время, нажмите CTRL + B.
- Чтобы выйти, введите exit.
- Чтобы обработать встроенную команду в качестве имени компьютера, перед ним следует использовать escape-символ ().
- Неопознанная команда интерпретируется как имя компьютера.
Если поиск не сработал, утилита nslookup выдаст сообщение об ошибке. В следующей таблице перечислены возможные сообщения об ошибках:
Сообщение об ошибке | Описание |
---|---|
timed out | Сервер не отвечает на запрос, спустя какое-то время (таймаут), и какое-то количество попыток запроса. Вы можете установить таймаут запроса, использовав подкоманду set timeout. Вы можете установить количество попыток запроса, использовав подкоманду set retry. |
No response from server | Сервер DNS не отвечает на запросы утилиты nslookup. |
No records | На DNS сервере нет записей по вашему запросу, если конечно, вы не ошиблись в имени домена. Формат запроса определяется подкомандой set querytype. |
Nonexistent domain | Компьютер или имя домена не существуют. |
Connection refused или Network is unreachable | Соединение с сервером DNS не установлено. Это ошибка чаще всего происходит при использовании команд ls и finger |
Server failure | Сервер DNS определил внутреннюю ошибку в своей базе данных, и не может предоставить правильный ответ. |
Refused | Сервер DNS прервал соединение. |
Format error | Сервер DNS обнаружил неверный формат в запросе. Чаще всего это происходит из-за ошибки утилиты nslookup |
Что значит “Не заслуживающий доверия ответ”?
Сообщение “Не заслуживающий доверия ответ:” (Non-authoritative answer: ) означает только то, что DNS-сервер по умолчанию, не является владельцем зоны запрашиваемого домена, т.е. записей об этом домене в его собственной базе нет, и для предоставления информации был сделан рекурсивный запрос к другому серверу DNS. Так что в принципе, в этом сообщении ничего страшного нет.
Синтаксис
PowerShell
nslookup
nslookup /exit
nslookup /finger <FileName>| <FileName>}]
nslookup /{help | ?}
nslookup /ls <DNSDomain> <FileName>| <FileName>}]
nslookup /lserver <DNSDomain>
nslookup /root
nslookup /server <DNSDomain>
nslookup /set <KeyWord>
nslookup /set all
nslookup /set class=<Class>
nslookup /set d2
nslookup /set debug
nslookup /set defname
nslookup /set domain=<DomainName>
nslookup /set ignore
nslookup /set port=<Port>
nslookup /set querytype=<ResourceRecordtype>
nslookup /set recurse
nslookup /set retry=<Number>
nslookup /set root=<RootServer>
nslookup /set search
nslookup /set srchlist=<DomainName>
nslookup /set timeout=<Number>
nslookup /set type=<ResourceRecordtype>
nslookup /set vc
nslookup /view <FileName>
1 |
nslookup<-SubCommand…>{<computerTofind>|-<Server>} nslookup/exit nslookup/finger<UserName>{><FileName>|>><FileName>} nslookup/{help|?} nslookup/ls<Option><DNSDomain>{><FileName>|>><FileName>} nslookup/lserver<DNSDomain> nslookup/root nslookup/server<DNSDomain> nslookup/set<KeyWord>=<Value> nslookup/setall nslookup/setclass=<Class> nslookup/setnod2 nslookup/setnodebug nslookup/setnodefname nslookup/setdomain=<DomainName> nslookup/setnoignore nslookup/setport=<Port> nslookup/setquerytype=<ResourceRecordtype> nslookup/setnorecurse nslookup/setretry=<Number> nslookup/setroot=<RootServer> nslookup/setnosearch nslookup/setsrchlist=<DomainName>/… nslookup/settimeout=<Number> nslookup/settype=<ResourceRecordtype> nslookup/setnovc nslookup/view<FileName> |
Список команд на сайте Майкрософт.
Синтаксис команды
Синтаксис команды nslookup подробно описан в man-странице.
$ nslookup
Nslookup имеет два режима: интерактивный и неинтерактивный. Интерактивный режим позволяет пользователю запрашивать у серверов имен информацию о различных хостах и доменах или распечатывать список хостов в домене. Неинтерактивный режим используется для печати только имени и запрашиваемой информации для хоста или домена.
Интерактивный режим
Интерактивный режим вводится в следующих случаях:
- когда аргументы не заданы (будет использоваться сервер имен по умолчанию)
- когда первый аргумент является дефисом (-), а второй аргумент является именем хоста или интернет-адресом сервера имен.
$ nslookup >
Команды могут быть прерваны в любое время, набрав control-C. Чтобы выйти, введите control-D (EOF) или введите exit.
$ nslookup > exit
Чтобы рассматривать встроенную команду как имя хоста, добавьте перед ней символ экранирования (. & \.). Нераспознанная команда будет интерпретироваться как имя хоста.
- host — поиск информации для хоста, используя текущий сервер по умолчанию или указанный сервер. Если хост — это интернет-адрес, а тип запроса — A или PTR, возвращается имя хоста.
- server domain — изменить сервер на domain.
- lserver domain — изменить сервер по умолчанию на domain; lserver использует исходный сервер для поиска информации о domain, в то время как server использует текущий сервер по умолчанию (установленный самой командой server).
- root — установить текущий сервер по умолчанию как корневой, в не реализована.
- ls domain — перечисление адресов в домене domain (необязательно: вывод в файл FILE), в не реализована.
Опции для команды ls:
OPTION | Описание |
---|---|
-a | перечисление канонических имен и псевдонимов |
-d | перечисление всех записей |
-t TYPE | перечисление записей указанного типа RFC (A,CNAME,MX,NS,PTR) |
- view FILE — сортировка файла ls и его просмотр с помощью pg, в не реализована.
- help или ? — печать сведений о стандартных командах, в не реализована.
- set keyword — команда используется для изменения параметров поиска.
Параметры для команды set:
keyword | Описание | value |
---|---|---|
all | Печатает текущие значения часто используемых параметров для установки. Информация о текущем сервере и хосте по умолчанию также печатается. | |
class=value | установить класс запроса |
|
debug | печать отладочных сведений | |
d2 | печать полных отладочных сведений | |
domain | установить имя домена по умолчанию NAME | NAME |
search | использовать список поиска доменов | |
port | изменить значение по умолчанию для порта | value (по умолчанию 53) |
type | установить тип запроса | A,AAAA,A+AAAA,ANY,CNAME,MX ,NS,PTR,SOA,SRV |
querytype | то же, что и type | |
recurse | запрос рекурсивного ответа на запрос | |
retry | установить число повторов number | number |
timeout | установить интервал времени ожидания в number секунд | number |
vc | всегда использовать виртуальную схему | |
failR | попробовать следующий сервер имен, если сервер имен отвечает SERVFAIL или завершает запрос (fail) на такой ответ. |
Неинтерактивный режим
Неинтерактивный режим используется, когда в качестве первого аргумента указывается имя или интернет-адрес искомого хоста. Необязательный второй аргумент указывает имя хоста или адрес сервер имен.
Параметры, используемые в интерактивном режиме, также могут быть указаны в командной строке, если они предшествуют аргументам и имеют префикс с дефисом. Например, чтобы изменить тип запроса по умолчанию на информацию о хосте, а начальное время ожидания до 10 секунд, введите:
nslookup -query=hinfo -timeout=10
Опция -version заставляет nslookup напечатать номер версии и немедленно завершает работу.
nslookup -version
Interactive commands
host [server] | Look up information for host using the current default server, or server if specified. If host is an Internet address and the query type is A or PTR, the name of the host is returned. If host is a name and does not have a trailing period, the search list is used to qualify the name. To look up a host not in the current domain, append a period to the name. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
server domain, lserver domain | Change the default server to domain; lserver uses the initial server to look up information about domain, while server uses the current default server. If an authoritative answer can’t be found, the names of servers that might have the answer are returned. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
exit | Exits the program. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
set keyword[=value] | Used to change state information that affects the lookups. Valid keywords are:
|
Заключение
Мы рассмотрели основы работы с командой nslookup, а также основные типы записей DNS. Для более подробной информации о команде и ее опциях можно обратиться к соответствующей man-странице.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Обратный просмотр DNS (англ. reverse DNS lookup ) — обращение к особой доменной зоне для определения имени узла по его IP-адресу c помощью PTR-записи.
Для выполнения запроса адрес узла переводится в обратную нотацию, способ перевода зависит от версии IP:
- IPv4-адрес 192.168.0.1 превращается в 1.0.168.192.in-addr.arpa.;
- IPv6-адрес 2001:db8::567:89ab — в b.a.9.8.7.6.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa. .
Благодаря иерархической модели управления именами появляется возможность делегировать управление зоной владельцу диапазона IP-адресов. Для этого в записях авторитетного DNS-сервера указывают, что за зону CCC.BBB.AAA.in-addr.arpa (то есть за сеть AAA.BBB.CCC.000/24) отвечает отдельный сервер.
Количество PTR-записей, описывающих разные имена, на один адрес не ограничивается спецификациями, но может ограничиваться размером UDP-пакета, так как DNS-сервер инкапсулирует свой ответ в UDP. В большинстве случаев для одного IP-адреса создаётся только одна PTR-запись, но бывает и так, что их создаётся множество — например, когда IP-адрес используется для нескольких виртуальных серверов с разными именами.