DNS/KnotResolver/brau.internat.jp/tss版
127.0.0.3 : Knot Resolver /再現確認
1. 毒の準備
% dig @127.0.0.3 -t txt brau.internat.jp
brau.internat.jp. 60 IN TXT "brau.internat.jp"
- ns.brau.jp A は毒だ。
2. NS 毒
% dig @127.0.0.3 -t soa brau.jp
これの返事は毒には見えない。(このときには区別がつかなかったようだ)
この返事に付随するレコードが毒だというのは、NSレコードのことか。どういう返答なのか。
- 偽brau.jpからの返事なら分かるが、そうではなさそう。
キャッシュにすでにあるものを、正規の返答では上書きしないからという説明は受け入れられるが、 それならこの問い合わせと返答の意味は何か。
brau.jp の NS をキャッシュに入れるためです。
とあるのは、brau.jp のNSに毒を入れるためと解釈する。(キャッシュにないとき)
- この問い合わせを送ったところで、brau.jp の委譲情報はキャッシュされるはずだから、 上書きをしないのであれば、brau.jp のNS(+A) は正しいはずだ。
残念ながらご理解が間違っています。ここでの応答は本物です。ns.brau.jp の偽の A はすでにキャッシュにありますが、brau.jp IN NS ns.brau.jp がキャッシュにないので提供してあげているのです。 -- tss 2020-08-29 16:10:13
「間違っている」という根拠が分かりません。ここのSOA返答が本物からの返答だということは分かっています。
- 本物にNSを問い合わせるなら分りますが、SOAを問い合わせていますので、その前に 委譲のNSを得る段階が隠れているわけです。 SOAを問い合わせる先が偽なら、理解しやすいのですが、本物のようなので、どこで毒が効いたのかは不明です。
-- ToshinoriMaeno 2020-08-30 03:50:50
glue はキャッシュされないのではないでしょうか。-- tss 2020-08-30 05:56:36
3. 毒入り状態の確認
% dig @127.0.0.3 -t txt brau.jp
brau.jp. 60 IN TXT "NG"
不成功:
brau.jp. 120 IN TXT "OK"
4. 実験 毒盛成功例
$ dig -t txt brau.internat.jp @127.0.0.1 brau.internat.jp. 60 IN TXT "brau.internat.jp"
$ dig -t soa brau.jp @127.0.0.1 brau.jp. 120 IN SOA ns.brau.jp. tss.e-ontap.com. 2020082501 3600 600 86400 60
$ dig -t txt brau.jp @127.0.0.1 brau.jp. 60 IN TXT "NG" $ dig -t ns brau.jp @127.0.0.1 brau.jp. 300 IN NS fake.brau.jp.