DNS サーバーの設定



##############################################################################
●DNS サーバーの設定

固定IPが割り当てられていて、ドメインのDNSサーバー立てる場合の設定です。

固定IPが1個の場合はプロバイダのDNSに登録してもらうか、VALUE-DOMAINのような
ドメインを管理できるサーバーに登録(移管)すると良いでしょう。

この説明は以下の条件の場合の設定です

ドメイン名       : henoheno.com

割り当てIPアドレス数  : 8個
ネットワークアドレス  : 111.222.123.232
ネットマスク      : 255.255.255.248

ルーターアドレス    : 111.222.123.233

DNSサーバー名    : dns
DNSサーバーアドレス : 111.222.123.234

セカンダリDNSサーバー: dns-sub.dokokano.net (大抵はプロバイダが用意している)
セカンダリDNSアドレス: 123.223.233.123

メールサーバー名   : server1
メールサーバーアドレス: 111.222.123.235

その他のサーバー   : server2
サーバーアドレス   : 111.222.123.236


1) bind-9 がインストールされていることを確認

[root@localhost ~]# rpm -qa | grep bind
PackageKit-device-rebind-0.5.8-21.el6.i686
ypbind-1.20.4-30.el6.i686
samba-winbind-clients-3.6.9-151.el6.i686
rpcbind-0.2.0-11.el6.i686
bind-9.8.2-0.17.rc1.el6_4.5.i686        <--- インストール済み
bind-libs-9.8.2-0.17.rc1.el6_4.5.i686
bind-utils-9.8.2-0.17.rc1.el6_4.5.i686
samba-winbind-3.6.9-151.el6.i686


2) /etc/named.conf の編集

options {
    //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";
    //allow-query     { localhost; };
    //recursion yes;

    dnssec-enable       no;     <-- validating のエラーメッセージが
    dnssec-validation   no;     <-- 大量に出るためDNSSECを無効にする

    version         "my DNS server 1.00";   <-- ダミー表示用のバージョン

    //dnssec-enable yes;        <--コメントアウト
    //dnssec-validation yes;    <--コメントアウト
    //dnssec-lookaside auto;    <--コメントアウト

    /* Path to ISC DLV key */
    //bindkeys-file "/etc/named.iscdlv.key";        <--コメントアウト

    //managed-keys-directory "/var/named/dynamic";  <--コメントアウト

    allow-transfer {            <---追加
        111.222.123.232/29;     <---追加
        123.223.233.123/32;     <---追加(スレーブDNSサーバー)
    };                          <---追加
};

//
// a caching only nameserver config
//

//logging {
//  channel default_debug {
//      file "data/named.run";
//      severity dynamic;
//  };
//  category lame-servers { null; };
//};

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

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

// ゾーン指定(以下)を追加
// 正引きのゾーンファイル
zone "henoheno.com" IN {
        type master;
        file "henoheno.zone";
        allow-update { localhost; };
};

// 逆引きのゾーンファイル
zone "232.123.222.111.in-addr.arpa" IN {
        type master;
        file "henoheno.rev";
        allow-update { localhost; };
};


3) ゾーンファイルの作成
 /var/named の下に以下のファイルを作成
    henoheno.zone   //henoheno.com の正引き用ゾーンファイル

henoheno.zone の内容
[root@localhost ~]# cat /var/named/henoheno.zone

---ここから---------------------------------------------------------------------
$TTL    86400   ; 24 hour

@       IN      SOA     dns.henoheno.com. root.dns.henoheno.com.  (
                                2013101701 ; Serial
                                10800      ; Refresh after 3 hours
                                3600       ; Retry after 1 hour
                                604800     ; Expire after 1 week
                                86400 )    ; Minimum TTL of 24 hour
; Name Servers
        IN      NS      dns.henoheno.com.
        IN      NS      dns-sub.dokokano.net.

; Hosts
dns         IN   A      111.222.123.234
server1     IN   A      111.222.123.235
server2     IN   A      111.222.123.236

