CentOS 5.6 で DNS サーバーを導入する (BIND)

Pocket

すごく大変でした。すごく覚え書き。検証環境は CentOS 5.6 です。

BIND インストール

# yum -y install bind bind-chroot caching-nameserver

下ごしらえ

# cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.conf
# chgrp named /var/named/chroot/etc/named.conf

/var/named/chroot/etc/named.conf の編集

# cd /var/named/chroot/etc

所有グループ変更。

# chgrp named named.conf

赤くハイライトされている黒の太字部分が変更、追加した部分。

# vi 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; };
        version "unknown";
        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";

        // Those options should be used carefully because they disable port
        // randomization
        // query-source    port 53;     
        // query-source-v6 port 53;

        allow-query     { localhost; localnets; };
        allow-query-cache { localhost; localnets; };
        forwarders {
                192.168.0.1;
                8.8.8.8;
                8.8.4.4;
        };
};
logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
        category lame-servers { null; };
};
view localhost_resolver {
        match-clients      { localhost; };
        match-destinations { localhost; };
        recursion yes;
        include "/etc/named.rfc1912.zones";
        include "/etc/named.build-nostalgia.com.zone";
};
# internal match view:
view "internal" {
        match-clients { localnets; };
        match-destinations { localnets; };
        recursion yes;
        include "/etc/named.rfc1912.zones";
        include "/etc/named.build-nostalgia.com.zone";
};
# external match view: resolve sub-domains
view "external" {
        match-clients { any; };
        match-destinations { any; };
        recursion no;
        include "/etc/named.build-nostalgia.com.zone.wan";
};

内部向け、外部向けのゾーンファイル作成

# cd /var/named/chroot/etc

内部向けゾーンファイル

正引き、逆引きともに設定。

# vi named.build-nostalgia.com.zone
zone "build-nostalgia.com" {
        type master;
        file "build-nostalgia.com.db";
};
zone "0.168.192.in-addr.arpa" {
        type master;
        file "0.168.192.in-addr.arpa.db";
};

外部向けゾーンファイル

正引きのみ。

# vi named.build-nostalgia.com.zone.wan
zone "build-nostalgia.com" {
        type master;
        file "build-nostalgia.com.db.wan";
        allow-query { any; };
};

IPv6での名前解決エラーによる速度低下防止

# echo 'OPTIONS="-4"' >> /etc/sysconfig/named 

正引き、逆引きデータベース作成

正引き、逆引きのためのデータベース作成のステップ。

# cd /var/named/chroot/var/named

内部向け正引きデータベース作成

# vi build-nostalgia.com.db
$TTL    86400
@       IN      SOA     build-nostalgia.com. root.build-nostalgia.com. (
        2011061001
        10800
        3600
        604800
        86400 )
;
        IN      NS      build-nostalgia.com.
;
rt      IN      A       192.168.0.1
;
@       IN      A       192.168.0.101
vhost   IN      A       192.168.0.100
www     IN      A       192.168.0.101
ns      IN      A       192.168.0.102
*       IN      A       192.168.0.101

内部向け逆引きデータベース作成

# vi 0.168.192.in-addr.arpa.db
$TTL    86400
@       IN      SOA     build-nostalgia.com.    root.build-nostalgia.com. (
        2011061001
        10800
        3600
        604800
        86400 )
;
        IN      NS      ns.build-nostalgia.com.
;
        IN      PTR     build-nostalgia.com.
;
1       IN      PTR     rt.build-nostalgia.com.
100     IN      PTR     vhost.build-nostalgia.com.
101     IN      PTR     www.build-nostalgia.com.
102     IN      PTR     ns.build-nostalgia.com.

外部向け正引きデータベース作成

XXX.XXX.XXX.XXX の部分はルーターに当たっているグローバル IP アドレスを指定します。

# vi build-nostalgia.com.db.wan
$TTL    86400
@       IN      SOA     ns.build-nostalgia.com. root.build-nostalgia.com. (
        2011061001
        10800
        3600
        604800
        86400 )
;
        IN      NS      ns.build-nostalgia.com.
;
vhost   IN      A       XXX.XXX.XXX.XXX
www     IN      A       XXX.XXX.XXX.XXX
ns      IN      A       XXX.XXX.XXX.XXX

サービス起動設定

# service named start
# chkconfig named on

DNS サーバー自身の名前解決設定

自分自身に名前解決を行わせるようにする。

# echo "nameserver 127.0.0.1" > /etc/resolv.conf

正引き、逆引きのテスト

これは内部向けの名前解決の例。
事前にクライアントのネットワークアダプタの優先 DNS を先程作成した DNS サーバーに向けておくこと。

正引き

C:Usersnoguchi>nslookup www.build-nostalgia.com
サーバー:  ns.build-nostalgia.com
Address:  192.168.0.102

名前:    www.build-nostalgia.com
Address:  192.168.0.101

逆引き

C:Usersnoguchi>nslookup 192.168.0.100
サーバー:  ns.build-nostalgia.com
Address:  192.168.0.102

名前:    vhost.build-nostalgia.com
Address:  192.168.0.100

レジストラのプライマリ DNS を変更

変更したら 1 日、 2 日待たないといけないらしいです。

なんかうまく動かないんだけど?

たいていのサービスのメッセージは /var/log/messages に出力されています。以下のコマンドを打ってみると幸せになれるかもしれません。

# tail /var/log/messages

参考

いろいろ参考にさせていただきました。ありがとうございました。

  1. 連載記事 「BINDで作るDNSサーバ」
  2. DNSサーバー構築(BIND) – CentOSで自宅サーバー構築
  3. “(/var/named/chroot/)etc/named.conf”の9行目について、クエリーソー…
  4. ■forwardersの利用  BIND…
  5. category lame-servers…
  6. view “internal” と view “external” を定義するが、 必ず…
  7. 再帰検索を禁止したいのですが? Q. インターネットからの再帰検索を許可していると、 DDoS…
  8. 最近(2009/10)、モデムのアクセスLEDが妙にチカチカしていて負荷がかかっており、不正なアタック…

投稿者紹介

株式会社ユニキャスト
私たちは、テクノロジに魅せられた個性あふれるメンバーによって構成された茨城県日立市に本社を構えるベンチャー企業です。
”テクノロジを通して「驚き」と「感動」を創造し、人々の「夢」と「笑顔」を支えます。” の経営理念をモットーに明るい未来を描き、ワクワクする企画提案を続けて参ります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください