>> HOME >> CentOS 4 MENU >> DNSサーバー (bind)
DNS サーバーは、ドメイン名から IP アドレスを返したり、IP アドレスからドメイン名を返したり、名前解決を行います。
ローカルネットワーク内では、サーバーに接続するのに、IP で接続するのは色々と不都合があります。そこで、ローカルネットワーク内で、www.mountainbigroad.jp、あるいは、mountainbigroad.jp といった名前で接続できるように、 DNS サーバーを立てます。

1. DNS サーバーインストール
1 ) BIND インストール
2. DNS サーバーの設定
1 ) BIND 設定ファイル /etc/named.conf の編集
3. ゾーンデータベースの作成
1 ) 正引き(ドメイン名 → IP アドレス)ゾーンデータベースの作成
2 ) 逆引き(IP アドレス → ドメイン名)ゾーンデータベースの作成
4. ルートDNS情報の設定
1 ) ルートDNS情報の取得
5. ネットワークファイル関連の確認
1 ) 名前解決ファイル /etc/hosts の編集・確認
2 ) DNS参照順序ファイル /etc/resolv.conf の編集・確認
6. DNS サーバーの起動
1 ) BIND の起動
2 ) BIND の自動起動設定
7. DNS サーバーの動作確認
1. DNS サーバーインストール
1 ) BIND インストール
[root@linux ~]# yum -y install bind 
Repository dag is listed more than once in the configuration
Setting up Install Process
Setting up repositories
dries                     100% |=========================| 791 kB    00:02
dag                       100% |=========================| 1.1 kB    00:00
update                    100% |=========================|  951 B    00:00
base                      100% |=========================| 1.1 kB    00:00
addons                    100% |=========================|  951 B    00:00
extras                    100% |=========================| 1.1 kB    00:00
Reading repository metadata in from local files
primary.xml.gz            100% |=========================| 1.6 MB    00:07
dag       : ################################################## 4521/4521
Added 13 new packages, deleted 0 old in 11.54 seconds
primary.xml.gz            100% |=========================|  75 kB    00:00
update    : ################################################## 195/195
Added 0 new packages, deleted 2 old in 0.76 seconds
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for bind to pack into transaction set.
bind-9.2.4-2.i386.rpm     100% |=========================|  33 kB    00:00
---> Package bind.i386 20:9.2.4-2 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 bind                    i386       20:9.2.4-2       base              462 k

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 462 k
Downloading Packages:
(1/1): bind-9.2.4-2.i386. 100% |=========================| 462 kB    00:01
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: bind                         ######################### [1/1]

Installed: bind.i386 20:9.2.4-2
Complete!

[root@linux ~]# yum -y install caching-nameserver 
Repository dag is listed more than once in the configuration
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for caching-nameserver to pack into transaction set.
caching-nameserver-7.3-3. 100% |=========================| 6.8 kB    00:00
---> Package caching-nameserver.noarch 0:7.3-3 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 caching-nameserver      noarch     7.3-3            base               22 k

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 22 k
Downloading Packages:
(1/1): caching-nameserver 100% |=========================|  22 kB    00:00
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: caching-nameserver                                     [1/1]
warning: /etc/named.conf saved as /etc/named.conf.rpmorig
  Installing: caching-nameserver           ######################### [1/1]

Installed: caching-nameserver.noarch 0:7.3-3
Complete!
2. DNS サーバーの設定
1 ) BIND 設定ファイル /etc/named.conf の編集
/etc/named.conf が存在しない場合は、以下を参考に作成してください。( CentOS 5.0 導入時は存在しなかった )
[root@linux ~]# vi /etc/named.conf 

//
// named.conf for Red Hat caching-nameserver
//

