このblogを動かしてるサーバはDNSサーバも兼ねていて、10個のゾーンを管理しています。
そのうちDNSだけでも外出ししたいなー・・・と思っているので、予行演習を兼ねて、うちで持っているもう1台のサーバにもbindをインストールして、セカンダリとして動かすことにしました。
■■ 環境
プライマリネームサーバ 192.168.0.2
セカンダリネームサーバ 192.168.0.3
ちなみに、プライマリもセカンダリもCentOS4.5で、bind-9.2.4-27.0.1.el4をyumでインストールしています。
■■ プライマリ側の設定
既存のDNSサーバ(以下プライマリ)のnamed.confには
// 内部ネットワーク定義
acl localnet{
192.168.0.0/24;
127.0.0.1;
};
と
optionsのセクションに
allow-transfer{ localnet; };
を忘れずに追記してください。この設定がないと、192.168.0.0のネットワークにあるセカンダリDNSサーバへゾーン転送ができません。
次に、ココを参考にして、dnssec-keygenコマンドを用いて鍵を生成します。
# dnssec-keygen -a HMAC-MD5 -b 512 -n HOST blogcube.info
こうすることで、カレントディレクトリに鍵が生成されます。
そして鍵をnamed.confに貼り付けるわけですが・・・
# ls -l
-rw------- 1 root root 122 12月 4 23:35 Kblogcube.info.+157+11353.key
-rw------- 1 root root 145 12月 4 23:35 Kblogcube.info.+157+11353.private
このように、公開鍵と秘密鍵ができるのです。どっちも中身は一緒で、フォーマットが違うだけなので、公開鍵のほうをcatコマンドで出力します。
# cat Kblogcube.info.+157+11353.key
blogcube.info. IN KEY 512 3 157 UR1t4erqhT~~~~~~~~==
そして、named.confのoptionsセクションの次あたりに
key "blogcube.info" {
algorithm hmac-md5;
secret "UR1t4erqh~~~~~~~~==";
};
と記述します。そして、例えばblogcube.infoのゾーンを定義するのには
zone "blogcube.info" IN {
type master;
file "blogcube.info.db";
notify yes;
allow-update { key blogcube.info; };
};
こう書きます。ちなみに、allow-update { localnet; };と書いてもよいのですが、namedをreloadするたんびに
Dec 4 22:06:52 shasta named[1184]: zone 'blogcube.info' allows updates by IP address, which is insecure
というログが出てしまうので、今回、鍵を登録することにしました。
さて、ここまでできたところで
# named-checkconf
でnamed.confの書式ミスがないか確認します。何も出力されなければOKです。ここまで確認したら、bind(named)をreloadしましょう。
次のエントリでセカンダリ側の設定を書きます。おやすみなさい。