dig +sigchase

dig で validation できた (trusted-key には root "." の鍵だけ)
> cat /etc/trusted-key.key 
. DNSKEY 257 3 8 AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq QxA+Uk1ihz0=
> dig clicklog.org +sigchase | grep "DNSSEC validation"
;; Ok this DNSKEY is a Trusted Key, DNSSEC validation is ok: SUCCESS
>


最初 SHA-2 への対応が 9.6.2 以降なことに気がつかなくて、うまくいかず、しばらく悩んだ。

9.6.1 の dig で試すと "No trusted keys present" としか出ないから、そもそも trusted-keys.key のフォーマット自体がおかしいのかと思い、いろいろ調べてた。意外と trusted-keys.key のフォーマットに言及してるページがなくて、結局 bind9/lib/dns/dst_api.c の read_public_key() に書かれてるコメントで初めて正しいフォーマットが分かった。

で、正しいフォーマットで書いたのに、それでも相変わらず "No trusted keys present" になるから、そこでやっとアルゴリズムの非互換性に思い当たり、試しに DNSKEY のアルゴリズム("8"の部分)を "7" (SHA-1) に変更したらようやく "dns_dnssec_keyfromrdata: algorithm is unsupported" っていうエラーに変化してくれて SHA-2 のことを思い出した。

(アルゴリズムの部分が非対応なら "No trusted keys present" だけじゃなくて、そういうエラーメッセージも出してくれればいいのに。ISC_R_UNEXPECTEDTOKEN はちょっと違うと思う。 > dig)

posted by say · 2010年07月24日 07:52 · memo