1 views

実現する機能

外部から自宅サーバー「http://ufuso.dip.jp」にアクセスすると、プロバイダーから提供されているルーター(192.168.24.1)がちゃんと自宅サーバー(192.168.24.240)に繋いでくれますが、自宅のWindowsノートパソコン(192.168.24.3)から自宅サーバー「http://ufuso.dip.jp」にアクセスすると繋いでくれません。ドメインufuso.dip.jpがIPアドレス192.168.24.240と同じパソコンのものだよと教えてくれるDNSサーバー(BIND)が家庭内LAN内には無いからです。

そこで、自宅サーバーに自宅のWindowsノートパソコンやiPhone4sからアクセスできるように自宅用のDNSサーバー(内部DNSサーバー)を構築してIPアドレス(192.168.24.240)だけではなく、ufuso.dip.jpでもアクセスできるようにしました。

事前準備

ieServer.Net(無料)Dynamic DO!.jp(無料)お名前.com(有料)などからドメインを取得済であること

ドメイン名の説明はこちら

BIND導入手順

(1)BINDインストール

[root@ufuso ~]# yum -y install bind ← bindインストール
Installed:
  bind.x86_64 32:9.8.2-0.17.rc1.el6_4.4                                 

Complete!

(2)BIND設定

[root@ufuso ~]# echo OPTIONS="-4" >> /etc/sysconfig/named
  ← IPv4のみ有効にする(error (network unreachable) resolvingというエラーログの
出力抑止)

[root@ufuso ~]# vi /etc/named.conf ← BIND設定ファイル編集
//
// named.conf
//
// Provided by Red Hat bind 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.
//

options {
        #listen-on port 53 { 127.0.0.1; }; ← 行頭に#を追加して無効化
        #listen-on-v6 port 53 { ::1; }; ← 行頭に#を追加して無効化
        version         "unknown"; ← bindのバージョン情報の非表示化 
        listen-on-v6 { none; };
        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; 192.168.24.0/24; }; ← サーバーと同じネット
ワーク内からの問合せも許可
        recursion yes;

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";
         forwarders{
                192.168.24.1; ← ルーター経由接続環境の場合なのでルーターのIP
アドレスを指定。
                106.187.2.33; ← プロバイダから通知されたDNSサーバー(プライマリ)
のIPアドレスを指定
                106.187.2.41; ← プロバイダから通知されたDNSサーバー(セカンダリ)
のIPアドレスを指定
                };
        managed-keys-directory "/var/named/dynamic";
};

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

view "internal" {
        match-clients {
                localhost;
                192.168.24.0/24; ← サーバーと同じネットワークを追加
        };
        zone "." IN {
                type hint;
                file "named.ca";
        };
        zone "ufuso.dip.jp" IN { ← 正引きゾーン名「ufuso.dip.jp」を指定
                type master;
                file "ufuso.dip.jp.lan"; ← 正引き設定情報の保存ファイル名を指定
                allow-update { none; };
        };
        zone "24.168.192.in-addr.arpa" IN { ← 逆引きゾーン名「24.168.192
.in-addr.arpa」を指定
                type master;
                file "24.168.192.db"; ← 逆引き設定情報の保存ファイル名を指定
                allow-update { none; };
        };
include "/etc/named.rfc1912.zones";
};


(3)内部向け正引きゾーンデータベース(ドメイン名⇒IPアドレス)作成

[root@ufuso ~]# vi /var/named/ufuso.dip.jp.lan ← 正引きゾーンデータベース作成

$TTL 86400
@   IN  SOA     ufuso.dip.jp. root.ufuso.dip.jp. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)

        IN  NS      ufuso.dip.jp. ← ネームサーバー定義
        IN  A       192.168.24.240 ← サーバーのプライベートIPを指定(ufuso.dip.jp用)
        IN  MX 10   ufuso.dip.jp. ← メールサーバー定義
        IN  A       192.168.24.240 ← サーバーのプライベートIPを指定(*.ufuso.dip.jp用)


(4)内部向け逆引きゾーンデータベース(IPアドレス⇒ドメイン名)作成

[root@ufuso ~]#  vi /var/named/24.168.192.db ← 逆引きゾーンデータベース作成

$TTL 86400
@   IN  SOA     ufuso.dip.jp. root.ufuso.dip.jp. (
        2011071001  ;Serial
        3600        ;Refresh
        1800        ;Retry
        604800      ;Expire
        86400       ;Minimum TTL
)

        IN  NS      ufuso.dip.jp. ← ネームサーバー定義
        IN  PTR     ufuso.dip.jp. ← IPアドレスに関連付けるホスト名を定義
        IN  A       255.255.255.0 ← ドメインが属する範囲の定義
240     IN  PTR     ufuso.dip.jp. ← IPアドレスに関連付けるホスト名を定義

(5)BIND起動

[root@ufuso ~]# /etc/rc.d/init.d/named start ← BIND起動
Generating /etc/rndc.key:                                  [  OK  ]
named を起動中:                                            [  OK  ]

[root@ufuso ~]# chkconfig named on ← BIND自動起動設定

(6)本サーバーをDNSサーバーとして登録

[root@ufuso ~]# cd /etc/sysconfig/network-scripts
 ← network-scriptsフォルダへ移動

[root@ufuso network-scripts]# vi ifcfg-eth0 ← eth0ファイルの編集
DEVICE=eth0
TYPE=Ethernet
UUID=1a318fab-faa0-4487-832e-3000d65b7b81
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.24.240
PREFIX=24
GATEWAY=192.168.24.1
DNS1=192.168.24.240 ← 本機を第1DNSサーバーとして追記
DOMAIN=ufuso.dip.jp
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0"
HWADDR=90:E6:BA:C9:DE:B3
DNS2=192.168.24.1 ← ルーターを第2DNSサーバーにする

