>> HOME >> FC5 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 
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
core                                                                 [1/3]
core                      100% |=========================| 1.1 kB    00:00
updates                                                              [2/3]
updates                   100% |=========================|  951 B    00:00
extras                                                               [3/3]
extras                    100% |=========================| 1.1 kB    00:00
Reading repository metadata in from local files
Parsing package install arguments
Nothing to do

[root@linux ~]# yum -y install caching-nameserver 
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
core                                                                 [1/3]
updates                                                              [2/3]
extras                                                               [3/3]
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-5. 100% |=========================| 7.4 kB    00:00
---> Package caching-nameserver.noarch 0:7.3-5.FC5 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 caching-nameserver      noarch     7.3-5.FC5        core               23 k

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

Installed: caching-nameserver.noarch 0:7.3-5.FC5
Complete!
2. DNS サーバーの設定
1 ) BIND 設定ファイル /etc/named.conf の編集
[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 
--02:30:09--  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

02:30:10 (390.41 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:\>