= kresd/Marek/2016-04-18 = == Feature request == Use negative caching information to detect some kind of poison. == Senario == 1st query: dig nonexist.go.jp NOERROR response for go.jp NS is cached in somewhere. (pktcache) 2nd query: dig xxx.ddnonexist.go.jp kresd knows go.jp NS does not exist. (How: I want to know.)   So, query is sent to jp NS. Usually jp NS responds NXDOMAIN. If we get go.jp delegation response, we know it is a poison. Reason : we know that go.jp does not have NS record. (somewhere in cache) == patch == I looked into the process_authory function (in lib/layer/iteration.c) and found the place where to insert the patch above. Problem is what should be the patch. (e.g. How do I use pktcache_peek) Regards, -- ToshinoriMaeno <> ----- {{{ => querying: '203.119.40.1' score: 11 zone cut: 'jp.' m12n: 'go.Jp.' type: 'NS' [iter] <= rcode: NOERROR [iter] <= found cut, retrying with non-minimized name [ pc ] => answer cached for TTL=900 [resl] <= server: '203.119.40.1' rtt: 6 ms [resl] => querying: '203.119.40.1' score: 11 zone cut: 'jp.' m12n: 'NONexist.Go.jP.' type: 'A' [iter] <= rcode: NXDOMAIN [ pc ] => answer cached for TTL=900 [resl] <= server: '203.119.40.1' rtt: 5 ms [resl] finished: 4, queries: 2, mempool: 32800 B }}} {{{ [plan] plan 'xxx.ddnonexist.go.jp.' type 'A' [resl] => querying: '203.119.40.1' score: 11 zone cut: 'jp.' m12n: 'xxx.DdNoNExIST.go.jP.' type: 'A' [iter] <= rcode: NXDOMAIN [ pc ] => answer cached for TTL=900 [resl] <= server: '203.119.40.1' rtt: 6 ms [resl] finished: 4, queries: 1, mempool: 32800 B }}}