kresd/issues/nic.cz/STRICT_MODEについて、ここに記述してください。
STRICT_MODE 1 のときは、AAありの場合、Authorityなどは無視される。-- ToshinoriMaeno 2016-04-16 15:41:08
> [plan] plan 'nic.cz.' type 'A'
[resl] => using root hints [resl] => querying: '202.12.27.33' score: 10 zone cut: '.' m12n: 'cZ.' type: 'NS' [resl] optional: '199.7.83.42' score: 10 zone cut: '.' m12n: 'cZ.' type: 'NS' [resl] optional: '193.0.14.129' score: 10 zone cut: '.' m12n: 'cZ.' type: 'NS' [resl] optional: '192.58.128.30' score: 10 zone cut: '.' m12n: 'cZ.' type: 'NS' [iter] update_cut [iter] fetching glue for cut cz, dnsniccz [iter] update_cut [iter] fetching glue for cut cz, ansniccz [iter] update_cut [iter] fetching glue for cut cz, bnsniccz [iter] update_cut [iter] fetching glue for cut cz, cnsniccz [iter] <= referral response, follow [resl] <= server: '202.12.27.33' rtt: 6 ms [resl] => querying: '193.29.206.1' score: 10 zone cut: 'cz.' m12n: 'NIc.cZ.' type: 'A' [resl] optional: '194.0.14.1' score: 10 zone cut: 'cz.' m12n: 'NIc.cZ.' type: 'A' [resl] optional: '194.0.13.1' score: 10 zone cut: 'cz.' m12n: 'NIc.cZ.' type: 'A' [resl] optional: '194.0.12.1' score: 10 zone cut: 'cz.' m12n: 'NIc.cZ.' type: 'A' [iter] <= rcode: NOERROR [resl] <= server: '193.29.206.1' rtt: 116 ms [resl] finished: 4, queries: 1, mempool: 32800 B
だが、"dig -t ns nic.cz @127.0.0.3"の返事が気になる。
どこでNSはキャッシュに入れられたのか。-- ToshinoriMaeno 2016-04-16 15:45:04
[plan] plan 'nic.cz.' type 'NS' [ rc ] => satisfied from cache [iter] <= rcode: NOERROR [resl] finished: 4, queries: 1, mempool: 32800 B
--- rrcache.c:
- static int rrcache_stash(knot_layer_t *ctx, knot_pkt_t *pkt)
bool is_auth = knot_wire_get_aa(pkt->wire); if (is_auth) { ret = stash_answer(qry, pkt, &stash, &req->pool); if (ret == 0) { ret = stash_authority(qry, pkt, &stash, &req->pool); }
(is_auth) では stash_answerだけでよい。-- ToshinoriMaeno 2016-04-16 15:50:43