options {
	directory "/var/named";
	dump-file "/var/named/data/cache_dump.db";
	statistics-file "/var/named/data/named_stats.txt";
	// DNSサーバーのバージョン情報を隠蔽
	version "unknown";
	/*
	* If there is a firewall between you and nameservers you want
	* to talk to, you might need to uncomment the query-source
	* directive below.  Previous versions of BIND always asked
	* questions using port 53, but BIND 8.1 uses an unprivileged
	* port by default.
	*/
	// query-source address * port 53;
	// 通常の問い合わせを許可するホストを指定
	// ここでは、内部のみ
	allow-query{
		127.0.0.1;
		192.168.1.1/24;
	};
	// キャッシュ制限
	// ここでは、内部のみ
	allow-recursion{
		127.0.0.1;
		192.168.1.1/24;
	};
	// ゾーン情報転送先制限
	// ここでは、内部のみ
	allow-transfer{
		127.0.0.1;
		192.168.1.1/24;
	};
	// 内部DNSサーバで見つからない場合の問合せ先
	// ここでは、ルータのIPアドレス
	forwarders{
		192.168.1.1;
	};
};

//
// a caching only nameserver config
//
controls {
	inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};

// Log 出力制限
logging {
	category lame-servers { null; };
};

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

zone "localhost" IN {
	type master;
	file "localhost.zone";
	allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
	type master;
	file "named.local";
	allow-update { none; };
};

zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
	type master;
	file "named.ip6.local";
	allow-update { none; };
};

zone "255.in-addr.arpa" IN {
	type master;
	file "named.broadcast";
	allow-update { none; };
};

zone "0.in-addr.arpa" IN {
	type master;
	file "named.zero";
	allow-update { none; };
};

include "/etc/rndc.key";

// 正引きゾーン設定
zone "mountainbigroad.jp" IN {
	type master;
	file "mountainbigroad.jp.db";
};
// 逆引きゾーン設定
zone "1.168.192.in-addr.arpa" IN {
	type master;
	file "1.168.192.in-addr.arpa.db";
};
3. ゾーンデータベースの作成
1 ) 正引き(ドメイン名 → IP アドレス)ゾーンデータベースの作成
[root@linux ~]# vi /var/named/mountainbigroad.jp.db 

$TTL    86400
@   IN  SOA mountainbigroad.jp. root.mountainbigroad.jp.(
                        2006070100 ; Serial
                        28800      ; Refresh
                        14400      ; Retry
                        3600000    ; Expire
                        86400 )    ; Minimum
    IN  NS      mountainbigroad.jp.
    IN  MX  10  mountainbigroad.jp.
    IN  A       192.168.1.11
www IN  CNAME   mountainbigroad.jp.
SOA レコードは、DNS サーバーのホスト名と、管理者のメールアドレス
  Serial : シリアル番号。何らかの変更を加えたら、必ず変更します。
  Refresh : スレーブサーバーがデータを更新する時間間隔(単位:秒)
  Retry : スレーブサーバーがデータを更新できなかった場合に、再要求するまでの時間間隔(単位:秒)
  Expire : スレーブサーバーがデータを更新できなかった場合に、そのデータが無効になるまでの時間間隔(単位:秒)
  TTL : データの寿命。一旦キャッシュされた DNS 情報は最低この時間保持される。逆に、この時間変更できない。
NS レコードはゾーンを管理する DNSサーバを指定します。
MX レコードはメールの配信先を指定します(メールサーバ構築時に必要となります)。
CNAME レコードは別名でアクセスする場合に指定します。
A レコードはホスト名に対応した IPアドレスを指定します。
※ ホスト名が空白の場合は SOAレコードの@を引き継ぎます。即ち、ゾーン名:mountainbigroad.jp になります。
2 ) 逆引き(IP アドレス → ドメイン名)ゾーンデータベースの作成
[root@linux ~]# vi /var/named/1.168.192.in-addr.arpa.db 

$TTL    86400
@   IN  SOA mountainbigroad.jp. root.mountainbigroad.jp.(
                        2006070100 ; Serial
                        28800      ; Refresh
                        14400      ; Retry
                        3600000    ; Expire
                        86400 )    ; Minimum
    IN  NS      mountainbigroad.jp.
    IN  MX  10  mountainbigroad.jp.
11  IN  PTR     mountainbigroad.jp.
SOA レコードは、DNS サーバーのホスト名と、管理者のメールアドレス
  Serial : シリアル番号。何らかの変更を加えたら、必ず変更します。
  Refresh : スレーブサーバーがデータを更新する時間間隔(単位:秒)
  Retry : スレーブサーバーがデータを更新できなかった場合に、再要求するまでの時間間隔(単位:秒)
  Expire : スレーブサーバーがデータを更新できなかった場合に、そのデータが無効になるまでの時間間隔(単位:秒)
  TTL : データの寿命。一旦キャッシュされた DNS 情報は最低この時間保持される。逆に、この時間変更できない。
