MoinQ:

1. DNS/リゾルバー/zone cut検出

DNS/1/ゾーン/zone-cut DNS/qname-minimisation

../NSレコード

TLDにはローカル(定義された)ゾーンを認める。

初期値: qnameは本来の問い合わせドメイン名である。cut はroot serverであるとする。問い合わせ名は空とする。

  1. 問い合わせをqnameの末尾から全体に向かって1ラベルだけ伸ばす。(伸ばせなければ終了)
    • zone cut情報(*)を調べる。(NSが存在するか。)
  2. NS(zone cutあり)なら、cutを更新する。1. に戻る。
  3. zone cut はなかったが名前は存在している。1. に戻る。(CNAME返答だったときもNSは存在しなかったと判断する。)
  4. NXDomainが検出されたら、この先にはzone cutは存在しないことが分かる。(現状で、それでいいかは問題なのだが)
    • つまり、zone cutが決定した。

(*)zone cut情報ではcutの存在が分かっていない場合にはNS queryを行う。

  1. delegationが返ってくれば、zone cutありなので、そのNSに対しての確認をおこなう。zone cutありを返す。
  2. そうでなければ、zone cutがなかったことを記録して、zone cutなしを返す。
    • ただし、NoErrorとNXDomainとを区別する必要がある。

-- ToshinoriMaeno 2017-03-17 12:01:33

さしあたりはTTLのことは考えないで作ってみる。

CNAMEをchaseしないのは当然なのか。(ns.ilドメインを見ると当然だと分かる。)

1.1. zone cut 情報

以下のみっつに分類できる。

  1. zone cutが存在する。
  2. zone cutが存在しない。(NSがなかった。NXDomain 返答中のSOAから非存在が推定できる。)
  3. zone cutが存在するか、しないか、現在は不明である。

-- ToshinoriMaeno 2017-03-22 06:37:19

1.2. delegation

delegation情報によりzone cut の存在が確認できる。

NXDOMAIN返答などのSOA情報により、zone cutの不存在が示される。

1.3. NSレコード

ゾーンサーバが保持するNSレコードが優先される(TTLを別にして) RFC 2181

2. メモ

zone cuts: delegationにより、zone cuts の存在することが示される。

現状のリゾルバーは後者の情報を毒盛対策に活用していない。

-- ToshinoriMaeno 2017-04-30 02:55:44

MoinQ: DNS/リゾルバー/実装/zone cut検出 (last edited 2020-12-09 00:21:39 by ToshinoriMaeno)