はじめての自宅サーバ構築 - Fedora/CentOS - Last Update 2008/07/25
It opened to 2004/09/19.
当サイトはFedora9で運用しています
Visitors
Pageviews
Today(IP/PV)
3,374,115
12,762,060
1,273/8,682
動作確認 [ FC1 / FC2 / FC3 / FC4 / FC5 / FC6 / Fedora7 / Fedora8 / Fedora9 / CentOS4 / CentOS5 ]
  1. DNSサーバとは・・・
  2. bindのインストール
  3. bindの設定(マスタサーバとして動作する様に設定)
    構築の前に・・・
    正引きゾーン名とは・・・
    逆引きゾーン名とは・・・
  4. 設定ファイルにゾーン追加
    bind設定ファイル「named.conf」の場合
    caching-nameserver設定ファイル「named.caching-nameserver.conf」の場合
    bind設定ファイルとcaching-nameserver設定ファイルについて
  5. ゾーンファイルの作成
    内向き正引きゾーンの作成
    内向き逆引きゾーンの作成
    外向き正引きゾーンの作成
    外向き逆引きゾーンの作成
  6. ルートDNS情報の設定
  7. DNS動作前のネットワークファイル関連の確認
    名前解決ファイル『hosts』の変更
    DNS参照設定ファイル『resolv.conf』の変更
    順序設定ファイルの変更
  8. bindの起動
  9. bindの動作確認
    内向き名前解決の確認
    外向き名前解決の確認
  10. bindの自動起動
  11. bindをchrootへ移行
    chrootを適用していない状態のbind関連情報
    bind-chrootのインストール
    chrootを適用した状態のbind関連情報
  12. 公開前の準備

■ DNSサーバとは・・・

DNS(Domain Name Server)はインターネットに接続するときにIPアドレス(xxx.xxx.xxx.xxx)を、kajuhome.comの様に人間に分かりやすくアドレスを変換してくれるサーバです。

■ bindのインストール

ネームサーバ(bind)のインストール
# yum -y install bind


キャッシングサーバのインストール (※:Fedora8 / Fedora9 にはありません)
# yum -y install caching-nameserver

■ bindの設定(マスタサーバとして動作する様に設定)

■ 構築の前に・・・


bindはホスト名とIPアドレスの対照表をゾーンという単位で管理しています。
マスタサーバとして設定を行なうには、まずゾーン名を決める必要があります。
また、このゾーンには正引きゾーンと逆引きゾーンがあります。

■ 正引きゾーン名とは・・・

正引きはドメイン名をIPアドレスに変換します。
正引きゾーンファイル名はドメインのkajuhome.comが正引きゾーン名となります

■ 逆引きゾーン名とは・・・

逆引きゾーンはIPアドレスをドメイン名に変換を行ないます。
使用するIPアドレスのネットワークアドレス部分から作成し、ネットワークアドレスを逆から作成しその値+.in-adde.arpaとします。
言葉だと分かりにくいので当サイトの逆引きゾーン名を例とすると、
逆引きゾーン名は1.168.192.in-addr.arpaになります

■ 設定ファイルにゾーン追加

■ bind設定ファイル「named.conf」の場合

# vi /etc/named.conf
// generated by named-bootconf.pl

