DNS - NSLOOKUP в чому сенс не авторитетної відповіді?


117

Для деяких доменів nslookupмені надається Non-authoritative answerрозділ. Що це значить?

Got answer:
    HEADER:
        opcode = QUERY, id = 3, rcode = NXDOMAIN
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional =

    QUESTIONS:
        www.ssss.com.SME, type = AAAA, class = IN
    AUTHORITY RECORDS:
    ->  (root)
        ttl = 1787 (29 mins 47 secs)
        primary name server = a.root-servers.net
        responsible mail addr = nstld.verisign-grs.com

------------
Non-authoritative answer:
------------

------------
Name:    example.com
Address:  93.184.216.34
Aliases:  www.example.com

14
www.xxx.com насправді не є прикладом доменного імені ха-ха;) ... RFC пропонує використовувати example.com. дивіться iana.org/domains/reserved
Mzn

Відповіді:


99

В основному, це те, що говорить назва. Авторитетна відповідь надходить від сервера імен, який вважається авторитетним для домену, для якого він повертає запис (один із серверів імен у списку для домену, на який ви робили пошук), а неавторитетна відповідь надходить з будь-якого місця (a сервера імен немає в списку домену, на який ви робили пошук).

Це в основному відмінність між сервером імен, який є офіційним сервером імен для домену, який ви запитуєте, і сервером імен, який не є. Сервери імен, які не є авторитетними, отримують свої відповіді другою (або третьою чи четвертою ...) рукою - просто передають інформацію разом з десь іншого.

Так, наприклад, якби я зараз зробив nslookup maps.google.com, я отримав би відповідь від одного з моїх налаштованих серверів імен. (Або з мого провайдера, або з мого домену.) Він повернеться як неавторитетний, оскільки ні сервери імен мого провайдера, ні мій власний не знаходяться в списку серверів імен google.com. Вони не є серверами імен Google, тому вони не є авторитетним джерелом, яке створює записи NS.

Список авторитетних серверів імен для Google знаходиться нижче (від whois.internic.net).

Ім’я домену: GOOGLE.COM

Реєстратор: MARKMONITOR INC.

Whois сервер: whois.markmonitor.com

Сервер імен: NS1.GOOGLE.COM

Сервер імен: NS2.GOOGLE.COM

Сервер імен: NS3.GOOGLE.COM

Сервер імен: NS4.GOOGLE.COM

Дата оновлення: 20 липня 2011 р

Дата створення: 15 вересня-1997

Дата придатності: 14 вересня-2020

Якщо я змінив налаштований сервер DNS на один із списків у цьому списку, а потім зробив nslookupпроти maps.google.com, я отримав би авторитетну відповідь. Ці сервери є повноваженнями (або джерелом) щодо дійсних імен у доменах Google, а що ні. Усі інші сервери імен, неавторитетні сервери імен, отримують свої записи NS з авторитетних серверів десь унизу.


35

Відповідь, яку ви отримали, по суті є кешованою або пересланою відповіддю з вашого локального DNS-сервера. В основному, неавторитетний сервер імен - це той, який не містить записів для зони запиту; Наприклад, ваш локальний DNS не матиме записів імен Google.

Ви можете отримати сервери імен, які є авторитетними для даного домену, запустівши host -t ns example.comдля отримання запису NS для example.com.

Що стосується Google, ми бачимо:

$ host -t ns google.com
google.com name server ns4.google.com.
google.com name server ns1.google.com.
google.com name server ns2.google.com.
google.com name server ns3.google.com.

Якщо згодом ви запустите свою nslookupкоманду на одному з цих серверів, ви отримаєте авторитетну відповідь:

$ nslookup www.google.com ns1.google.com
Server:         ns1.google.com
Address:        216.239.32.10#53

www.google.com  canonical name = www.l.google.com.
Name:   www.l.google.com
Address: 173.194.43.49
Name:   www.l.google.com
Address: 173.194.43.50
Name:   www.l.google.com
Address: 173.194.43.48
Name:   www.l.google.com
Address: 173.194.43.52
Name:   www.l.google.com
Address: 173.194.43.51

Якщо ви використовуєте nslookupдля отримання типу запису NS, ви можете запустити щось подібне в інтерактивному режимі:

$ nslookup
> set querytype=ns
> google.com
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
google.com      nameserver = ns3.google.com.
google.com      nameserver = ns4.google.com.
google.com      nameserver = ns1.google.com.
google.com      nameserver = ns2.google.com.

Authoritative answers can be found from:
ns1.google.com  internet address = 216.239.32.10

Отже, налаштування querytype=nsробить те, що hostробила вищевказана команда.


просто цікаво ... що #означає Address: 127.0.0.1#53?
cwhsu

Здогадаєтесь через порт прослуховування, правильно? Як і те, що тут зазначено nlp.stanford.edu/IR-book/html/htmledition/dns-resolution-1.html
cwhsu

24

Неавторитетна відповідь просто означає, що відповідь не отримана з авторитетного сервера DNS для запитуваного доменного імені.

Спочатку ви повинні зрозуміти, як працює система DNS. Систему DNS можна розділити на три рівні. Вони є:

  • кореневі DNS-сервери
  • DNS-сервери домену верхнього рівня
  • авторитетні DNS-сервери

Існує ще один клас сервера DNS, який зазвичай називається локальним DNS-сервером, IP-адреса якого вказана у вашій операційній системі.

Коли ваш браузер підключається до веб-сайту, наприклад, example.com, браузер спочатку запитує ваш локальний DNS-сервер, щоб отримати IP-адресу example.com.

  • Якщо на локальному сервері DNS немає записи A example example.com, він запитує один із кореневих серверів DNS.

  • Кореневий сервер DNS скаже: У мене немає записи A, але я знаю, що DNS-сервер домену верхнього рівня, який відповідає за домени .com.

  • Тоді ваш локальний DNS-сервер запитує DNS-сервер домену верхнього рівня, який відповідає за домени .com. Сервер DNS DNS відповість: я також не знаю, але я знаю, який DNS-сервер є авторитетним для example.com.

  • Тож ваш локальний DNS-сервер запитує авторитетний DNS-сервер. Оскільки фактична запис DNS зберігається на цьому авторитетному сервері DNS, то він дасть відповідь вашому локальному DNS-серверу.

Тоді цей результат запиту кешується на вашому локальному сервері DNS, але він може бути застарілим. Коли час TTL закінчиться, ваш локальний DNS-сервер оновить результат запиту від авторитетного DNS-сервера. Щоразу, коли ви запитуєте запис DNS на локальному сервері DNS, він повертає неавторитетну (неофіційну) відповідь. Якщо ви хочете отримати авторитетну відповідь, потрібно чітко вказати авторитетний DNS-сервер під час використання nslookup або інших утиліт. Я думаю, що локальний DNS-сервер повинен називатися кешування DNS-сервера.

Коли хтось реєструє доменне ім'я, він / вона може вказати, який DNS-сервер є авторитетним DNS-сервером. Ця інформація називається записом NS. Запис NS вкаже DNS-сервер домену верхнього рівня, який сервер імен зберігає запис домену A, запис MX тощо.


4
Це пояснило набагато більше, ніж усі інші відповіді разом. Пояснення топології роботи DNS є надзвичайно корисним для надання контексту для цього питання.
Леві Робертс

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.