SSブログ

ISC DLVからDS方式の移行

JPRSがJPドメイン名サービスにDNSSECを導入したことに伴いISC DLVからJPRS上のDS方式に移行したので、そのメモでもと。尚、他の関連ネタ同様、ここなんかに書いているauto-dnssec maintain;が前提になっています。auto-dnssec maintain;についてはBIND97付属のARMの他、これなんかも参考になりそうです。

まず、新しいKSKを作ります。ISC DLVで使っていたものをそのまま移行でもよいのでしょうけど、折角だしこの機会に切り替えた方がよいかと思いまして。使用期間もわかりやすいかと思いますし。まあ、ゴタクは兎も角、新しいKSK作ります。

$ su -
# su - named --shell=/bin/bash
$ /usr/sbin/dnssec-keygen -f KSK -r /dev/urandom -3 -a \
 RSASHA256 -b 2048 -P now -A now+30h -I now+13mo -D now+13mo \
 -K /var/named/chroot/var/named/keys/example.jp \
 -n ZONE example.jp
Generating key pair...
Kexample.jp.+008+02746


KSKのロールオーバー方式ですが、こことかここに2重署名方式(Double Signature)とありますので、それに準じてみたいと思います。とはいうものの、そもそも登録しているところが違うので意味合いが変わって来ている感はありますが、まあ、似たような感じでやったと思って頂ければ。まず、publishedになってからactiveにするまでの時間ですが、DNSKEYのTTLとゾーン転送にかかる時間と誤差程度の作業時間(例えば、鍵作ってから実際に公開するまでの時間とか)ぐらいみればいいわけですが、TTLはまあ一般的には1日ぐらいだと思いますし、ゾーン転送は最近はNOTIFYとかあるのでそんなに掛からないとは思えども、普通に転送する場合とか失敗する場合とかも考えて多めに見積もって6時間ぐらいみておけばいいかなということで30時間としています。retiredとdeletedはどうせ更新時に明示的に行うことなので、ちょっと長めに適当です。

で、これで、鍵が出来ているはずなので、

$ rndc loadkeys example.jp.


とします。で、作成したKexample.jp.+008+02746でDNSKEYの署名が開始されるまで待ちます。要するに30時間後です。署名が開始されたらDSを申請します。dnssec-dsfromkey(8)を使ってDS RRを得ます。

$ /usr/sbin/dnssec-dsfromkey \
 /var/named/chroot/var/named/keys/example.jp/Kexample.jp.+008+02746.key
example.jp. IN DS 2746 8 1 1D8F72D56BEA0EABA6E6BCAC2093906135C9457B
example.jp. IN DS 2746 8 2 C6884BFF053E0F63B00153411AD3873DCD9462CBDD1261707CA83F2B 762319F7


レジストラにもよるのでしょうけど、利用中の名づけてねっとでは鍵ID以降、つまり、

2746 8 1 1D8F72D56BEA0EABA6E6BCAC2093906135C9457B
2746 8 2 C6884BFF053E0F63B00153411AD3873DCD9462CBDD1261707CA83F2B 762319F7


をフォームに貼り付ける方式でした。まあ、このあたりは利用中のレジストラのやり方に従えばよいだけかと思います。

親のゾーン(この場合はjp)にDS RRが登録されるのを待ちます。jp.のNS RRは、

$ dig jp. ns


なんぞで得られると思いますし、それらに

$ dig +norec @a.dns.jp example.jp. ds


等とすれば確認はできるかと思います。確認できたら、ISC DLVからDLV RRを消します。Zone Actionsの(delete)をぽちっとするだけです。ここで、また、DLV RRのTTLとゾーン転送にかかる時間程度を待つことになりますが、TTLが3600、Refreshが7200のようなので、3, 4時間程度待てばよいでしょう。その後、古いKSKがKexample.jp.+008+12199だったとしますと、dnssec-settime(8)使って、

$ /usr/sbin/dnssec-settime -I now \
 /var/named/chroot/var/named/keys/example.jp/Kexample.jp.+008+12199
$ rndc loadkeys example.jp.


とします。その後、

$ /usr/sbin/dnssec-settime -D now \
 /var/named/chroot/var/named/keys/example.jp/Kexample.jp.+008+12199
$ rndc loadkeys example.jp.


とすればゾーンから古いKSKは消えてくれます。(*1)




*1: 別に-I-Dを一気にやってしまってもいいのですが、なんとなくかわいそうな気がするものでw
nice!(0)  コメント(1)  トラックバック(0) 
共通テーマ:日記・雑感

nice! 0

コメント 1

*生保単独*

あんまり居ないとは思うんですが、ARM読んでたりすると、キャッシュDNSで、

managed-keys {
. initial-key 257 3 8 "...";
};

trusted-keys {
example.jp. 257 3 8 "...";
};

みたいな trusted-keys を書いている場合があるかと思うんですが、これも更新忘れないように。

DS申請するタイミングで足して、ISC DLVからDLV消すタイミングで古いのを消してやればよいです。
by *生保単独* (2011-01-21 01:51) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。