トップページ > Fedora Core 5 > イントラネット サーバ構築 > プライマリサーバ > DNSサーバ

Fedora Core 5
イントラネット サーバ構築

プライマリサーバ

DNSサーバ

解説

 インターネットやイントラネットなどのTCP/IPネットワークでは 通信先を指定するのにIPアドレス(例:192.168.0.200)が使用されます。 しかしIPアドレスは数字の羅列で覚えにくいため、 通常は人間が直感的に覚えやすいホスト名とドメイン名の組み合わせ (例:pc.ranonet.ne.jp)を使用します。 しかし実際の通信では先に説明したIPアドレスが使用されるため、 ホスト名とドメイン名の組み合わせをIPアドレスに変換する必要があります。 ここで利用されるのがDNSサーバです。 DNSサーバはホスト名・ドメイン名とIPアドレスの対応付けを管理しています。 人がインターネットを利用するとき、例えばブラウザからウェブサイトを 閲覧するときに、ブラウザのアドレス欄にホスト名・ドメイン名を入力します。 するとコンピュータはその名前を元にDNSサーバへ対応するIPアドレスを 問い合わせます。そして得られたIPアドレスを元にインターネット上の Webサーバと通信が行われます。一般的にDNSサーバは自身が設置された エリアのドメインのみを管理します。ここではイントラネットのドメイン (以下の例ではranonet.ne.jp)内のサーバとPCのドメインを管理します。 また、イントラネット外のドメイン(つまりインターネットのドメイン) については、各ドメインを管理するDNSサーバへ代理で問い合わせを行う サービスを提供します。

対応バージョン

 bind-9.3.2-4.1(Fedora Core 5標準)
 bind-libs-9.3.2-4.1(Fedora Core 5標準)
 bind-utils-9.3.2-4.1(Fedora Core 5標準)
 bind-chroot-9.3.2-4.1(Fedora Core 5標準)
 caching-nameserver-7.3-5.FC5(Fedora Core 5標準)

インストール

 初期状態でDNSサーバに必要なパッケージはインストールされています。 ここではDNSサーバのセキュリティを高めるために必要なパッケージを1つインストールします。 DVDドライブにFedora Core 5のDVD-ROMをセットし、以下のコマンドを実行します。
# mount /media/cdrom
# cd /media/cdrom/Fedora/RPMS
# rpm -ihv bind-chroot-9.3.2-4.1.i386.rpm
準備中...                   ########################################### [100%]
   1:bind-chroot            ########################################### [100%]
# cd /
# umount /media/cdrom

設定

 ここではDNSサーバが管理しているドメイン内・外の名前解決を行えるように設定します。 ドメイン内の情報については自身がホスト名・ドメイン名とIPアドレスの対応情報 (以降ゾーンデータベースという)を保持して管理します。 ドメイン外の情報についてはクライアントから問い合わせを受け付けた際に、 該当情報を管理しているDNSサーバへ代理で問い合わせを行い、 得られた結果をクライアントへ返す機能を提供します(キャッシュサーバ)。 また、イントラネットのドメインは外部へは公開する必要がないため、 外部からの問い合わせには応答しない設定とします。 DNSサーバは悪意ある攻撃の対象となるケースが多いため、その他セキュリティ上 必要な設定も行います。

(1) DNSサーバの設定

 viエディタで設定ファイル(named.conf)を開き、設定を追加します。
# cd /var/named/chroot/etc/
# vi named.conf
ファイル(/var/named/chroot/etc/named.conf)
※該当箇所に追加※
options {
        directory "/var/named";
        dump-file "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        ↓以下の行を追加↓
        version "Unknown";
        allow-query { 127.0.0.1; 192.168.0.0/24; };
        allow-recursion { 127.0.0.1; 192.168.0.0/24; };
        allow-transfer { none; };
        ↑ここまで追加↑
(中略)
        // query-source address * port 53;
};
※該当箇所に追加※
zone "0.in-addr.arpa" IN {
        type master;
        file "named.zero";
        allow-update { none; };
};

