1. キャッシュ内のNSレコード

「あるゾーン」についてのNSレコードがキャッシュにあるか、ないかについて考察する。

  1. キャッシュ内に当該ゾーンのNSレコードは存在しない (しかし、上位ゾーンのNSは存在するはず)
  2. 上位ゾーンから受け取った委譲NSレコードセットが存在する
  3. ゾーンの(権威ある)サーバから受け取った(authority section からの)NSレコードセットが存在する
  4. ゾーンの(権威ある)サーバから受け取った answer section の NSレコードセットが存在する
    • 3、4 が区別されているかは実装依存だし、2,3 が別個に保持されるかも実装次第だ。-- ToshinoriMaeno 2018-05-29 10:40:35

DNS/毒盛/NS毒盛/対策/zone cutsの非存在

2. 返答との優先関係

それぞれの場合に、DNS/NSレコード/返答中のNSを受け取ったら、どうすべきかを考える。

毒の排除のためには キャッシュに保存すべきかどうかの判断が重要である。-- ToshinoriMaeno 2018-05-29 10:29:59

キャッシュを上書きして問題がないか、上書きする方が都合がいいか、などのトレードオフも検討する。

3. 毒盛の可能性

Ranking が毒盛防止には役立たないことをはっきりさせる。

受け取る返答の区別:

  1. NS返答(Answer Section): 権威サーバを知っていないとしたら、偽(不正)返答である。 (親子同居を考慮する必要がある)

以下はすべて Authority Section 内の NS レコードである。

  1. 本来の委譲(委任): (Answer Section なし); 上位のゾーンサーバからの委譲返答
  2. 委譲を確認する: (Answer あり) (オレオレ)権威をもつゾーンサーバであることを確認するために返すNS。 
  3. NS移転を示す: (Answer の有無は不明) (オレオレ)権威をもつゾーンサーバがNS移転、追加を示すために返すNS。
  4. 問い合わせ削減用: (Answer あり) ゾーンサーバが効率改善のためにおまけとして付ける。 3 と区別がつかない。
  5. 余計なお世話: (Answer なし) キャッシュ兼用サーバがキャッシュされた(権威を持たない)データ(多くは上位ゾーン)を返す。

NXDOMAINに付随するNSレコードもあるようだが、どう分類するかは未定。

受け取ったときの対応


NS query の返答

その他のケースの分は破棄


A レコードを問い合わせたときの返答 (Authority Section のNSレコードRRSet)

Authority Section から取り入れたNSレコードはAnswer のものより優先度(rank) が低いはず。

DNS/リゾルバ/動作例