kresd/example/a.b.c.d.e.co.jpについて、ここに記述してください。 {{{ > cachectl.clear() true > [plan] plan 'a.b.c.d.e.co.jp.' type 'A' kr_zonecut_find_cached abcdecojp kr_zonecut_find_cached bcdecojp kr_zonecut_find_cached cdecojp kr_zonecut_find_cached decojp kr_zonecut_find_cached ecojp kr_zonecut_find_cached cojp kr_zonecut_find_cached jp kr_zonecut_find_cached [resl] ns_fetch_cut ret -2 [resl] zone_cut_check -> ns_fetch_cut = -2 [resl] => using root hints [resl] => querying: '202.12.27.33' score: 10 zone cut: '.' m12n: 'jp.' type: 'NS' [resl] optional: '199.7.83.42' score: 10 zone cut: '.' m12n: 'jp.' type: 'NS' [resl] optional: '193.0.14.129' score: 10 zone cut: '.' m12n: 'jp.' type: 'NS' [resl] optional: '192.58.128.30' score: 10 zone cut: '.' m12n: 'jp.' type: 'NS' [iter] Update zone cut [iter] zonecut_add jp NS ddnsjp [iter] <= using glue for 'd.dns.jp.' [iter] Update zone cut jp [iter] zonecut_add jp NS bdnsjp [iter] <= using glue for 'b.dns.jp.' [iter] Update zone cut jp [iter] zonecut_add jp NS fdnsjp [iter] <= using glue for 'f.dns.jp.' [iter] Update zone cut jp [iter] zonecut_add jp NS ednsjp [iter] <= using glue for 'e.dns.jp.' [iter] Update zone cut jp [iter] zonecut_add jp NS gdnsjp [iter] <= using glue for 'g.dns.jp.' [iter] Update zone cut jp [iter] zonecut_add jp NS cdnsjp [iter] <= using glue for 'c.dns.jp.' [iter] Update zone cut jp [iter] zonecut_add jp NS adnsjp [iter] <= using glue for 'a.dns.jp.' [iter] <= referral response, follow [ rc ] stash referral NS [ rc ] stash auth for jp [ rc ] stash auth for jp [ rc ] stash auth for jp [ rc ] stash auth for jp [ rc ] stash auth for jp [ rc ] stash auth for jp [ rc ] stash auth for jp [ pc ] => pktcache_stash entry [resl] <= server: '202.12.27.33' rtt: 6 ms [resl] => querying: '203.119.40.1' score: 10 zone cut: 'jp.' m12n: 'CO.Jp.' type: 'NS' [resl] optional: '150.100.6.8' score: 10 zone cut: 'jp.' m12n: 'CO.Jp.' type: 'NS' [resl] optional: '192.50.43.53' score: 10 zone cut: 'jp.' m12n: 'CO.Jp.' type: 'NS' [resl] optional: '210.138.175.244' score: 10 zone cut: 'jp.' m12n: 'CO.Jp.' type: 'NS' [iter] AA terminate resolution chain [iter] <= rcode: NOERROR [iter] <= found cut, retrying with non-minimized name [ rc ] stash auth answer [ pc ] => pktcache_stash entry [ pc ] => pktcache_stash NXDOMAIN [ pc ] => pktcache_stash answer [ pc ] => answer cached for TTL=900 [resl] <= server: '203.119.40.1' rtt: 5 ms [resl] => querying: '150.100.6.8' score: 10 zone cut: 'jp.' m12n: 'a.b.c.d.e.cO.jp.' type: 'A' [resl] optional: '192.50.43.53' score: 10 zone cut: 'jp.' m12n: 'a.b.c.d.e.cO.jp.' type: 'A' [resl] optional: '210.138.175.244' score: 10 zone cut: 'jp.' m12n: 'a.b.c.d.e.cO.jp.' type: 'A' [resl] optional: '156.154.100.5' score: 10 zone cut: 'jp.' m12n: 'a.b.c.d.e.cO.jp.' type: 'A' [iter] AA terminate resolution chain [iter] <= rcode: NXDOMAIN [ pc ] => pktcache_stash entry [ pc ] => pktcache_stash NXDOMAIN [ pc ] => pktcache_stash answer [ pc ] => answer cached for TTL=900 [resl] <= server: '150.100.6.8' rtt: 6 ms [resl] finished: 4, queries: 1, mempool: 16400 B }}} さらに追加で問い合わせたときの記録: {{{ [plan] plan 'x.a.b.c.d.e.co.jp.' type 'A' kr_zonecut_find_cached xabcdecojp kr_zonecut_find_cached abcdecojp kr_zonecut_find_cached bcdecojp kr_zonecut_find_cached cdecojp kr_zonecut_find_cached decojp kr_zonecut_find_cached ecojp kr_zonecut_find_cached cojp kr_zonecut_find_cached jp [resl] ns_fetch_cut ret 0 [resl] NT check; xabcdecojp cut jp [resl] peekpkt ecojp ret -2 [resl] peekpkt cojp ret 0 [resl] zone_cut_check -> ns_fetch_cut = 0 }}} 存在する直近のcutの二階層下から、non-terminalノードを探している。 {{{ [plan] plan 'g.dns.jp.' type 'A' kr_zonecut_find_cached [resl] ns_fetch_cut ret -2 [resl] zone_cut_check -> ns_fetch_cut = -2 [resl] => using root hints [resl] => querying: '199.7.83.42' score: 10 zone cut: '.' m12n: 'JP.' type: 'NS' [resl] optional: '193.0.14.129' score: 10 zone cut: '.' m12n: 'JP.' type: 'NS' [resl] optional: '192.58.128.30' score: 10 zone cut: '.' m12n: 'JP.' type: 'NS' [resl] optional: '192.36.148.17' score: 10 zone cut: '.' m12n: 'JP.' type: 'NS' [iter] Update zone cut [iter] zonecut_add jp NS adnsjp [iter] <= using glue for 'a.dns.jp.' [iter] Update zone cut jp [iter] zonecut_add jp NS bdnsjp [iter] <= using glue for 'b.dns.jp.' [iter] Update zone cut jp [iter] zonecut_add jp NS cdnsjp [iter] <= using glue for 'c.dns.jp.' [iter] Update zone cut jp [iter] zonecut_add jp NS ddnsjp [iter] <= using glue for 'd.dns.jp.' [iter] Update zone cut jp [iter] zonecut_add jp NS ednsjp [iter] <= using glue for 'e.dns.jp.' [iter] Update zone cut jp [iter] zonecut_add jp NS fdnsjp [iter] <= using glue for 'f.dns.jp.' [iter] Update zone cut jp [iter] zonecut_add jp NS gdnsjp [iter] <= using glue for 'g.dns.jp.' [iter] <= referral response, follow [ rc ] stash referral NS [ rc ] stash auth for jp [ rc ] stash auth for jp [ rc ] stash auth for jp [ rc ] stash auth for jp [ rc ] stash auth for jp [ rc ] stash auth for jp [ rc ] stash auth for jp [ pc ] => pktcache_stash entry [resl] <= server: '199.7.83.42' rtt: 152 ms [resl] => querying: '192.50.43.53' score: 10 zone cut: 'jp.' m12n: 'DnS.jP.' type: 'NS' [resl] optional: '210.138.175.244' score: 10 zone cut: 'jp.' m12n: 'DnS.jP.' type: 'NS' [resl] optional: '156.154.100.5' score: 10 zone cut: 'jp.' m12n: 'DnS.jP.' type: 'NS' [resl] optional: '202.12.30.131' score: 10 zone cut: 'jp.' m12n: 'DnS.jP.' type: 'NS' [iter] Update zone cut jp [iter] zonecut_add dnsjp NS nsednsjp [iter] <= using glue for 'nse.dns.jp.' [iter] Update zone cut dnsjp [iter] zonecut_add dnsjp NS nsfdnsjp [iter] <= using glue for 'nsf.dns.jp.' [iter] Update zone cut dnsjp [iter] zonecut_add dnsjp NS nsgdnsjp [iter] <= using glue for 'nsg.dns.jp.' [iter] Update zone cut dnsjp [iter] zonecut_add dnsjp NS nsbdnsjp [iter] <= using glue for 'nsb.dns.jp.' [iter] Update zone cut dnsjp [iter] zonecut_add dnsjp NS nsddnsjp [iter] <= using glue for 'nsd.dns.jp.' [iter] Update zone cut dnsjp [iter] zonecut_add dnsjp NS nsadnsjp [iter] <= using glue for 'nsa.dns.jp.' [iter] <= referral response, follow [ rc ] stash referral NS [ rc ] stash auth for dnsjp [ rc ] stash auth for dnsjp [ rc ] stash auth for dnsjp [ rc ] stash auth for dnsjp [ rc ] stash auth for dnsjp [ rc ] stash auth for dnsjp [ pc ] => pktcache_stash entry [resl] <= server: '192.50.43.53' rtt: 25 ms [resl] => querying: '203.119.40.4' score: 10 zone cut: 'dns.jp.' m12n: 'G.dns.Jp.' type: 'A' [resl] optional: '150.100.6.12' score: 10 zone cut: 'dns.jp.' m12n: 'G.dns.Jp.' type: 'A' [resl] optional: '192.50.43.153' score: 10 zone cut: 'dns.jp.' m12n: 'G.dns.Jp.' type: 'A' [resl] optional: '210.138.175.245' score: 10 zone cut: 'dns.jp.' m12n: 'G.dns.Jp.' type: 'A' [iter] AA terminate resolution chain [iter] <= rcode: NOERROR [ rc ] stash auth answer [ pc ] => pktcache_stash entry [resl] <= server: '203.119.40.4' rtt: 7 ms [resl] => querying: '203.119.40.1' score: 11 zone cut: 'jp.' m12n: 'X.A.b.C.D.E.co.JP.' type: 'A' [iter] AA terminate resolution chain [iter] <= rcode: NXDOMAIN [ pc ] => pktcache_stash entry [ pc ] => pktcache_stash NXDOMAIN [ pc ] => pktcache_stash answer [ pc ] => answer cached for TTL=900 [resl] <= server: '203.119.40.1' rtt: 5 ms [resl] finished: 4, queries: 2, mempool: 32800 B }}}