1. キャッシュ内のNSレコード
Contents
「あるゾーン」についてのNSレコードがキャッシュにあるか、ないかについて考察する。
- あるとした場合、その由来はなにかも併せて考える。
- キャッシュ内に当該ゾーンのNSレコードは存在しない (しかし、上位ゾーンのNSは存在するはず)
- 上位ゾーンから受け取った委譲NSレコードセットが存在する
- ゾーンの(権威ある)サーバから受け取った(authority section からの)NSレコードセットが存在する
- ゾーンの(権威ある)サーバから受け取った answer section の NSレコードセットが存在する
3、4 が区別されているかは実装依存だし、2,3 が別個に保持されるかも実装次第だ。-- ToshinoriMaeno 2018-05-29 10:40:35
2. 返答との優先関係
それぞれの場合に、DNS/NSレコード/返答中のNSを受け取ったら、どうすべきかを考える。
- 原則はキャッシュにあれば、上書きしないのが安全なのだが、現状の多くの実装はそうしていない。
毒の排除のためには キャッシュに保存すべきかどうかの判断が重要である。-- ToshinoriMaeno 2018-05-29 10:29:59
キャッシュを上書きして問題がないか、上書きする方が都合がいいか、などのトレードオフも検討する。
3. 毒盛の可能性
Ranking が毒盛防止には役立たないことをはっきりさせる。
以下は整理中のテーブル -- ToshinoriMaeno 2014-11-04 13:47:35
- キャッシュ中にNSレコードが存在するか --: なし De: 委譲NS, Au: 権威NS, An: Answer NS
受け取る返答の区別:
- NS返答(Answer Section): 権威サーバを知っていないとしたら、偽(不正)返答である。 (親子同居を考慮する必要がある)
以下はすべて Authority Section 内の NS レコードである。
- 本来の委譲(委任): (Answer Section なし); 上位のゾーンサーバからの委譲返答
- 委譲を確認する: (Answer あり) (オレオレ)権威をもつゾーンサーバであることを確認するために返すNS。
- NS移転を示す: (Answer の有無は不明) (オレオレ)権威をもつゾーンサーバがNS移転、追加を示すために返すNS。
- 問い合わせ削減用: (Answer あり) ゾーンサーバが効率改善のためにおまけとして付ける。 3 と区別がつかない。
- 余計なお世話: (Answer なし) キャッシュ兼用サーバがキャッシュされた(権威を持たない)データ(多くは上位ゾーン)を返す。
NXDOMAINに付随するNSレコードもあるようだが、どう分類するかは未定。
受け取ったときの対応
- ? : あり得ない返答(毒か親子ゾーン同居か) X : 捨てられる、 ◯: キャッシュ上書き
NS query の返答
返答\キャッシュ
--
上位委譲
自己権威
NS Ans
1 NS 返答
偽装・同居
NS Ans
NS Ans
◯ An
2 委譲返答
委譲
Lame
◯
X
その他のケースの分は破棄
A レコードを問い合わせたときの返答 (Authority Section のNSレコードRRSet)
- Answer Section なしの場合 (NXDOMAIN返答などは別途考察) Answer Section ありの場合の Authority Section 内
返答\キャッシュ
--
上位委譲
自己権威
NS Ans
2 委譲返答
委譲
Lame
◯
X
返答\キャッシュ
--
上位委譲
自己権威
NS Ans
3 権威確認
偽装?
Au
◯
X
4 移転通知
偽装?
移転?
◯
X
5 効率向上
偽装?
?
◯
X
6 ???
偽装?
?
◯
X
Authority Section から取り入れたNSレコードはAnswer のものより優先度(rank) が低いはず。