↓以下の行を追加↓
zone "ranonet.ne.jp" IN {
        type master;
        file "ranonet.ne.jp.zone";
        allow-update { none; };
        allow-transfer { 192.168.0.12; }; ←(*1)
};

zone "0.168.192.in-addr.arpa" IN {
        type master;
        file "0.168.192.in-addr.arpa.zone";
        allow-update { none; };
        allow-transfer { 192.168.0.12; }; ←(*1)
};

↑ここまで追加↑
include "/etc/rndc.key";
(*1):セカンダリサーバを構築しない場合は記述不要

(2) 正引き用ゾーンデータベースの作成

 独自で利用するドメインのゾーンデータベースファイルは初期状態では存在していません。 ゾーンデータベースファイルはテキストファイルですので、 まずはファイルを新規に作成し、適切なパーミッションを設定します。 その後viエディタでファイル(ranonet.ne.jp.zone)を開き、管理情報を記述します。
# cd /var/named/chroot/var/named/
# touch ranonet.ne.jp.zone
# chown named:named ranonet.ne.jp.zone
# vi ranonet.ne.jp.zone
ファイル(/var/named/chroot/var/named/ranonet.ne.jp.zone)
$TTL 86400
ranonet.ne.jp.  IN      SOA     svr1.ranonet.ne.jp.     root.ranonet.ne.jp.
     ( ←実際には上の行から折り返さずに記述する
        2006062300      ; Serial
        7200            ; Refresh
        3600            ; Retry
        604800          ; Expire
        86400           ; Negative Cache TTL
)
                IN      NS      svr1.ranonet.ne.jp.
                IN      NS      svr2.ranonet.ne.jp. ←(*1)
                IN      MX 10   svr1
                IN      MX 20   svr2         ←(*1)
svr1            IN      A       192.168.0.11
svr2            IN      A       192.168.0.12     ←(*1)
pc1             IN      A       192.168.0.101
pc2             IN      A       192.168.0.102
pc3             IN      A       192.168.0.103
www             IN      CNAME   svr1
(*1):セカンダリサーバを構築しない場合は記述不要

(3) 逆引き用ゾーンデータベースの作成

 正引きゾーンデータベースと同様に、逆引きゾーンデータベースを作成します。 手順も同様でゾーンデータベースファイルを新規に作成し、 適切なパーミッションを設定します。 その後viエディタでファイル(0.168.192.in-addr.arpa.zone)を開き、管理情報を記述します。
# cd /var/named/chroot/var/named/
# touch 0.168.192.in-addr.arpa.zone
# chown named:named 0.168.192.in-addr.arpa.zone
# vi 0.168.192.in-addr.arpa.zone
ファイル(/var/named/chroot/var/named/0.168.192.in-addr.arpa.zone)
$TTL 86400
0.168.192.in-addr.arpa. IN      SOA     svr1.ranonet.ne.jp.     
root.ranonet.ne.jp.     ( ←実際には上の行から折り返さずに記述する
        2006062300      ; Serial
        7200            ; Refresh
        3600            ; Retry
        604800          ; Expire
        86400           ; Negative Cache TTL
)
                IN      NS      svr1.ranonet.ne.jp.
                IN      NS      svr2.ranonet.ne.jp. ←(*1)
11              IN      PTR     svr1.ranonet.ne.jp.
12              IN      PTR     svr2.ranonet.ne.jp. ←(*1)
101             IN      PTR     pc1.ranonet.ne.jp.
102             IN      PTR     pc2.ranonet.ne.jp.
103             IN      PTR     pc3.ranonet.ne.jp.
(*1):セカンダリサーバを構築しない場合は記述不要

(4) DNSサーバの起動ランレベル変更

 OSの起動に併せてデーモンを自動起動する設定に変更します。
# chkconfig named on
 以上で設定が終了しましたのでrcスクリプトを使用してデーモンを起動します。
# /etc/rc.d/init.d/named start
named を起動中:                                            [  OK  ]