www         IN   CNAME  dns
mail        IN   CNAME  server1

@           IN   MX 0   server1     //メールとDNSサーバーが同じなら server1 は dns となる

; end of file

---ここまで---------------------------------------------------------------------

henoheno.rev の内容
[root@localhost ~]# cat /var/named/henoheno.rev

---ここから---------------------------------------------------------------------
$TTL    86400

@       IN      SOA     dns.henoheno.com. root.dns.henoheno.com.  (
                                2013101701 ; Serial
                                10800      ; Refresh after 3 hours
                                3600       ; Retry after 1 hour
                                604800     ; Expire after 1 week
                                86400 )    ; Minimum TTL of 24 hour
; Name Servers
        IN      NS      dns.henoheno.com.
        IN      NS      dns-sub.dokokano.net.

; Hosts
234     IN      PTR     dns.henoheno.com.
235     IN      PTR     server1.henoheno.com.
236     IN      PTR     server2.henoheno.com.
; end of file

---ここまで---------------------------------------------------------------------

4) 設定ファイルとゾーンファイルのチェック

[root@dns ~]# named-checkconf       <--- named.conf のチェック
[root@dns ~]#                       <--- 何も表示されなければOK
[root@dns ~]# cd /var/named     <--- 以下はゾーンファイルののチェック

[root@dns named]# named-checkzone henoheno.com henoheno.zone
zone henoheno.com/IN: loaded serial 2013101701
OK
[root@dns1 named]# named-checkzone 232.123.222.111.in-addr.arpa henoheno.rev
zone 232.123.222.111.in-addr.arpa/IN: loaded serial 2013101701
OK


5) IPv6の設定は行っていない(IPv4のみを使用する)のでIPv4のみを有効にする

[root@localhost ~]# vi /etc/sysconfig/named

OPTIONS=-4          <--- この行を追加

[root@localhost ~]# cat /etc/sysconfig/named
# BIND named process options
# ~~~~~~~~~~~~~~~~~~~~~~~~~~
# Currently, you can use the following options:
#
# ROOTDIR="/var/named/chroot"  --  will run named in a chroot environment.
#                            you must set up the chroot environment
#                            (install the bind-chroot package) before
#                            doing this.
#       NOTE:
#         Those directories are automatically mounted to chroot if they are
#         empty in the ROOTDIR directory. It will simplify maintenance of your
#         chroot environment.
#          - /var/named
#          - /etc/pki/dnssec-keys
#          - /etc/named
#          - /usr/lib64/bind or /usr/lib/bind (architecture dependent)
#
#         Those files are mounted as well if target file doesn't exist in
#         chroot.
#          - /etc/named.conf
#          - /etc/rndc.conf
#          - /etc/rndc.key
#          - /etc/named.rfc1912.zones
#          - /etc/named.dnssec.keys
#          - /etc/named.iscdlv.key
#
#       Don't forget to add "$AddUnixListenSocket /var/named/chroot/dev/log"
#       line to your /etc/rsyslog.conf file. Otherwise your logging becomes
#       broken when rsyslogd daemon is restarted (due update, for example).
#
# OPTIONS="whatever"     --  These additional options will be passed to named
#                            at startup. Don't add -t here, use ROOTDIR instead.
#
# KEYTAB_FILE="/dir/file"    --  Specify named service keytab file (for GSS-TSIG)
#
# DISABLE_ZONE_CHECKING  -- By default, initscript calls named-checkzone
#                           utility for every zone to ensure all zones are
#                           valid before named starts. If you set this option
#                           to 'yes' then initscript doesn't perform those
#                           checks.
OPTIONS=-4


6) ゾーンファイルの所有者を named に変更する

[root@localhost ~]# chown named:named /var/named/henoheno.zone
[root@localhost ~]# chown named:named /var/named/henoheno.rev


7) BOOT 時にDNSサーバーデーモンを起動するように設定

chkconfig named on



戻る