options {
        directory "/var/named";
        /*
         * 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;
        bindを使用する範囲を指定(以下を追加)
        allow-query{
                全てのIPに許可
                any;
        };
        スレーブDNSサーバを指定(通常は、コメントアウト)
        allow-transfer{
                xxx.xxx.xxx.xxx;
        };
        外部のネームサーバに問い合わせを転送する場合(通常はコメントアウト)
        複数ある場合は、以下の様に複数行で記述します。
        forwarders{
                yyy.yyy.yyy.yyy;
                zzz.zzz.zzz.zzz;
        };
};

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

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

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

include "/etc/rndc.key";

内向きVIEWの定義
view "internal" {
        自サーバおよび、自サーバが所属するネットーワークに許可
        match-clients { localhost; localnets; };
        キャッシュ有効
        recursion yes;
        最終行にゾーン指定(以下)を追加
        // 正引きゾーン(kajuhome.com)の指定
        zone "kajuhome.com" {
                type master;
                file "kajuhome.com.lan";       <--- ファイル名に注視
                allow-update { none; };
        };
        // 逆引きゾーン(192.168.1.0/24)の指定
        zone "1.168.192.in-addr.arpa" {
                type master;
                file "1.168.192.in-addr.arpa.db";
                allow-update { none; };
        };
};

外向きVIEWの定義
view "external" {
        上記(内向き問い合わせにマッチしなかったIP全て)
        match-clients { any; };
        キャッシュ無効
        recursion no;
        最終行にゾーン指定(以下)を追加
        // 正引きゾーン(kajuhome.com)の指定
        zone "kajuhome.com" {
                type master;
                file "kajuhome.com.wan";       <--- ファイル名に注視
                allow-update { none; };
        };
        // 逆引きゾーン(221.151.xxx.yyy)の指定
        zone "xxx.151.221.in-addr.arpa" {
                type master;
                file "xxx.151.221.in-addr.arpa.db";
                allow-update { none; };
        };
};
注意:bind のバージョンが 9.5 以降(Ver >= 9.5)
当ページの紹介例で言うと以下の部分が該当します。
zone "." IN {
    type hint;
    file "named.ca";
};

include "/etc/named.rfc1912.zones";
以下の様に view スコープ内に上記 zone 定義を移動します。
controls {
        inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};

include "/etc/rndc.key";

view 定義外の zone 参照を移動
view "internal" {
        match-clients { localhost; localnets; };
        recursion yes;

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

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

        zone "kajuhome.com" {
                type master;
                file "kajuhome.com.lan";
                allow-update { none; };
        };
        zone "1.168.192.in-addr.arpa" {
                type master;
                file "1.168.192.in-addr.arpa.db";
                allow-update { none; };
        };
};

view "external" {
        match-clients { any; };
        recursion no;

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

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

        zone "kajuhome.com" {
                type master;
                file "kajuhome.com.wan";
                allow-update { none; };
        };
        zone "xxx.151.221.in-addr.arpa" {
                type master;
                file "xxx.151.221.in-addr.arpa.db";
                allow-update { none; };
        };
};

■ caching-nameserver設定ファイル「named.caching-nameserver.conf」の場合

# vi /etc/named.caching-nameserver.conf
//
// named.caching-nameserver.conf
//
// Provided by Red Hat bind-config 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
// bind-config package upgrade.
//
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";
    query-source    port 53;
コメントにする(IPv6インタフェースでDNSサービスを有効する場合を除く)
//    query-source-v6 port 53;
    全てのIPに許可
    allow-query     { any; };
    外部のネームサーバに問い合わせを転送する場合(通常はコメントアウト)
    複数ある場合は、以下の様に複数行で記述します。
    forwarders{
            yyy.yyy.yyy.yyy;
            zzz.zzz.zzz.zzz;
    };
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

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

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

view localhost_resolver {
    match-clients      { localhost; };
    match-destinations { localhost; };
    recursion yes;
    サーバ自身も自ネットワークを参照できるように設定
    include "/etc/named.kajuhome.com.lan";       <--- ファイル名に注視
};

内向きのview定義(以下追加)
view internal {
    match-clients      { localnets; };
    match-destinations { localnets; };
    recursion yes;
    include "/etc/named.kajuhome.com.lan";       <--- ファイル名に注視
};

外向きのview定義(以下追加)
view external {
    match-clients      { any; };
    match-destinations { any; };
    recursion no;
    include "/etc/named.kajuhome.com.wan";       <--- ファイル名に注視
};

内向きのゾーンファイル定義ファイル情報設定(新規作成)
# vi /etc/named.kajuhome.com.lan
// 正引きゾーン(kajuhome.com)の指定
zone "kajuhome.com" IN {
        type master;
        file "kajuhome.com.lan";       <--- ファイル名に注視
        allow-update { none; };
};
// 逆引きゾーン(192.168.1.0/24)の指定
zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "1.168.192.in-addr.arpa.db";
        allow-update { none; };
};

外向きのゾーンファイル定義ファイル情報設定(新規作成)
# vi /etc/named.kajuhome.com.wan
// 正引きゾーン(kajuhome.com)の指定
zone "kajuhome.com" IN {
        type master;
        file "kajuhome.com.wan";       <--- ファイル名に注視
        allow-update { none; };
};
// 逆引きゾーン(221.151.xxx.yyy)の指定
zone "xxx.151.221.in-addr.arpa" IN {
        type master;
        file "xxx.151.221.in-addr.arpa.db";
        allow-update { none; };
};

■ bind設定ファイルとcaching-nameserver設定ファイルについて

bind設定ファイルで動作している場合
Nov 17 09:08:27 fedora named[3756]: starting BIND 9.3.3rc3 -u named
Nov 17 09:08:27 fedora named[3756]: found 2 CPUs, using 2 worker threads
Nov 17 09:08:27 fedora named[3756]: loading configuration from '/etc/named.conf'


caching-nameserver設定ファイルで動作している場合
Nov 17 08:38:21 fedora named[3667]: starting BIND 9.3.3rc3 -u named -c /etc/named.caching-nameserver.conf
Nov 17 08:38:21 fedora named[3667]: found 2 CPUs, using 2 worker threads
Nov 17 08:38:21 fedora named[3667]: loading configuration from '/etc/named.caching-nameserver.conf'

■ ゾーンファイルの作成

■ 内向き正引きゾーンの作成

内向き正引きゾーンファイル(kajuhome.com.lan)の作成
# vi /var/named/kajuhome.com.lan
$TTL    86400
@       IN      SOA     kajuhome.com. root.kajuhome.com.(
                        2007031400      ; serial
                        3600            ; refresh (1 hour)
                        900             ; retry (15 minutes)
                        604800          ; expire (1 week)
                        86400           ; negative (1 day)
)
        IN      NS              kajuhome.com.
        IN      MX      10      kajuhome.com.
        IN      A               192.168.1.5
client1 IN      A               192.168.1.10
client2 IN      A               192.168.1.20
fedora IN      CNAME           kajuhome.com.
www   IN      CNAME           kajuhome.com.
NSレコードはゾーンを管理するDNSサーバを指定します。
MXレコードはメールの配信先を指定します。(メールサーバの構築で必要となります。)
CNAMEレコードは別名でアクセスする場合に指定します。
Aレコードがホスト名に対応したIPアドレスを設定しています。

■ 内向き逆引きゾーンの作成

内向き逆引きゾーンファイル(1.168.192.in-addr.arpa.db)の作成
# vi /var/named/1.168.192.in-addr.arpa.db
$TTL    86400
@       IN      SOA     kajuhome.com. root.kajuhome.com.(
                        2007031400      ; serial
                        3600            ; refresh (1 hour)
                        900             ; retry (15 minutes)
                        604800          ; expire (1 week)
                        86400           ; negative (1 day)
)
        IN      NS              kajuhome.com.
5       IN      PTR             kajuhome.com.
10      IN      PTR             client1.kajuhome.com.
20      IN      PTR             client2.kajuhome.com.
NSレコードは、正引きゾーンファイルで説明しましたので割愛します。
PTRレコードがIPアドレスからホスト名に変換する為のレコードです。

■ 外向き正引きゾーンの作成

正引きゾーンファイル(kajuhome.com.wan)の作成
# vi /var/named/kajuhome.com.wan
$TTL    86400
@       IN      SOA     kajuhome.com. root.kajuhome.com.(
                        2007031400      ; serial
                        3600            ; refresh (1 hour)
                        900             ; retry (15 minutes)
                        604800          ; expire (1 week)
                        86400           ; negative (1 day)
)
        IN      NS              kajuhome.com.
        IN      MX      10      kajuhome.com.
        IN      A               221.151.xxx.yyy
fedora IN      CNAME           kajuhome.com.
www   IN      CNAME           kajuhome.com.
外向きのゾーンファイルには「CNAME」を定義していないので、問い合わせにできる名前は『kajuhome.com』だけとなります。

■ 外向き逆引きゾーンの作成

逆引きゾーンファイル(xxx.151.221.in-addr.arpa.db)の作成
# vi /var/named/xxx.151.221.in-addr.arpa.db
$TTL    86400
@       IN      SOA     kajuhome.com. root.kajuhome.com.(
                        2007031400      ; serial
                        3600            ; refresh (1 hour)
                        900             ; retry (15 minutes)
                        604800          ; expire (1 week)
                        86400           ; negative (1 day)
)
        IN      NS              kajuhome.com.
yyy   IN      PTR             kajuhome.com.

■ ルートDNS情報の設定

ルートDNS情報を取得
# wget ftp://ftp.nic.ad.jp/internet/rs.internic.net/domain/named.root
--17:15:43--  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 (確証はありません)

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

17:15:43 (1.22 MB/s) - `named.root' を保存しました [2517]

取得したDNS情報を移動
# mv named.root /var/named/named.ca
mv: `/var/named/named.ca' を上書きしてもよろしいですか(yes/no)? y

■ DNS動作前のネットワークファイル関連の確認

■ 名前解決ファイル『hosts』の変更

ホストファイルの確認
# vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
#192.168.1.5             fedora.kajuhome.com fedora
#192.168.1.10            client

■ DNS参照設定ファイル『resolv.conf』の変更

DNSサーバ指定ファイルの確認
# vi /etc/resolv.conf
search kajuhome.com
nameserver 192.168.1.5

■ 順序設定ファイルの変更

名前解決をする順番を hostsファイル→dnsの順に名前解決します。(以外は除外。)
ネームサービススイッチの設定ファイルの設定
# vi /etc/nsswitch.conf
#hosts: db files nisplus nis dns
          ↓
hosts: files dns
名前解決を行う方法とその利用順序を記述するファイルの確認
# vi /etc/host.conf
order hosts,bind

■ bindの起動

bindサービスを起動する
# /etc/rc.d/init.d/named start
named を起動中:                                            [  OK  ]

■ bindの動作確認

■ 内向き名前解決の確認

  1. 『インターネットプロトコル(TCP/IP)』を選択
  2. 『プロパティ』ボタン押下
  3. 下記へ遷移
  1. 『次のDNSサーバーのアドレスを使う(E)』をチェック
  2. 『優先DNSサーバー(P)』に自サーバのローカルIPアドレスを設定
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

nslookupの起動
C:\Documents and Settings\fedora>nslookup
Default Server:  kajuhome.com
Address:  192.168.1.5

正引き試験
> kajuhome.com
Server:  kajuhome.com
Address:  192.168.1.5

Name:    kajuhome.com
Address:  192.168.1.5                    ← ローカルIPアドレスが返ってきた

正引き試験(CNAME)
> www.kajuhome.com
Server:  kajuhome.com
Address:  192.168.1.5

Name:    kajuhome.com
Address:  192.168.1.5                    ← ローカルIPアドレスが返ってきた
Aliases:  www.kajuhome.com               ← 別名(CNAME)で解決されている

正引き試験(ショート名)
> client1
Server:  kajuhome.com
Address:  192.168.1.5

Name:    client1.kajuhome.com
Address:  192.168.1.10                    ← ローカルIPアドレスが返ってきた


逆引き試験
> 192.168.1.5
Server:  kajuhome.com
Address:  192.168.1.5

Name:    kajuhome.com          ← ホスト名が返ってきた
Address:  192.168.1.5

逆引き試験
> 192.168.1.20
Server:  kajuhome.com
Address:  192.168.1.5

Name:    client2.kajuhome.com          ← ホスト名が返ってきた
Address:  192.168.1.20

nslookupを終了
> exit

DOSを終了
C:\Documents and Settings\fedora>exit

■ 外向き名前解決の確認

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

nslookupの起動
C:\Documents and Settings\fedora>nslookup
Default Server:  UnKnown
Address:  172.16.12.251

問い合わせるDNSサーバを指定(自サーバのグローバルIPを指定する)
自サーバのグローバルIPアドレスを調べるのに問い合わせるDNSサーバへ自サーバのグローバルIPアドレスを入力するのは不自然ですが、
bindの動作検証を行うのが目的ですのでご了承ください。
> server 221.151.xxx.yyy
Default Server:  [221.151.xxx.yyy]
Address:  221.151.xxx.yyy

正引き試験
> kajuhome.com
Server:  [221.151.xxx.yyy]
Address:  221.151.xxx.yyy

Non-authoritative answer:
Name:    kajuhome.com
Address:  221.151.xxx.yyy         ← グローバルIPアドレスが返ってきた

正引き試験(CNAME)
> www.kajuhome.com
Server:  [221.151.xxx.yyy]
Address:  221.151.xxx.yyy

*** UnKnown can't find www.kajuhome.com: Non-existent domain        ← 外向けゾーンには定義していない為、見つからないと返却された。
また、内向きゾーンファイルも参照していない事も分かる。

正引き試験(試しに内部クライアントを問い合わせてみる)
> client1.kajuhome.com
Server:  [221.151.xxx.yyy]
Address:  221.151.xxx.yyy

*** UnKnown can't find client1.kajuhome.com: Non-existent domain外向けゾーンには定義していない為、見つからないと返却された。
また、内向きゾーンファイルも参照していない事も分かる。

逆引き試験
> 221.151.xxx.yyy
Server:  [221.151.xxx.yyy]
Address:  221.151.xxx.yyy

Name:    kajuhome.com          ← ホスト名が返ってきた
Address:  221.151.xxx.yyy

nslookupを終了
> exit

DOSを終了
C:\Documents and Settings\fedora>exit

■ bindの自動起動

OSの再起動を行なった時にbind(DNSサーバ)を自動的に起動するように設定する
起動時にbindを起動する
# chkconfig named on
設定内容を確認
# chkconfig --list named
named           0:オフ  1:オフ  2:オン  3:オン  4:オン  5:オン  6:オフ

■ bindをchrootへ移行

chrootとは、bind(named)プロセス等がchrootパスを「/」ルートと認識させ、万一乗っ取られた場合にそのパス以上にアクセスさせない為の機構です。
【設定ファイル】
    「/etc/named.conf」→「/var/named/chroot/etc/named.conf」
    「/etc/named.caching-nameserver.conf」→「/var/named/chroot/etc/named.caching-nameserver.conf」

【正引き・逆引きゾーンファイル】
    「/var/named/kajuhome.com.lan」→「/var/named/chroot/var/named/kajuhome.com.lan」
    「/var/named/1.168.192.in-addr.arpa.db」→「/var/named/chroot/var/named/1.168.192.in-addr.arpa.db」
    「/var/named/kajuhome.com.wan」→「/var/named/chroot/var/named/kajuhome.com.wan」
    「/var/named/xxx.151.221.in-addr.arpa.db」→「/var/named/chroot/var/named/xxx.151.221.in-addr.arpa.db」

■ chrootを適用していない状態のbind関連情報

【プロセス】
# ps -ef | grep named
named     1956     1  0 13:43 ?        00:00:00 /usr/sbin/named -u named

【bind設定ファイル】
# ls -l /etc/named.conf
-rw-r--r--  1 root named 1581  1月 16 14:06 /etc/named.conf

【ゾーンファイル】
# ls -l /var/named/
合計 56
-rw-rw----  1 root  named  459 2006-12-16 12:48 1.168.192.in-addr.arpa.db
-rw-rw----  1 root  named  329 2007-03-14 23:12 xxx.151.221.in-addr.arpa.db
drwxrwx---  2 root  named 4096 2004-08-26 05:51 data
-rw-rw----  1 root  named  492 2006-12-16 12:47 kajuhome.com.lan
-rw-rw----  1 root  named  388 2007-03-14 23:27 kajuhome.com.wan
-rw-rw----  1 root  named 2518 2007-04-16 23:52 named.ca
-rw-rw----  1 root  named  129 2007-06-21 19:09 named.empty
-rw-rw----  1 root  named  152 2007-06-21 19:09 named.localhost
-rw-rw----  1 root  named  145 2007-06-21 19:09 named.loopback
drwxrwx---  2 root  named 4096 2004-07-27 23:57 slaves

■ bind-chrootのインストール

# yum -y install bind-chroot

■ chrootを適用した状態のbind関連情報

【プロセス】
# ps -ef | grep named
named     1827     1  1 13:42 ?        00:00:00 /usr/sbin/named -u named -t /var/named/chroot

【bind設定ファイル】
# ls -l /etc/named.conf
lrwxrwxrwx  1 root root 32 2006-01月 16 14:09 /etc/named.conf -> /var/named/chroot/etc/named.conf

【ゾーンファイル】
# ls -l /var/named/
合計 28
lrwxrwxrwx  1 root  root    53 2006-01-16 14:09 1.168.192.in-addr.arpa.db -> /var/named/chroot/var/named/1.168.192.in-addr.arpa.db
lrwxrwxrwx  1 root  root    54 2007-03-14 23:44 xxx.151.221.in-addr.arpa.db -> /var/named/chroot/var/named/xxx.151.221.in-addr.arpa.db
drwxr-x---  6 root  named 4096 2007-06-21 14:09 chroot
drwxrwx---  2 named named 4096 2007-06-21 07:15 data
lrwxrwxrwx  1 root  root    43 2007-01-16 14:09 kajuhome.com.lan -> /var/named/chroot/var/named/kajuhome.com.lan
lrwxrwxrwx  1 root  root    55 2007-03-14 23:44 kajuhome.com.wan -> /var/named/chroot/var/named/kajuhome.com.wan
lrwxrwxrwx  1 root  root    36 2007-06-22 14:09 named.ca -> /var/named/chroot/var/named/named.ca
lrwxrwxrwx  1 root  root    43 2007-06-22 14:09 named.empty -> /var/named/chroot/var/named/named.empty
lrwxrwxrwx  1 root  root    39 2007-06-22 14:09 named.localhost -> /var/named/chroot/var/named/named.localhost
lrwxrwxrwx  1 root  root    38 2007-06-22 14:09 named.loopback -> /var/named/chroot/var/named/named.loopback
drwxrwx---  2 named named 4096 2007-06-21 07:15 slaves

■ 公開前の準備

自前DNSサーバを外部に公開するに当たって、ルータの設定が必要です。
ルータのポート開閉は、ご自分のルータ取扱説明書をご覧ください。

■ 広告

ページ先頭へ

Copyright(©)2004-2008 First home server construction. All Right Reserved.