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のいくつかの段落を指す回答に興味があります。