## page was renamed from DNS/リゾルバー/zone cut検出 == 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 <> さしあたりはTTLのことは考えないで作ってみる。 CNAMEをchaseしないのは当然なのか。(ns.ilドメインを見ると当然だと分かる。)   === zone cut 情報 === 以下のみっつに分類できる。 1. zone cutが存在する。 2. zone cutが存在しない。(NSがなかった。NXDomain 返答中のSOAから非存在が推定できる。) 3. zone cutが存在するか、しないか、現在は不明である。 -- ToshinoriMaeno <> === delegation === delegation情報によりzone cut の存在が確認できる。 NXDOMAIN返答などのSOA情報により、zone cutの不存在が示される。 === NSレコード === ゾーンサーバが保持するNSレコードが優先される(TTLを別にして) RFC 2181 == メモ == zone cuts: delegationにより、zone cuts の存在することが示される。  その一方で、NXDOMAIN, NoData返答中のSOAレコードによりzone cutsの不在が示される。 現状のリゾルバーは後者の情報を毒盛対策に活用していない。 -- ToshinoriMaeno <>