DNS диагностика с командата nslookup

Помощен център

DNS диагностика с командата nslookup

Nslookup (name server lookup) е мрежов административен инструмент за изпращане на запитвания към DNS (Domain Name System) и резолване на домейн имена, IP адреси или други специфични DNS записи. Използва се също за отстраняване на проблеми, свързани с DNS.

Авторитетен и не-авторитетен отговор

Всеки отговор от DNS сървъра, на който се хоства DNS зоната на домейна (зоновия файл), се счита за авторитетен отговор.

В много случаи DNS сървърите не разполагат с цялата информация в зоновия файл на домейна. Вместо това те поддържат кеш файл, в който пазят резултатите от всички заявки, за които е получен авторитетен отговор. Когато е получена заявка за DNS запис, сървъра търси в кеш файла и връща информацията, която е на разположение, като не-авторитетен отговор.

Интерактивен и не-интерактивен режим

Nslookup има два режима на работа: интерактивен и не-интерактивен.

Интерактивният режим позволява на потребителя да изпраща запитвания към нейм сървъри за различни хостове и домейни или да показва списъци на хостове в домейн.

Не-интерактивният режим се използва за показване само на домейн и исканата информация за хост или домейн.

За да започнете интерактивна сесия, просто въведете командата nslookup и натиснете бутона Enter:

netnslookup

Така ще отворите специален терминал, в който може да изпълнявате поредица от команди в интерактивен режим, като въвеждате nslookup командите без опции:

netnslookup

Когато искате да излезете, въведете exit.

Подробно описание на интерактивните команди може да видите на този URL: https://man.cx/nslookup(1)

За не-интерактивно търсене, добавете домейн името след командата:

nslookup google.com

netnslookup

Ако има наличен източник за авторитетни отговори, той ще бъде посочен в долната част на информацията под реда:

Authoritative answers can be found from:

Примерите, които ще разгледаме в статията се отнасят само за работа на nslookup в не-интерактивен режим.

По подразбиране nslookup ще свърже домейн име с IP адрес (или обратно). Например, за да разберете какъв е IP адресът на google.com, може да изпълните командата:

nslookup google.com

netnslookup

Тук 2001:470:b368:1070::1 е IPv6 адреса на DNS сървъра. #53 показва, че комуникацията с него се извършва на стандартния UDP/TCP порт 53.

След това е записан отговора на сървъра: google.com резолва IP адрес 216.58.218.238.

Също така е посочено, че отговора е не-авторитетен. За авторитетен се счита отговора от DNS сървър, на който се хоства зоновия файл на домейна. Когато DNS сървър връща отговор от своя кеш, въпреки че информацията в кеша е получена от авторитетен DNS сървър отговора се записва като не-авторитетен.

Обратно (reverse) търсене

Обратното търсене проверява за наличието на PTR запис за домейна. При наличие на такъв запис запитване за IP адреса връща като отговор домейн името:

nslookup 216.239.34.10

netnslookup

Запитване за неймсървъри (NS запис) на домейн

NS записите (поне два за всеки домейн) показват всички неймсървъри , които са авторитетни за този домейн (съдържат пълния зонов файл с всички DNS записи за домейна).

За да изпратите запитване за нейм сървърите на домейн използвайте опцията -type=ns:

nslookup -type=ns google.com

network nslookup

Запитване за MX запис

MX записите показват кои мейл сървъри и в каква последователност (приоритет) обслужват мейл системата на домейна.

За да изпратите запитване за MX записите на домейн използвайте опцията -type=mx:

nslookup -type=mx google.com

network nslookup

Особеност при МХ записите е подреждането на приоритетите на мейл сървърите - сървъра с най-малка цифра пред името има най-висок приоритет и всички писма се изпращат към него (в примера 10 aspmx.l.google.com). Ако поради някаква причина този сървър не е наличен, писмата се насочват към следващия по приоритет мейл сървър.

Запитване за SOA запис

Записът SOA (Start Of Authority) предоставя техническа информация за домейна. Въведете опцията -type=soa за да изпратите заявката:

nslookup -type=soa microsoft.com

netnslowork okup

Информацията, посочена тук, е кешираната версия на SOA секцията в зоновия файл. Ето кратко описание на отделните параметри:

  • origin - авторитетния DNS сървър, който съдържа информацията.
  • mail addr - имейл адреса на администратора на домейна. Първата точка замества символа @ в имейл адрес, така че имейл адресът е msnhst@microsoft.com.
  • serial - показва датата на последната промяна на зоновия файл във формат YYYYMMDDNN. В примера последната промяна е от 26 януари 2018 г. 08 означава, че през този ден са направени 8 промени във файла.
  • refresh - показва времето в секунди, след което вторичния (secondary) нейм сървър трябва да изпрати запитване към главния (master) нейм сървър относно SOA записа за промени в DNS зоната. Препоръка за малки и стабилни зони е това време да не надвишава 24 часа, в примера информацията се опреснява на всеки два часа.
  • retry - показва времето в секунди, след което вторичния неймсървър трябва да изпрати нова заявка за серийния номер към главния неймсървър ако той не отговаря. Това време трябва да е по-малко от стойността на Refresh - препоръчва се времето да не надвишава 2 часа - в примера стойността е 10 минути.
  • expire - показва времето в секунди след което вторичните неймсървъри трябва да спрат да отговарят на заявки ако главния неймсървър не отговаря. Това време трябва да е по-голямо от Refresh и Retry - препоръча се стойност 3600000 секунди (1000 часа), в примера стойността е 672 часа.
  • minimum - дори когато DNS сървър отговаря, че определен запис не съществува, този отговор се кешира и параметъра minimum определя продължителността на живота на този кеш - в примера това време е 3600 секунди (един час).

Преглед на всички DNS записи

Можем да разгледаме всички NS записи за домейн, като използваме опцията -type=any:

nslookup -type=any google.com

netnwork slookup

Заявявка към конкретен неймсървър

По подразбиране nslookup ще изпраща всички заявки към конфигурирания DNS сървър. nslookup позволява да се изпрати заявка към авторитетен DNS сървър като се добави името на неймсървъра след името на домейна:

nslookup google.com ns2.google.com

netnslookwork up

Запитване на нестандартен порт

По подразбиране неймсървърите приемат заявки на порт 53. Ако DNS сървъра е конфигуриран да работи на друг порт, може да изпратите конкретна заявка като използвате опцията -port=:

nslookup -port=54 google.com

network nslookup

В примера заявката е неуспешна тъй като DNS използва стандартния порт 53.

Режим за отстраняване на грешки

Режимът за отстраняване на грешки в nslookup е полезна функция и се използва от опитни потребители. В режим на отстраняване на грешки nslookup изброява стъпките, които се предприемат, за да се изпълнят командите. Този режим на работа се активира с помощта на опцията -debug:

nslookup -debug google.com

nework tnslookup

Дошъл ли е краят на употребата на nslookup?

Командата nslookup се класифицира като неодобрена (deprecated) от ISC (Internet Systems Consortium) в полза на инструментите host и dig. Тези по-модерни инструменти предоставят всички функции като nslookup и се ползват с по-голяма популярност.

В отделни статии ще ви представим тези два инструмента за DNS диагностика - host и dig.