「BIND」の設定

IPアドレスではなく、コンピュータ名でアクセスできるように設定します。
なお、自分の環境は固定IPではないので、ここでの設定は内部でのみの利用となります。

「BIND」のインストール

「BIND」の他にキャッシングサーバもインストールします。
また、セキュリティを考えてbind-chrootもインストールします。

[root@CentOS ~]# yum -y install bind caching-nameserver bind-chroot <= 「BIND」関連のインストール
[root@CentOS ~]# yum clean packages <= ダウンロードしたパッケージの削除
「BIND」の設定

named.caching-nameserver.conf ファイルを直接編集すると、「BIND」がアップデートされた時に置き換えられる恐れがあるので、 named.conf にファイル名を変更して設定します。
なお、named.conf は named.caching-nameserver.conf より優先されるので、 named.caching-nameserver.conf ファイルは変更しなくても問題ありません。
また、「CentOS」のバージョンによって記述されていない項目もありますが、その場合は何もしなくて構いません。

[root@CentOS ~]# cp -p /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.conf
 <= 設定ファイルのコピー
[root@CentOS ~]# vi /var/named/chroot/etc/named.conf <= 設定ファイルの編集
options {
        version "unknown"; <= 追加(バージョン情報を非表示)
#        listen-on port 53 { 127.0.0.1; }; <= コメントアウト
#        listen-on-v6 port 53 { ::1; }; <= コメントアウト
        directory "/var/named";
        dump-file "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        query-source    port 53;
#        query-source-v6 port 53; <= コメントアウト
#        allow-query     { localhost; }; <= コメントアウト
        以下を追加
        allow-query{
                        127.0.0.1;
                        192.168.0.0/16; <= DNSサーバを利用するネットワークを指定
        };
        allow-recursion{
                        127.0.0.1;
                        192.168.0.0/16; <= DNSサーバをキャッシュサーバとして利用するネットワークを指定
        };
        allow-transfer{
                        127.0.0.1;
                        192.168.0.0/16; <= DNSサーバのゾーンデータの転送先のネットワークを指定
        };
        forwarders{
                        192.168.0.1; <= このDNSサーバで名前解決ができなかった場合の問合せ先を指定
        };
        ここまで
};

rndcを利用する場合、以下のように設定
controls {
        inet 127.0.0.1 allow { localhost; } keys { rndckey; }; <= rndcが利用可能なホスト(localhostのみ可)
};

include "/etc/rndc.key"; <= rndc.keyのパス
ここまで

以下を追加(逆引きのエラーログをとらない)
なお、すでにlogging 節がある場合、その中に記述する
logging {
        category lame-servers { null; };
};

view機能を利用したzoneの設定

まず、「BIND」を設定します。

[root@CentOS ~]# vi /var/named/chroot/etc/named.conf <= 設定ファイルの編集
view節が以下のようになるように修正
view localhost_resolver { <= キャッシュ専用サーバの設定
        match-clients      { localhost; };
        match-destinations { localhost; };
        recursion yes;
        include "/etc/named.rfc1912.zones";
        include "/etc/named.crimson-snow.net.zones";
};

view "internal" { <= 内部向けDNSサーバの設定
        match-clients { localnets; };
        match-destinations { localnets; };
        recursion yes;
        include "/etc/named.root.hints";
        include "/etc/named.crimson-snow.net.zones";
};

次にゾーン定義ファイルを作成します。

[root@CentOS ~]# vi /var/named/chroot/etc/named.root.hints <= ルートゾーン定義ファイルの作成
zone "." IN {
        type hint;
        file "named.ca";
};

[root@CentOS ~]# vi /var/named/chroot/etc/named.crimson-snow.net.zones <= crimson-snow.netの定義ファイルの作成
zone "crimson-snow.net" IN { <= 正引きゾーンファイル
        type master;
        file "crimson-snow.net.db";
        allow-update { none; };
};
zone "0.168.192.in-addr.arpa" IN { <= 逆引きゾーンファイル
        type master;
        file "0.168.192.in-addr.arpa.db";
        allow-update { none; };
};

view機能を利用しないzoneの設定

view節があると、その外にゾーンの定義を記述できないので、view節は全てコメントアウトまたは削除します。

[root@CentOS ~]# vi /var/named/chroot/etc/named.conf <= 設定ファイルの編集
view節を全てコメントアウトまたは削除
view … {
 …
}
ここまで

最終行に以下を追加
zone "crimson-snow.net" IN { <= 正引きゾーンファイル
        type master;
        file "crimson-snow.net.db";
        allow-update { none; };
};
zone "0.168.192.in-addr.arpa" IN { <= 逆引きゾーンファイル
        type master;
        file "0.168.192.in-addr.arpa.db";
        allow-update { none; };
};

ルートゾーンの最新化

念の為、ルートゾーンを最新にします。

[root@CentOS ~]# dig > /var/named/chroot/var/named/named.ca
ゾーンファイルの作成

正引きゾーンファイルの作成

ホスト名(ドメイン名)からIPアドレスを解決する為のファイルを作成します。

[root@CentOS ~]# vi /var/named/chroot/var/named/crimson-snow.net.db <= 正引きゾーンファイル作成
$TTL    86400
@             IN      SOA   crimson-snow.net.  root.crimson-snow.net.(
                                      2005030801 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
              IN      NS    crimson-snow.net.
              IN      MX 10 crimson-snow.net.
@             IN      A     192.168.0.2 <= サーバのIPアドレス
windows       IN      A     192.168.0.3 <= クライアントのIPアドレス
www           IN      CNAME @ <= http://www.crimson-snow.netでもアクセスできるようにする

逆引きゾーンファイルの作成

IPアドレスからホスト名(ドメイン名)を解決する為のファイルを作成します。

[root@CentOS ~]# vi /var/named/chroot/var/named/0.168.192.in-addr.arpa.db <= 逆引きゾーンファイル作成
$TTL    86400
@             IN      SOA   crimson-snow.net.  root.crimson-snow.net.(
                                      2005030801 ; Serial
                                      28800      ; Refresh
                                      14400      ; Retry
                                      3600000    ; Expire
                                      86400 )    ; Minimum
              IN      NS    crimson-snow.net.
2             IN      PTR   crimson-snow.net. <= サーバ名
3             IN      PTR   windows <= クライアント名
DNSサーバの起動
[root@CentOS ~]# /etc/rc.d/init.d/named start

DNSサーバの自動起動

CentOSを起動する際に自動的にDNSサーバも起動するようにします。

[root@CentOS ~]# chkconfig named on
参照するDNSサーバの変更

Linuxで参照するDNSサーバを変更する場合、以下のようにします。

[root@CentOS ~]# vi /etc/resolv.conf <= 設定ファイルの編集
nameserver xxx.xxx.xxx.xxx <= 元々参照していたDNSサーバ
↓
nameserver 192.168.0.2 <= サーバのIPアドレスを指定
▲ページのトップへ