グルーレコードで付加する情報とは

佐藤新太(JPRS)
2003/8/29

 グルーレコードとは、コンテンツサーバが、委任されたサブドメインのNSを返す際に、追加の情報として必要となる情報のことです。具体的には、ネームサーバの名前に対応するIPアドレスの情報になります。

 サブドメインの委任をしている場合、上位のコンテンツサーバに委任先のドメイン名の問い合わせがあると、委任先を管理するネームサーバの名前を返します。しかし、ネームサーバとの通信を行うためには、名前ではなくIPアドレスを知る必要があります。つまり、教えてもらったネームサーバの名前を再度DNSで調べることになります。もしここで、返ってきたネームサーバの名前が委任先のドメイン名であった場合、この状況がループを起こし、どうやっても委任先のドメインの情報を得ることができなくなってしまいます。

 これを防ぎ、上位のゾーンと下位の情報をつなぎ止めるために使われるのがグルー(glue、接着剤)レコードです。

 例えば、example.jpのネームサーバとしてns1.example.jpを指定してある場合、jpのネームサーバはexample.jpに関する問い合わせに対してNSとしてns1.example.jpを答えるだけでなく、ns1.example.jpのIPアドレスとしてAレコードも同時に答えます。

 このグルーデータはドメイン名のツリー構造から考えると、コンテンツサーバが管理するゾーンからは外れた情報であり、本来であれば不要なものです。しかし、リゾルバがIPアドレスによる通信で情報を検索するためにはどうしても必要となる情報です。

 実際にネームサーバが返すグルーレコードをdigコマンドで確認してみます。

リスト1:コンテンツサーバが返すグルーレコードの例

% dig @a.dns.jp a jprs.co.jp

; <<>> DiG 9.2.1 <<>> @a.dns.jp jprs.co.jp
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43433
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 2


;; QUESTION SECTION:
;jprs.co.jp.            IN    A

;; AUTHORITY SECTION:
jprs.co.jp.      86400   IN    NS    ns2.jprs.co.jp.
jprs.co.jp.      86400   IN    NS    ns1.jprs.co.jp.
;;

ADDITIONAL SECTION:
ns2.jprs.co.jp.   86400   IN    A    61.120.151.71
ns1.jprs.co.jp.   86400   IN    A    61.120.151.70


;; Query time: 90 msec
;; SERVER: 61.120.151.100#53(a.dns.jp)
;; WHEN: Mon Aug 18 23:37:59 2003
;; MSG SIZE rcvd: 96

 この例ではco.jpゾーンを管理しているネームサーバであるa.dns.jpにjprs.co.jpのAレコードを問い合わせています。a.dns.jpは、jprs.co.jpを委任しているという情報のみ持っているので、authority sectionに委任先のネームサーバの名前を返します。

;; AUTHORITY SECTION:
jprs.co.jp.   86400   IN    NS    ns2.jprs.co.jp.
jprs.co.jp.   86400   IN    NS    ns1.jprs.co.jp.

 委任先のネームサーバであるns1.jprs.co.jpとns2.jprs.co.jpは両方とも管理を委任したドメイン名であるjprs.co.jpに属していますので、a.dns.jpはネームサーバの名前だけではなく、IPアドレスの情報をadditional sectionに返しています。

;; ADDITIONAL SECTION:
ns2.jprs.co.jp.   86400   IN    A    61.120.151.71
ns1.jprs.co.jp.   86400   IN    A    61.120.151.70

 このadditional sectionに書かれているIPアドレスの情報が、「グルーレコード」と呼ばれる情報です。

 なお、委任先のサブドメインを管理するネームサーバの名前が全く関係ない場合グルーレコードは不要になります。例えば、example.jpのネームサーバとしてns1.example.com を指定してある場合、jpのネームサーバはexample.jp に関する問い合わせに対して NS として ns1.example.com を答えるだけで、グルーレコードは返しません。ns1.example.com のIPアドレスはexample.jpとは関係なく検索できるため、ループが発生しないからです。

 グルーレコードはゾーンファイルに記載して指定します。しかしこの情報はオーソリティを持たないデータであるため、必要なもの以外は記載しないようにするべきです。管理するゾーンの情報ではないということは、その正確性を保証できるものではありません。変わっていても気付かないかもしれませんし、間違ったデータを提供することはリゾルバに対しても迷惑になるだけです。

関連Tips digコマンドとは
ネームサーバの設定を確認するには

DNS Tips Index

「Master of IP Network総合インデックス」


Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Master of IP Network 記事ランキング

本日 月間