Nslookup (name server lookup) е мрежов административен инструмент за изпращане на запитвания към DNS (Domain Name System) и резолване на домейн имена, IP адреси или други специфични DNS записи. Използва се също за отстраняване на проблеми, свързани с DNS.
Авторитетен и не-авторитетен отговор
Всеки отговор от DNS сървъра, на който се хоства DNS зоната на домейна (зоновия файл), се счита за авторитетен отговор.
В много случаи DNS сървърите не разполагат с цялата информация в зоновия файл на домейна. Вместо това те поддържат кеш файл, в който пазят резултатите от всички заявки, за които е получен авторитетен отговор. Когато е получена заявка за DNS запис, сървърът търси в кеш файла и връща информацията, която е на разположение, като не-авторитетен отговор.
Интерактивен и не-интерактивен режим
Nslookup има два режима на работа: интерактивен и не-интерактивен.
Интерактивният режим позволява на потребителя да изпраща запитвания към нейм сървъри за различни хостове и домейни или да показва списъци на хостове в домейн.
Не-интерактивният режим се използва за показване само на домейн и исканата информация за хост или домейн.
За да започнете интерактивна сесия на Windows, просто въведете командата nslookup
и натиснете бутона Enter:
C:\Users\support>nslookup
Default Server: UnKnown
Address: 192.168.1.1
Така ще отворите специален терминал, в който може да изпълнявате поредица от команди в интерактивен режим, като въвеждате nslookup командите без опции:
> google.com
Server: UnKnown
Address: 192.168.1.1
Non-authoritative answer:
Name: google.com
Addresses: 2a00:1450:4017:809::200e
172.217.169.142
> set type=any
> google.com
Server: UnKnown
Address: 192.168.1.1
Non-authoritative answer:
google.com AAAA IPv6 address = 2a00:1450:4017:809::200e
google.com internet address = 172.217.169.142
google.com nameserver = ns2.google.com
google.com nameserver = ns1.google.com
google.com nameserver = ns4.google.com
google.com nameserver = ns3.google.com
ns1.google.com internet address = 216.239.32.10
ns2.google.com internet address = 216.239.34.10
ns3.google.com internet address = 216.239.36.10
ns4.google.com internet address = 216.239.38.10
ns1.google.com AAAA IPv6 address = 2001:4860:4802:32::a
ns2.google.com AAAA IPv6 address = 2001:4860:4802:34::a
ns3.google.com AAAA IPv6 address = 2001:4860:4802:36::a
ns4.google.com AAAA IPv6 address = 2001:4860:4802:38::a
> set type=mx
> google.com
Server: UnKnown
Address: 192.168.1.1
Non-authoritative answer:
google.com MX preference = 10, mail exchanger = aspmx.l.google.com
google.com MX preference = 30, mail exchanger = alt2.aspmx.l.google.com
google.com MX preference = 50, mail exchanger = alt4.aspmx.l.google.com
google.com MX preference = 40, mail exchanger = alt3.aspmx.l.google.com
google.com MX preference = 20, mail exchanger = alt1.aspmx.l.google.com
google.com nameserver = ns1.google.com
google.com nameserver = ns3.google.com
google.com nameserver = ns4.google.com
google.com nameserver = ns2.google.com
ns1.google.com internet address = 216.239.32.10
ns2.google.com internet address = 216.239.34.10
ns3.google.com internet address = 216.239.36.10
ns4.google.com internet address = 216.239.38.10
ns1.google.com AAAA IPv6 address = 2001:4860:4802:32::a
ns2.google.com AAAA IPv6 address = 2001:4860:4802:34::a
ns3.google.com AAAA IPv6 address = 2001:4860:4802:36::a
ns4.google.com AAAA IPv6 address = 2001:4860:4802:38::a
Когато искате да излезете, въведете exit
.
Подробно описание на интерактивните команди може да видите на този URL: https://man.cx/nslookup.
За не-интерактивно търсене, добавете домейн името след командата:
nslookup google.com
Ако има наличен източник за авторитетни отговори, той ще бъде посочен в долната част на информацията под реда:
Authoritative answers can be found from:
Примери за работа с nslookup в не-интерактивен режим през терминала (Linux)
Примерите, които ще разгледаме в статията се отнасят само за работа на nslookup в не-интерактивен режим използван през терминала (Linux).
По подразбиране nslookup ще свърже домейн име с IP адрес (или обратно). Например, за да разберете какъв е IP адресът на google.com
, може да изпълните командата:
$ nslookup google.com
Server: 195.191.148.254
Address: 195.191.148.254#53
Non-authoritative answer:
Name: google.com
Address: 142.250.217.142
Name: google.com
Address: 2607:f8b0:4007:818::200e
Тук 195.191.148.254
е IPv4 адреса на DNS сървъра. #53
показва, че комуникацията с него се извършва на стандартния UDP/TCP порт 53.
След това е записан отговора на сървъра: google.com
резолва IP адрес 142.250.217.142. Даден е IPv6 адреса.
Също така е посочено, че отговорът е не-авторитетен. За авторитетен се счита отговорът от DNS сървър, на който се хоства зоновият файл на домейна. Когато DNS сървър връща отговор от своя кеш, въпреки че информацията в кеша е получена от авторитетен DNS сървър, отговорът се записва като не-авторитетен.
Обратно (reverse) търсене
Обратното търсене проверява за наличието на PTR запис за домейна. При наличие на такъв запис запитване за IP адреса връща като отговор домейн името:
$ nslookup 142.250.217.142
142.217.250.142.in-addr.arpa name = lax31s19-in-f14.1e100.net.
Запитване за неймсървъри (NS запис) на домейн
NS записите (поне два за всеки домейн) показват всички неймсървъри, които са авторитетни за този домейн (съдържат пълния зонов файл с всички DNS записи за домейна).
За да изпратите запитване за нейм сървърите на домейн, използвайте опцията -type=ns
:
$ nslookup -type=ns google.com
Server: 195.191.148.254
Address: 195.191.148.254#53
Non-authoritative answer:
google.com nameserver = ns3.google.com.
google.com nameserver = ns1.google.com.
google.com nameserver = ns4.google.com.
google.com nameserver = ns2.google.com.
Запитване за MX запис
MX записите показват кои мейл сървъри и в каква последователност (приоритет) обслужват мейл системата на домейна.
За да изпратите запитване за MX записите на домейн, използвайте опцията -type=mx
:
$ nslookup -type=mx google.com
Server: 195.191.148.254
Address: 195.191.148.254#53
Non-authoritative answer:
google.com mail exchanger = 20 alt1.aspmx.l.google.com.
google.com mail exchanger = 10 aspmx.l.google.com.
google.com mail exchanger = 30 alt2.aspmx.l.google.com.
google.com mail exchanger = 50 alt4.aspmx.l.google.com.
google.com mail exchanger = 40 alt3.aspmx.l.google.com.
Особеност при МХ записите е подреждането на приоритетите на мейл сървърите – сървърът с най-малка цифра пред името има най-висок приоритет и всички писма се изпращат към него (в примера 10 aspmx.l.google.com
). Ако поради някаква причина този сървър не е наличен, писмата се насочват към следващия по приоритет мейл сървър.
Запитване за SOA запис
Записът SOA (Start Of Authority) предоставя техническа информация за домейна. Въведете опцията -type=soa
, за да изпратите заявката:
$ nslookup -type=soa microsoft.com
Server: 195.191.148.254
Address: 195.191.148.254#53
Non-authoritative answer:
microsoft.com
origin = ns1-205.azure-dns.com
mail addr = azuredns-hostmaster.microsoft.com
serial = 1
refresh = 1400
retry = 300
expire = 2419200
minimum = 300
Информацията, посочена тук, е кешираната версия на SOA секцията в зоновия файл. Ето кратко описание на отделните параметри:
- origin – авторитетният DNS сървър, който съдържа информацията;
- mail addr – имейл адресът на администратора на домейна. Първата точка замества символа
@
в имейл адрес, така че имейл адресът еazuredns-hostmaster@microsoft.com
; - serial – показва версията на файла;
- refresh – показва времето в секунди, след което вторичния (secondary) неймсървър трябва да изпрати запитване към главния (master) неймсървър относно SOA записа за промени в DNS зоната. Препоръка за малки и стабилни зони е това време да не надвишава 24 часа, както е в примера.
- retry – показва времето в секунди, след което вторичният неймсървър трябва да изпрати нова заявка за серийния номер към главния неймсървър ако той не отговаря. Това време трябва да е по-малко от стойността на Refresh – препоръчва се времето да не надвишава 2 часа.
- expire – показва времето в секунди, след което вторичните неймсървъри трябва да спрат да отговарят на заявки ако главният неймсървър не отговаря. Това време трябва да е по-голямо от Refresh и Retry – препоръча се стойност 3600000 секунди (1000 часа).
- minimum – дори когато DNS сървър отговаря, че определен запис не съществува, този отговор се кешира и параметърът minimum определя продължителността на живота на този кеш.
Преглед на всички DNS записи
Можем да разгледаме всички NS записи за домейн, като използваме опцията -type=any
:
$ nslookup -type=any google.com
Server: 195.191.148.254
Address: 195.191.148.254#53
Non-authoritative answer:
Name: google.com
Address: 2607:f8b0:4007:818::200e
Name: google.com
Address: 142.250.217.142
google.com text = "docusign=1b0a6754-49b1-4db5-8540-d2c12664b289"
google.com text = "facebook-domain-verification=22rm551cu4k0ab0bxsw536tlds4h95"
google.com nameserver = ns3.google.com.
google.com nameserver = ns2.google.com.
google.com nameserver = ns4.google.com.
google.com nameserver = ns1.google.com.
Заявка към конкретен неймсървър
По подразбиране nslookup ще изпраща всички заявки към конфигурирания DNS сървър. nslookup позволява да се изпрати заявка към авторитетен DNS сървър, като се добави името на неймсървъра след името на домейна:
$ nslookup google.com ns2.google.com
Server: ns2.google.com
Address: 216.239.34.10#53
Name: google.com
Address: 172.217.169.110
Name: google.com
Address: 2a00:1450:4017:808::200e
Запитване на нестандартен порт
По подразбиране неймсървърите приемат заявки на порт 53. Ако DNS сървърът е конфигуриран да работи на друг порт, може да изпратите конкретна заявка като използвате опцията -port=
:
$ nslookup -port=54 google.com
;; connection timed out; no servers could be reached
В примера заявката е неуспешна, тъй като DNS използва стандартния порт 53.
Режим за отстраняване на грешки
Режимът за отстраняване на грешки в nslookup е полезна функция и се използва от опитни потребители. В режим на отстраняване на грешки nslookup изброява стъпките, които се предприемат, за да се изпълнят командите. Този режим на работа се активира с помощта на опцията -debug
:
$ nslookup -debug google.com
Server: 195.191.148.254
Address: 195.191.148.254#53
------------
QUESTIONS:
google.com, type = A, class = IN
ANSWERS:
-> google.com
internet address = 172.217.169.110
ttl = 233
AUTHORITY RECORDS:
-> google.com
nameserver = ns2.google.com.
...
Дошъл ли е краят на употребата на nslookup?
Командата nslookup се класифицира като неодобрена (deprecated) от ISC (Internet Systems Consortium) в полза на инструментите host и dig. Тези по-модерни инструменти предоставят всички функции като nslookup и се ползват с по-голяма популярност.
В отделни статии ще Ви представим тези два инструмента за DNS диагностика – host и dig:
🔗 DNS диагностика с командата host | Help
🔗 DNS диагностика с командата dig | Help