1. DNS/リゾルバ/動作例

www.qmail.jp A レコードを取り込むまでのリゾルバ(キャッシュサーバ)の動きを見てみよう。

jp ゾーンの (登録)NS は root (ゾーン)サーバから、委譲返答として得る。

2. $ dnsq a www.qmail.jp a.root-servers.net

1 www.qmail.jp:
426 bytes, 1+0+7+13 records, response, noerror
query: 1 www.qmail.jp
authority: jp 172800 NS a.dns.jp
authority: jp 172800 NS b.dns.jp
authority: jp 172800 NS c.dns.jp
authority: jp 172800 NS d.dns.jp
authority: jp 172800 NS e.dns.jp
authority: jp 172800 NS f.dns.jp
authority: jp 172800 NS g.dns.jp
additional: a.dns.jp 172800 A 203.119.1.1
additional: b.dns.jp 172800 A 202.12.30.131
additional: c.dns.jp 172800 A 156.154.100.5
additional: d.dns.jp 172800 A 210.138.175.244
additional: e.dns.jp 172800 A 192.50.43.53
additional: f.dns.jp 172800 A 150.100.6.8
additional: g.dns.jp 172800 A 203.119.40.1

用心深いリゾルバであれば、ここでなにかするかもしれない。

ひとまず、上の返事を信じて、 a.dns.jp に問い合わせてみよう。

3. $ dnsq a www.qmail.jp a.dns.jp

1 www.qmail.jp:
65 bytes, 1+0+1+1 records, response, noerror
query: 1 www.qmail.jp
authority: qmail.jp 86400 NS a.ns.qmail.jp
additional: a.ns.qmail.jp 86400 A 14.192.44.5

qmail.jp の登録情報が返ってくる。 (俗に『権威のない』 『委任情報』と呼ばれているもの)

この状態では JP NS は root からの委譲を示すもののままである。

jp NS情報については権威ある返答がキャッシュされることはまれである。

qmail.jp NS に対して、問合せると:

4. $ dnsq a www.qmail.jp a.ns.qmail.jp

1 www.qmail.jp:
81 bytes, 1+1+1+1 records, response, authoritative, noerror
query: 1 www.qmail.jp
answer: www.qmail.jp 86400 A 14.192.44.5
authority: qmail.jp 86400 NS a.ns.qmail.jp
additional: a.ns.qmail.jp 86400 A 14.192.44.5

この返事に含まれている authority, additional を受け入れるかどうかは議論の余地がある。

受け入れたとしても TTL をどう扱うかは悩ましい。 ー>(Ghost Domain Names 脆弱性)

-- ToshinoriMaeno 2014-11-04 23:57:20

5. キャッシュの内容

この時点でのキャッシュの内容はどういうものだろうか。