BINDのセットアップを行う

先日このエントリで、
Courier Mail Serverをインストールしたところまでは良かったのですが、
それから先に進んでいませんでした。


今日はもう少し環境を作って行くという事で、ネームサーバー環境を構築しようと思います。
DNSは環境作ろうと思うたびに毎回調べているので、自分の備忘録の意味も合わせて。

インストール


素直に「yum」でインストールしました。
動作検証用途なので、「bind-chroot」は今回インストールしませんでした。

 # yum install bind

設定ファイルの作成


まずは「/etc/named.conf」を作成します。
方針は以下の通りです。

  • キャッシュサーバーは問い合わせ可能なネットワークを制限して有効にする

 (Courier Mail Server をインストールしたのと同じホストにしたので、
 作業上問い合わせできるようにしました。)

  • 各種動作ログを出力するようにする
  • 逆引きを有効にする


※表記は今回例示として「example.com」を使いました。

# vi /etc/named.conf
acl my-network {
    192.168.xxx.0/24;
    127.0.0.1;
};

options {
    directory "/var/named";
    pid-file  "/var/run/named/named.pid";
    version "DNS Server";
    recursion yes;
    allow-recursion { my-network; };
};

logging {
    channel "log_default" {
        file "/var/log/named/named.log" versions 7 size 10m;
        severity info;
        print-time yes;
        print-category yes;
    };

    channel "log_security" {
        file "/var/log/named/named_security.log" versions 7 size 10m;
        severity info;
        print-time yes;
        print-category yes;
    };

    channel "log_queries" {
        file "/var/log/named/named_queries.log" versions 7 size 10m;
        severity info;
        print-time yes;
        print-category yes;
    };

    category default { "log_default"; };

    category security { "log_security"; };

    category client { "log_security"; };

    category queries { "log_queries"; };
};

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

zone "localhost" {
    type master;
    file "local.zone";
};

zone "0.0.127.in-addr.arpa" {
    type master;
    file "local.rev";
};

zone "example.com" {
    type master;
    file "example.zone";
};

zone "xxx.168.192.in-addr.arpa" {
    type master;
    file "example.rev";
};


次にゾーンファイルを用意していきます。

  • 「named.ca」
# cd /var/named/
# wget ftp://ftp.rs.internic.net/domain/named.root
# mv named.root named.ca
# chown named:named named.ca
  • 「local.zone」
# vi /var/named/local.zone
@ IN SOA localhost. root.localhost. (
    2011032001 ; Serial
    28800      ; Refresh
    14400      ; Retry
    604800     ; Expire
    86400      ; TTL
)

        IN    NS    localhost.
        IN    A     127.0.0.1

# chown named:named /var/named/local.zone
  • 「local.rev」
# vi /var/named/local.rev 
$TTL 86400
@ IN SOA localhost. root.localhost. (
    2011032001 ; Serial
    28800      ; Refresh
    14400      ; Retry
    604800     ; Expire
    86400      ; TTL
)

        IN    NS    localhost.
1       IN    PTR   localhost.

# chown named:named /var/named/local.rev
  • 「example.zone」
# vi /var/named/example.zone
$TTL 86400
@ IN SOA courier.example.com. nsroot.example.com. (
    2011032001 ; serial
    3600       ; refresh 1  hour
    900        ; retry   15 min
    604800     ; expire  1  week
    86400      ; min     24 hour
)

           IN    NS    courier.example.com.
           IN    MX 10 courier.example.com.
courier    IN    A     192.168.xxx.xxx

# chown named:named /var/named/example.zone
  • 「example.rev」
# vi /var/named/example.rev
$TTL 86400
@ IN SOA courier.example.com. nsroot.example.com. (
    2011032001 ; Serial
    3600       ; Refresh
    900        ; Retry
    604800     ; Expire
    3600       ; Minimum
)
         IN    NS    courier.example.com.
xxx      IN    PTR   courier.example.com.

# chown named:named /var/named/example.rev


最後に、ログファイル格納先を作成します。

# mkdir -p /var/log/named
# chown named:named /var/log/named


「Courier Mail Server」 からMXレコードを引けるようにする為に、
「/etc/resolv.conf」を変更します。

# vi /etc/resolv.conf
nameserver 127.0.0.1

起動と簡易動作確認

起動は「/etc/init.d」配下のスクリプトを実行します。

# /etc/init.d/named start
named を起動中:                                            [  OK  ]


digコマンドの結果を確認して名前解決できればOKとします。

# dig @127.0.0.1 courier.example.com

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_5.3 <<>> @127.0.0.1 courier.example.com
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43133
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;courier.example.com.		IN	A

;; ANSWER SECTION:
courier.example.com.	86400	IN	A	192.168.xxx.xxx

;; AUTHORITY SECTION:
example.com.		86400	IN	NS	courier.example.com.

;; Query time: 4 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Apr  6 00:01:30 2011
;; MSG SIZE  rcvd: 68

# dig @127.0.0.1 courier.example.com mx

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_5.3 <<>> @127.0.0.1 courier.example.com mx
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35214
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;courier.example.com.		IN	MX

;; AUTHORITY SECTION:
example.com.		86400	IN	SOA	courier.example.com. nsroot.example.com. 2011032001 3600 900 604800 86400

;; Query time: 5 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Apr  6 00:01:41 2011
;; MSG SIZE  rcvd: 81


今日はこんなところで。