1. DNS/実装/KnotDNSresolver/a.ns.nic.cz

$ kdig -t a a.ns.nic.cz @127.0.0.3

;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 65414
;; Flags: qr rd ra; QUERY: 1; ANSWER: 1; AUTHORITY: 0; ADDITIONAL: 0

;; QUESTION SECTION:
;; a.ns.nic.cz.                 IN      A

;; ANSWER SECTION:
a.ns.nic.cz.            1800    IN      A       194.0.12.1

;; Received 45 B
;; Time 2015-10-14 08:17:28 JST
;; From 127.0.0.3@53(UDP) in 921.1 ms

[plan] plan 'a.ns.nic.cz.' type 'A'
[resl]   => querying: '199.7.83.42' score: 10 zone cut: '.' m12n: 'cz.' type: 'NS'
[iter]   <= referral response, follow
[resl]   => querying: '194.0.12.1' score: 10 zone cut: 'cz.' m12n: 'nic.cZ.' type: 'NS'
[iter]   <= rcode: NOERROR
[iter]   <= found cut, retrying with non-minimized name
[resl]   => querying: '194.0.13.1' score: 10 zone cut: 'cz.' m12n: 'A.Ns.nIC.cz.' type: 'A'
[iter]   <= referral response, follow
[resl]   => querying: '193.29.206.1' score: 10 zone cut: 'nic.cz.' m12n: 'A.Ns.nIC.Cz.' type: 'A'
[iter]   <= rcode: NOERROR
[resl] finished: 4, queries: 1, mempool: 16392 B


$ kdig -t a b.ns.nic.cz @127.0.0.3

;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 10001
;; Flags: qr rd ra; QUERY: 1; ANSWER: 1; AUTHORITY: 0; ADDITIONAL: 0

;; QUESTION SECTION:
;; b.ns.nic.cz.                 IN      A

;; ANSWER SECTION:
b.ns.nic.cz.            172590  IN      A       194.0.13.1

;; Received 45 B
;; Time 2015-10-14 08:20:57 JST
;; From 127.0.0.3@53(UDP) in 0.3 ms

[plan] plan 'b.ns.nic.cz.' type 'A'
[ rc ]   => satisfied from cache
[iter]   <= rcode: NOERROR
[resl] finished: 4, queries: 1, mempool: 16392 B

b.ns.nic.cz A is in cache.


How about ns.nic.cz A.

$ kdig -t a ns.nic.cz @127.0.0.3

;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 19258
;; Flags: qr rd ra; QUERY: 1; ANSWER: 0; AUTHORITY: 1; ADDITIONAL: 0

;; QUESTION SECTION:
;; ns.nic.cz.                   IN      A

;; AUTHORITY SECTION:
nic.cz.                 1800    IN      SOA     a.ns.nic.cz. hostmaster.nic.cz. 1444344903 10800 3600 1209600 7200

;; Received 76 B
;; Time 2015-10-14 08:22:46 JST
;; From 127.0.0.3@53(UDP) in 501.9 ms

[plan] plan 'ns.nic.cz.' type 'A'
[resl]   => querying: '194.0.14.1' score: 10 zone cut: 'cz.' m12n: 'nIc.cz.' type: 'NS'
[iter]   <= rcode: NOERROR
[iter]   <= found cut, retrying with non-minimized name
[resl]   => querying: '193.29.206.1' score: 191 zone cut: 'cz.' m12n: 'Ns.nic.Cz.' type: 'A'
[iter]   <= rcode: NOERROR
[ pc ]   => answer cached for TTL=900
[resl] finished: 4, queries: 1, mempool: 16392 B

ns.nic.cz is not cached.


2. nic.cz

Query nic.cz ns first.

$ kdig -t ns nic.cz @127.0.0.3

;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 26738
;; Flags: qr rd ra; QUERY: 1; ANSWER: 3; AUTHORITY: 0; ADDITIONAL: 0

;; QUESTION SECTION:
;; nic.cz.                      IN      NS

;; ANSWER SECTION:
nic.cz.                 1800    IN      NS      a.ns.nic.cz.
nic.cz.                 1800    IN      NS      b.ns.nic.cz.
nic.cz.                 1800    IN      NS      d.ns.nic.cz.

;; Received 81 B
;; Time 2015-10-14 08:32:11 JST
;; From 127.0.0.3@53(UDP) in 187.6 ms

NS is returned in Answer Section. (Same as cz.)

[plan] plan 'nic.cz.' type 'NS'
[resl]   => querying: '193.29.206.1' score: 168 zone cut: 'cz.' m12n: 'Nic.CZ.' type: 'NS'
[iter]   <= rcode: NOERROR
[resl] finished: 4, queries: 1, mempool: 16392 B

nic.cz NS was not in cache.


However, they are in cache.

$ kdig -t mx ns.nic.cz @127.0.0.3

;; ->>HEADER<<- opcode: QUERY; status: NOERROR; id: 23023
;; Flags: qr rd ra; QUERY: 1; ANSWER: 0; AUTHORITY: 1; ADDITIONAL: 0

;; QUESTION SECTION:
;; ns.nic.cz.                   IN      MX

;; AUTHORITY SECTION:
nic.cz.                 1800    IN      SOA     a.ns.nic.cz. hostmaster.nic.cz. 1444344903 10800 3600 1209600 7200

;; Received 76 B
;; Time 2015-10-14 08:35:50 JST
;; From 127.0.0.3@53(UDP) in 175.4 ms

[plan] plan 'ns.nic.cz.' type 'MX'
[resl]   => querying: '193.29.206.1' score: 177 zone cut: 'nic.cz.' m12n: 'ns.niC.cZ.' type: 'MX'
[iter]   <= rcode: NOERROR
[ pc ]   => answer cached for TTL=900
[resl] finished: 4, queries: 1, mempool: 16392 B

zone cut nic.cz !!


nic.cz のNSを問い合せしていない状態でやってみれば、はっきりする。 -- ToshinoriMaeno 2015-10-13 23:39:11