FrontPage
BIND
http://www.kozupon.com/bind/bind2.html
BIND†
2. ゾーンデータベースの動的更新†
- BIND付属のプログラムnsupdateを利用することで、ゾーンデータベースを動的に更新することが出来る。nsupdateを利用する場合、ゾーンデータベースを変更した場合には通常必要なnamedの再起動が必要になる。
- BIND側の設定は、デフォルトでは全ての動的更新を受け付けない設定になっている。このため、動的更新を行う場合には動的更新を受け付けるホスト設定の行う必要がある。動的更新に関する設定はゾーン単位で行う。以下にホスト自身から動的更新を受け付けるように設定する例を示す。
named.confの内容
zone "kozupon.com" {
省略
allow-update {
localhost;
};
省略
};
- 以上のように設定すると、ホスト自身から動的更新を受け付けるようになる。動的更新はセキュリティ上の弱点となる可能性もあるため、最低限のホストからのみ受け付けるように設定するようにする。
- nsupdateは、/etc/resolv.confファイルのnameserverディレクティブの設定にしたがって、クエリーを発行するDNSサーバを選択している。なので、ここで設定されているDNSサーバが、クエリーを受け付ける設定にされている必要がある。
- nsupdateは、動的更新の内容をプロンプトに対して1行づつ入力していくスタイルと、更新内容を指定のファイルに記述しておいてこのファイルから入力するスタイルの2種類が選択可能である。設定できる内容は同一で、ここではプロンプトを利用した設定について説明する。
- nsupdateを起動するとプロンプトが出力される。nsupdateの書式を以下に示す。
<section>: { <operation> } <RR>
- <section>には、"prereq"と"update"の2つが利用可能である。prereqはupdateを行う前の前処理指定を行う。
- <operation>には、"add"と"delete"の2つが利用可能である。addはゾーンデータベースに対する追加、deleteはゾーンデータベースからの削除を行う。
- <RR>には、ゾーンデータベースファイルに記述するのと同じリソースレコードを指定する。ただし、ここではTTLの指定が必須となっている。
- ゾーンkozupon.comに対して、新しいホストnew.kozupon.comを加える場合の例を以下に示す。ここでは、new.kozupon.comのIPアドレスを192.168.0.40としている。
# nsupdate
> update add new.kozupon.com 600 IN A 192.168.0.40
> ←スペース入力
> Ctrl + D
- コマンドを入力した段階では、namedに対してクエリーは送れない。入力した内容を有効にするには、必ずスペースを一文字入力してEnterを入力する。書式に誤りがある場合には、クエリーは発行されずにnamedは終了する。
- また、クエリーが発行された場合でも動的更新がうまくいかなかった場合、BINDの設定で動的更新を受け付けるホストの設定に失敗していることが考えられる。
- ゾーンデータベースからエントリの削除を行う場合には、deleteを利用する。削除の場合にはリソースレコードをすべて指定する必要はないが、エントリのクラスと型を指定する必要がある。ゾーンkozupon.comからホストnew.kozupon.comを削除する場合の例を以下に示す。
# nsupdate
> update delete new.kozupon.com IN A
> ←スペース入力
> Ctrl + D
- クエリーが発行されて動的更新が受理された場合の出力は、あらかじめ削除する対象のホストの存在を確認するため、追加に比べて出力が長くなる。
Counter: 1611,
today: 1,
yesterday: 0
2008-10-03 (金) 14:52:36