ルートゾーンサーバが返すルートサーバのA/AAAAのTTLがルートのNSよりも長い場合があることに気付いた。なんでそうなっているのかはわからない。

#!/bin/sh
for s in  $(dig | awk '$1=="." && $4 == "NS" { print $5 }' | sort); do
    echo "======================================== $s"
    dig @$s . ns +norec +edn=0
    dig @$s root-servers.net. soa +norec +edn=0
    dig @$s version.bind txt chaos +norec +edn=0
done

TTLを調べた結果

. NS . A *.root-servers.net. NS/A version.bind TXT
a 518400 518400 or 3600000 3600000 This space intentionally left blank.
b 518400 3600000 3600000 4.8.1
c 518400 3600000 3600000 c-root
d 518400 3600000 3600000 BIND 9.8
e 518400 518400 3600000 REFUSED
f 518400 3600000 3600000 9.9.6-P1
g 518400 3600000 3600000 REFUSED
h 518400 518400 3600000 NSD 4.1.0
i 518400 3600000 3600000 contact info@netnod.se
j 518400 3600000 3600000 This space intentionally left blank
k 518400 518400 3600000 NSD 3.2.14
l 518400 518400 3600000 NSD 4.1.0
m 518400 3600000 3600000 9.9.4-P2

さすがに ". NS" のTTLや "*.root-servers.net. NS/A/AAAA" のTTLはゾーン転送で同期が取れていてどれも同じだった。

そもそも . NS? の問い合わせでADDITIONALセクションに *.root-servers.net. の A が入って返ってくるということは、 . と root-servers.net. の両方の権威になっているということである。ルートゾーンはnet.を委譲しているのでAのゾーンデータをもっていないはずなのに答えられるとうことはroot-server.net.のゾーンデータをもっているはずだ、という理屈。であれば [a-m].root-servers.net. . A? の問い合わせで返ってくる A は同じじゃないとおかしい。

あと a.root-servers.net. は2種類TTLを返してくる。anycastになっているんだろうか。

koie