1. DNS/グルーなし問題
1.1. 委譲返答
上位のサーバから委譲返答が返ってくる場合、 ゾーン内の名前を値にもつ NS レコードに関してはadditional section に A レコードが返されることになっています。
これを(狭義の)DNS/グルーレコード(glue record) と呼びます。
- (必要な)グルーレコードがないと、DNS サーバにアクセスできません。
上位サーバが返すグルーレコードには権威ある返答のフラグがないことに注意してください。
1.2. グルーなし返答
対象ドメイン外にDNSサーバがある場合にはグルーは存在しません。
- additional section にAレコードがあっても、使っていけません。
1.3. 多段のグルーなし問題
watchNS/dip.jpのように多段のグルーなしが続くと名前解決できなくなる可能性があります。
1.4. 効率向上の付加レコード
ドメイン内の権威サーバが見た目が似たものを返すことがあります。 権威節などのNS レコードに対して (additional) A レコードをつけて返事をします。
これはDNS/グルーレコードではありません。 DNSが効率的に動くためにはあった方が望ましいとされてきました。
しかし、NS 名に対するA レコードを付けてこないサーバがあります。 以下のような理由がありえます。
- 値が CNAME である。(RFC に従っていない。)
- 値が間違っている。(bind だと最後の period を忘れているなど)
- セカンダリサーバの場合のゾーン転送不良、セカンダリ設定の不良など
- 重複レコードのために UDP 限度を越えるため additional section を送れない。(djbdns に多い)
余計なDNS問合せが発生するのが普通です。 BIND の版によっては長時間待たされるなどの不都合が発生するようです。