MoinQ:

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