NS レコードはゾーンを管理する DNSサーバを指定します。
MX レコードはメールの配信先を指定します(メールサーバ構築時に必要となります)。
PTR レコードはIPアドレスからホスト名に変換する為のレコードです。
※ アドレスには、IPアドレスの第4オクテッドのみ指定します。
4. ルートDNS情報の設定
1 ) ルートDNS情報の取得
[root@linux ~]# wget ftp://ftp.nic.ad.jp/internet/rs.internic.net/domain/named.root 
--21:15:55--  ftp://ftp.nic.ad.jp/internet/rs.internic.net/domain/named.root
           => `named.root'
ftp.nic.ad.jp をDNSに問いあわせています... 202.12.30.115
ftp.nic.ad.jp|202.12.30.115|:21 に接続しています... 接続しました。
anonymous としてログインしています... ログインしました!
==> SYST ... 完了しました。    ==> PWD ... 完了しました。
==> TYPE I ... 完了しました。  ==> CWD /internet/rs.internic.net/domain ... 完了しました。
==> PASV ... 完了しました。    ==> RETR named.root ... 完了しました。
長さ: 2,517 (2.5K) (確証はありません)

100%[============================================================================>] 2,517         --.--K/s

21:15:56 (267.82 KB/s) - `named.root' を保存しました [2517]

[root@linux ~]# mv named.root /var/named/named.ca 
mv: `/var/named/named.ca' を上書きしてもよろしいですか(yes/no)? y 
5. ネットワークファイル関連の確認
1 ) 名前解決ファイル /etc/hosts の編集・確認
ループバックアドレス「127.0.0.1」以外を全て削除します。
また、「127.0.0.1」には「localhost.localdomain localhost」だけを定義します。
[root@linux ~]# vi /etc/hosts 

# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1        linux.mountainbigroad.jp linux localhost.localdomain localhost
#192.168.1.3       Client1
#192.168.1.4       Client2
2 ) DNS参照順序ファイル /etc/resolv.conf の編集・確認
「nameserver」には名前解決するサーバを指定します(=自サーバ)。
[root@linux ~]# vi /etc/resolv.conf 

# 自サーバーのIPに変更
nameserver 192.168.1.11
6. DNS サーバーの起動
1 ) BIND の起動
[root@linux ~]# service named start 
namedを起動中:                                             [  OK  ]
2 ) BIND の自動起動設定
[root@linux ~]# chkconfig named on 
[root@linux ~]# chkconfig --list named 
named           0:off   1:off   2:on    3:on    4:on    5:on    6:off
7. DNS サーバーの動作確認
Windowsクライアントのコマンド プロンプトから実施します。
Windows機の『ネットワーク』のプロパティより『インターネットプロトコル(TCP/IP)のプロパティ』内にある『次のDNSサーバーのアドレスを使う(E)』より、『優先DNSサーバー(P)』の値を自サーバIPアドレスにしてから行います。
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\> nslookup 
Default Server:  mountainbigroad.jp
Address:  192.168.1.11

# 正引き試験
> mountainbigroad.jp 
Server:  mountainbigroad.jp
Address:  192.168.1.11

Name:    mountainbigroad.jp
Address:  192.168.1.11

# 逆引き試験
> 192.168.1.11 
Server:  mountainbigroad.jp
Address:  192.168.1.11

Name:    mountainbigroad.jp
Address:  192.168.1.11

# 別名試験
> www.mountainbigroad.jp 
Server:  mountainbigroad.jp
Address:  192.168.1.11

Name:    mountainbigroad.jp
Address:  192.168.1.11
Aliases:  www.mountainbigroad.jp

# MXレコード試験
> set type=mx 
> mountainbigroad.jp 
Server:  mountainbigroad.jp
Address:  192.168.1.11

mountainbigroad.jp   MX preference = 10, mail exchanger = mountainbigroad.jp
mountainbigroad.jp   nameserver = mountainbigroad.jp
mountainbigroad.jp   internet address = 192.168.1.11

> exit 

C:\>