[root@ufuso network-scripts]# cd ← network-scriptsフォルダから移動

[root@ufuso ~]# /etc/rc.d/init.d/network restart  ← networkの再起動
インターフェース eth0 を終了中:  デバイスの状態: 3 (切断済み)
                                                           [  OK  ]
ループバックインターフェースを終了中                       [  OK  ]
ループバックインターフェイスを呼び込み中                   [  OK  ]
インターフェース eth0 を活性化中:  アクティブ接続の状態: アクティベート済み
アクティブ接続のパス: /org/freedesktop/NetworkManager/ActiveConnection/4
                                                           [  OK  ]

(7)UDPの53番ポートとTCPの53番ポートをオープンする
ルーターの設定で、UDPの53番ポートとTCPの53番ポートへのアクセスをサーバーに転送するようにする。下図はauひかりのルーターでの設定例。

(8)BIND確認(クライアントがWindowsの場合)

C:>nslookup ← nslookup起動
Default Server:  ufuso.dip.jp
Address:  192.168.24.240

> ufuso.dip.jp ← サーバーの正引きテスト
Server:  ufuso.dip.jp
Address:  192.168.24.240

Name:    ufuso.dip.jp
Address:  192.168.24.240 ← IPアドレスが返ってきた

> 192.168.24.240 ← サーバーの逆引きテスト

Server:  ufuso.dip.jp
Address:  192.168.24.240

Name:    ufuso.dip.jp ← ドメイン名が返ってきた
Address:  192.168.24.240
> exit ← nslookup停止

C:>

(9)BIND確認(クライアントがLinuxの場合)


[root@ufuso ~]# dig ufuso.dip.jp ← サーバーの正引きテスト

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.4 <<>> ufuso.dip.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17342
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;ufuso.dip.jp.			IN	A

;; ANSWER SECTION:
ufuso.dip.jp.		86400	IN	A	192.168.24.240

;; AUTHORITY SECTION:
ufuso.dip.jp.		86400	IN	NS	ufuso.dip.jp.

;; Query time: 0 msec
;; SERVER: 192.168.24.240#53(192.168.24.240)
;; WHEN: Wed Apr 24 20:42:11 2013
;; MSG SIZE  rcvd: 60

[root@ufuso ~]# dig -x 192.168.24.240 ← サーバーの逆引きテスト

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.17.rc1.el6_4.4 <<>> -x 192.168.24.240
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52834
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;240.24.168.192.in-addr.arpa.	IN	PTR

;; ANSWER SECTION:
240.24.168.192.in-addr.arpa. 86400 IN	PTR	ufuso.dip.jp.

;; AUTHORITY SECTION:
24.168.192.in-addr.arpa. 86400	IN	NS	ufuso.dip.jp.

;; ADDITIONAL SECTION:
ufuso.dip.jp.		86400	IN	A	192.168.24.240

;; Query time: 1 msec
;; SERVER: 192.168.24.240#53(192.168.24.240)
;; WHEN: Wed Apr 24 20:42:52 2013
;; MSG SIZE  rcvd: 101

(10)chroot環境への移行

[root@ufuso ~]# yum -y install bind-chroot ← chrootのインストール 
Installed:
  bind-chroot.x86_64 32:9.8.2-0.17.rc1.el6_4.4                                  

Complete!

[root@ufuso ~]# /etc/rc.d/init.d/named restart ← BIND再起動 
named を停止中: .                                          [  OK  ]
named を起動中:                                            [  OK  ]

[root@ufuso ~]# ll /var/named/chroot/etc ← chroot環境への移行確認 
合計 32
-rw-r--r--. 1 root root   331  1月 23 20:36 2013 localtime
drwxr-x---. 2 root named 4096  3月 29 07:21 2013 named
-rw-r-----. 1 root named 1504  4月 17 02:09 2013 named.conf
-rw-r--r--. 1 root named 2389  3月 29 07:21 2013 named.iscdlv.key
-rw-r-----. 1 root named  931  6月 21 19:09 2007 named.rfc1912.zones
-rw-r--r--. 1 root named  487  7月 19 22:28 2010 named.root.key
drwxr-x---. 3 root named 4096  4月 17 02:23 2013 pki
-rw-r-----. 1 root named   77  4月 17 02:14 2013 rndc.key

[root@ufuso ~]# ll /var/named/chroot/var/named ← chroot環境への移行確認  
合計 40
-rw-r--r--. 1 root  root   346  4月 17 02:14 2013 24.168.192.db
drwxr-x---. 6 root  named 4096  4月 17 02:23 2013 chroot
drwxrwx---. 2 named named 4096  4月 17 02:15 2013 data
drwxrwx---. 2 named named 4096  4月 17 02:15 2013 dynamic
-rw-r-----. 1 root  named 1892  2月 18 21:29 2008 named.ca
-rw-r-----. 1 root  named  152 12月 15 21:27 2009 named.empty
-rw-r-----. 1 root  named  152  6月 21 19:09 2007 named.localhost
-rw-r-----. 1 root  named  168 12月 15 21:27 2009 named.loopback
drwxrwx---. 2 named named 4096  3月 29 07:21 2013 slaves
-rw-r--r--. 1 root  root   348  4月 17 02:12 2013 ufuso.dip.jp.lan

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください