DNS サーバーを構築する

DNS サーバーパッケージをインストールする

 DNS サーバーパッケージ (bind) は、yum コマンドを使用してインストールしますので、パッケージ管理の設定が完了していることを確認して下さい。

[ Fedora 8 / Fedora 7 ]

[root@web ~]# yum install bind


 また、キャッシングサーバーを構築するために caching-nameserver パッケージ、bind パッケージをより安全な DNS サーバーとして構築するために bind-chroot パッケージもインストールしておきます。

[ Fedora 8 / Fedora 7 ]

[root@web ~]# yum install caching-nameserver


[root@web ~]# yum install bind-chroot

* Fedora 8 では、caching-nameserver パッケージはリポジトリに登録されていないようです。


DNS サーバーの初期設定について

 DNS サーバーの機能に関するオプション設定は、/etc/named.conf ファイルを編集します。 しかし、bind パッケージをインストールした段階では、named.conf ファイルが存在しないため、サンプルを使用してオプション設定を行います。

[ 参考ファイル : /etc/named.caching-nameserver.conf | /usr/share/doc/bind-9.4.2/sample/etc/named.conf ]

[ Fedora 8 / Fedora 7 ]

[root@web ~]# vi /var/named/chroot/etc/named.conf

//
// named.caching-nameserver.conf
//
// Provided by Red Hat caching-nameserver package to configure the
// ISC BIND named(8) DNS server as a caching only nameserver
// (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// DO NOT EDIT THIS FILE - use system-config-bind or an editor
// to create named.conf - edits to this file will be lost on
// caching-nameserver package upgrade.
//

options {
//      listen-on port 53 { 127.0.0.1; };
//      listen-on-v6 port 53 { ::1; };
        query-source    port 53;
        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";
        クエリーの制限
        allow-query { localhost; localnets; }; [ 内部ネットワークのみ許可する ]
        外部 DNS サーバーにクエリーを送信する場合
        forwarders {
                192.168.0.1; [ ルーター経由の場合 (ルーターの IP アドレス) ]
                プロバイダから通知を受けた DNS サーバーがある場合
                xxx.xxx.xxx.xxx; [ プライマリ DNS サーバー ]
                xxx.xxx.xxx.xxx; [ セカンダリ DNS サーバー ]
        };
        recursion yes;
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

view "localhost_resolver" {
        match-clients           { localhost; };
        match-destinations      { localhost; };
        recursion yes;
        include "/etc/named.root.hints";
        include "/etc/named.i2kt.com.zone.lan";
        include "/etc/named.rfc1912.zones";
};

内部ネットワーク向け
view "internal" {
        match-clients           { localnets; };
        match-destinations      { localnets; };
        recursion yes;
        include "/etc/named.root.hints";
        include "/etc/named.i2kt.com.zone.lan";
        include "/etc/rndc.key";
};

外部ネットワーク向け (インターネット向け DNS サーバーを構築する場合)
view "external" {
        match-clients           { !localnets; !localhost; };
        match-destinations      { !localnets; !localhost; };
        recursion no;
        include "/etc/named.root.hints";
};

DNS サーバーの設定について

 DNS サーバーの初期設定で使用するルートゾーン定義ファイル、マスタサーバーゾーン定義ファイルを作成します。

[ Fedora 8 / Fedora 7 ]

ルートゾーン定義ファイルを作成する

[root@web ~]# vi /var/named/chroot/etc/named.root.hints

zone "." IN {
        type hint;
        file "named.ca";
};

マスタサーバーゾーン定義ファイルを作成する

[root@web ~]# vi /var/named/chroot/etc/named.i2kt.com.zone.lan

正引きゾーンマスターファイル
zone "i2kt.com" IN {
        type master;
        file "i2kt.com.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; };
};

DNS サーバーの設定について (マスターサーバー : 正引きゾーンマスターファイル)

 DNS サーバーを構築するときには、必ずマスターサーバーの存在が必要になります。 マスターサーバーは、初期設定ファイルとルートサーバーリストファイル以外に、サーバーが権威を持つゾーンすべてに対するデータベースファイルを準備します。 ここでは、マスターサーバーとして動作させるために必要な正引きゾーンマスタファイル (i2kt.com.db) を作成します。

[ Fedora 8 / Fedora 7 ]

[root@web ~]# vi /var/named/chroot/var/named/i2kt.com.db

$TTL    86400
@       IN      SOA     i2kt.com. root.i2kt.com. (
                        2007091901      ; serial
                        3600            ; refresh
                        3600            ; retry
                        604800          ; expire
                        86400           ; minimum
)
                        IN NS           i2kt.com.
                        IN MX 0         i2kt.com.
;
@                       IN A            192.168.0.201
www                     IN A            192.168.0.201
smtp                    IN A            192.168.0.201
pop3                    IN A            192.168.0.201

DNS サーバーの設定について (マスターサーバー : 逆引きゾーンマスターファイル)

 マスターサーバーは、サーバーが権威を持つゾーンすべてに対する正引きゾーンマスタファイル以外に、逆引きゾーンマスタファイルを準備します。 ここでは、マスターサーバーとして動作させるために必要な逆引きゾーンマスタファイル (0.168.192.in-addr.arpa.db) を作成します。

[ Fedora 8 / Fedora 7 ]

[root@web ~]# vi /var/named/chroot/var/named/0.168.192.in-addr.arpa.db

$TTL    86400
@       IN      SOA     i2kt.com. root.i2kt.com. (
                        2007091901      ; serial
                        3600            ; refresh
                        3600            ; retry
                        604800          ; expire
                        86400           ; nagative
)
                        IN NS           i2kt.com.
;
201                     IN PTR          i2kt.com.

DNS サーバーの設定について (所有者グループの変更)

 DNS サーバーの設定において、作成したファイルの所有者グループを変更します。

[ Fedora 8 / Fedora 7 ]

[root@web ~]# chgrp named /var/named/chroot/etc/named.conf


[root@web ~]# chgrp named /var/named/chroot/etc/named.root.hints


[root@web ~]# chgrp named /var/named/chroot/etc/named.i2kt.com.zone.lan


[root@web ~]# chgrp named /var/named/chroot/var/named/i2kt.com.db


[root@web ~]# chgrp named /var/named/chroot/var/named/0.168.192.in-addr.arpa.db


DNS サーバーを起動する

 パッケージをインストールした段階では、セキュリティを考慮しているため自動起動されません。 Fedora システムの再起動後に DNS サーバーを起動する場合には、自動起動の設定を行います。

[ Fedora 8 / Fedora 7 ]

DNS サーバーを起動する

[root@web ~]# /etc/rc.d/init.d/named start

named を起動中:                                            [  OK  ]

DNS サーバーの自動起動を設定する

[root@web ~]# chkconfig named on

[root@web ~]# chkconfig --list named

named           0:off   1:off   2:on    3:on    4:on    5:on    6:off