DHCPで取得したIPaddressを、local zone fileに動的に反映する際、BINDは、local zone fileと同じフォルダに、ジャーナル ファイルを作成します。そのため、BINDには、そのフォルダ対する書き込み権限を与える必要があります。しかし、BINDに/etc以下のフォルダに対する書き込み権限を与えると、セキュリティホールになりかねないので、CentOSもUbuntuも/varの下にlocal zoneのフォルダを置いています。しかし、そのディレクトリ構造は、全く異なります。CentOSのディレクトリ構造は複雑で、簡単には説明できませんが、"お便利サーバー"さんが丁寧に説明しているので、興味のある方はそちらを参照して下さい。
apt-getでbind9をインストールすると、/etc/bindと/var/cashe/bindという二つのフォルダができます。BINDが動的に更新するファイルは/var/cashe/bindに格納し、他の設定ファイルは/etc/bindに格納します。オーナーは、双方ともroot:bindですが、/etc/bindには、グループのwrite権限はありません。
/etc/bindには、デフォルトの設定ファイルも入ってますが、default-zones系のファイル以外は、かなり手を入れる必要があります。私は、我流ですが、下記のように設定しました。
| include "/etc/bind/named.conf.options"; view "internal" { match-clients { localnets; }; match-destinations { localnets; }; recursion yes; include "/etc/bind/named.conf.default-zones"; include "/etc/bind/named.conf.internal"; }; view "external" { match-clients { any; }; match-destinations { any; }; recursion no; include "/etc/bind/named.conf.external"; }; |
| zone "5thbear.jp" { type master; file "/var/cache/bind/db.5thbear.jp"; allow-update { 192.168.x.0/24; }; }; zone "x.168.192.in-addr.arpa" IN { type master; file "/var/cache/bind/db.192"; allow-update { 192.168.x.0/24; }; }; |
| zone "5thbear.jp" { type master; file "/etc/bind/db.5thbear.jp"; }; zone "196/32.195.228.218.in-addr.arpa" { type master; file "/etc/bind/db.196"; }; |
一方、DHCPが取得したIPアドレスのDNSへの通知は、Windowsの場合はClient側で設定しますが、LinuxではDHCPサーバー側/etc/dhcp3/dhcpd.confで設定します。従って、ルーターのDHCPを使用している場合はそれを停止し、dhcp3-serverをサーバーにインストールする必要があります。DHCPが取得したIPアドレスをDNSへ通知する設定は下記の通りです。
| ddns-update-style interim; allow client-updates; |