Суть запису NS полягає в тому, щоб повідомити клієнту, який сервер імен точно буде знати фактичну IP-адресу для доменного імені. Так, наприклад, наступний запит повідомляє, що якщо ви хочете отримати авторитетну відповідь про facebook.com
вас, ви повинні запитати a.ns.facebook.com
:
> dig ns facebook.com 19:58:27
; <<>> DiG 9.9.5-3ubuntu0.8-Ubuntu <<>> ns facebook.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32063
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;facebook.com. IN NS
;; ANSWER SECTION:
facebook.com. 65000 IN NS a.ns.facebook.com.
facebook.com. 65000 IN NS b.ns.facebook.com.
;; Query time: 13 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Sun Mar 20 19:58:40 CET 2016
;; MSG SIZE rcvd: 65
Це здається крутим і корисним, але мені цікаво, чому в ANSWER
розділі міститься ім'я хоста, а не IP авторитетного джерела? Чи не було б простіше клієнту отримати фактичну IP-адресу авторитетного джерела, а не ім'я хоста?
Я маю на увазі, якщо він отримає ім'я хоста, йому доведеться зробити ще один запит, щоб вирішити це ім'я хоста в IP, а потім запитати цей новий IP про початковий facebook.com
домен, який він шукав. Хіба це неефективно?
Мені буде цікаво відповісти, що вказує на деякі пункти в деяких RFC, що пояснює цю проблему.