210.●1.bindの導入手順(新)●

1.bindの導入手順

【 実習上の注意点】

この実習で「〇」の表記は各自のサーバ機IPアドレスの第4オクテッドとします。

この実習は仮想サーバhost○.dom○○.ict.jp(192.168.1.〇〇)でrootユーザで行います。

①VMで新しいCentOS7の仮想マシンを作成してください。
 ネットワークの設定は以下の通りです。
  自機のIPアドレス:192.168.1.○○○
  サブネットマスク:24
  デフォルトゲートウエイ:192.168.1.1
  DNS:192.168.1.50
  ホスト名:host○.dom○○.ict.jp   ○○○は確認すること

 www.google.comへpingが通ることを確認してください。

②実習の前にFirewalldSELinuxが停止していることの確認をしておいてください
 # systemctl status firewalld  →  inactive になっている
   # getenforce  →  Disabledになっている


●bindの導入手順

OSバージョンの確認

# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)

(最新)
# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)


1.bindインストール

yum -y install bind bind-utils


2.環境設定

実習環境】

・各自のDNSのホスト名は host〇〇 とする

・クライアントを導入するときのホスト名は cl〇〇 とする

・ドメイン名は dom〇〇.ict.jp  とする

設定手順】

(1)設定ファイルをを編集する ファイルの場所は /etc/named.conf      
(2)ゾーンファイルを作成する 保存場所は /var/named
(3)ゾーンファイルのパーミッションを設定する アクセス権は 644


以下の設定例をもとに cat を vi に読み替えて赤字部分の内容を修正すること
ipアドレス等々、自身の環境に合わせて適切に読み替えること

(1)設定ファイルを編集する ファイルの場所は /etc/named.conf      
[root@host〇〇 ~]# cat /etc/named.conf
//
// 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 { any; };  //監視するTCPポート番号
//      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     { any; };   //このサーバに問い合わせできるホスト名、anyは誰でもOK

        /*
         - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
         - If you are building a RECURSIVE (caching) DNS server, you need to enable
           recursion.
         - If your recursive DNS server has a public IP address, you MUST enable access
           control to limit queries to your legitimate users. Failing to do so will
           cause your server to become part of large scale DNS amplification
           attacks. Implementing BCP38 within your network would greatly
           reduce such attack surface
        */
        recursion yes;

        dnssec-enable yes;
        dnssec-validation no; //yes →  no 時刻検証は無視する ここ忘れないように 
      
        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";

        pid-file "/run/named/named.pid";
        session-keyfile "/run/named/session.key";

};

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

//    逆引き時に問い合わせた他のDNSサーバがエラーだった場合(設定不良)のログは記 録しない
//        エラー時の例)下記のログが大量に出力されてしまう対処
//            error (unexpected RCODE SERVFAIL) resolving
//            error (network unreachable) resolving
    category lame-servers { null; };

};

//zone "."  IN {
//        type hint;
//         file "named.ca"; インターネットのネームサーバ
//};           自分で作るので必要ない

zone "dom〇〇.ict.jp"  {    //このサーバで管理する正引きゾーンファイル
        type master;
        file "dom〇〇.ict.jp.zone";
};
zone "〇〇.1.168.192.in-addr.arpa"  {  //このサーバで管理する逆引きゾーンファイル
        type master;
        file ".1.168.192.in-addr.arpa.zone";
};

include "/etc/named.rfc1912.zones";   //規定で定められた最小限のDNSサーバの設定ファイル
//include "/etc/named.root.key";

(2)ゾーンファイルを作成する 保存場所は /var/named

作成するゾーンファイル
 〇〇.1.168.192.in-addr.arpa.zone  ← 自身の環境にあわせて変更
 dom〇〇.ict.jp.zone         ← 自身の環にあわせて変更

・ZONEファイルを作成する
[root@host〇〇 named]# cat /var/named/dom.ict.jp.zone
$TTL 3H
@       IN SOA   host.dom.ict.jp. root.dom〇〇.ict.jp. (  //ドメイン管理者のメールアドレスなどを記述
                                        20141119        ; serial             //区切りは@ではなく.最後も.で終わります
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN      NS         host〇〇.dom.ict.jp.     //ネームサーバを記述
        IN      MX  10   mail.dom.ict.jp.        //ドメインのメールサーバを記述
host〇  IN      A    192.168.1.〇〇〇      //正引き用のアドレスを記述
mail  IN     A    192.168.1.
www IN     A    192.168.1.〇〇
 
[root@host〇〇 named]#
[root@host〇〇 named]# cat /var/named/.1.168.192.in-addr.arpa.zone
$TTL 1D
@       IN SOA  host〇〇.dom.ict.jp. root.dom.ict.jp. (
                                        20141119        ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        IN      NS      host〇〇.dom.ict.jp.
        IN      PTR     host.dom〇〇.ict.jp.    //逆引き用のアドレスを記述
        IN      PTR     mail.dom.ict.jp.
        IN      PTR     www.dom.ict.jp.
[root@host〇〇 named]#

・アクセス権を確認(設定)する
[root@host〇〇 named]# chmod 644 .1.168.192.in-addr.arpa.zone
[root@host〇〇 named]# chmod 644 dom.ict.jp.zone

・設定ファイルの文法チェックを行う
illeagalやerrorな状態がないことを確認する)※以下は =95の状況です
[root@host95 named]# named-checkconf -z
zone dom95.kanatech.ac.jp/IN: loaded serial 20141119
zone 100.95.168.192.in-addr.arpa/IN: loaded serial 20141119
zone localhost.localdomain/IN: loaded serial 0
zone localhost/IN: loaded serial 0
zone 1.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: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone 0.in-addr.arpa/IN: loaded serial 0


・ネットーワーク関連ファイルの確認と変更を行う
(以下の環境設定ファイルの個々のパラメータは自身の環境に読み替えること)

[root@host95 named]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@cs7cl95 named]#


[root@host95 named]# cat /etc/sysconfig/network-scripts/ifcfg-enoXXXXXXXX
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="no"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
NAME="enp0s3"
UUID="d483512a-0c84-4300-942a-bf9ffdacf027"
ONBOOT="yes"
HWADDR="08:00:27:27:27:4C"
IPADDR0="192.168.1.〇〇"
PREFIX0="24"
GATEWAY0="192.168.1.1"
DNS1="192.168.1.〇〇 "  ← 自身のDNSに変更します
                  networkを再起動するとこの設定がresolv.confに自動的に反映されます
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
[root@host95 named]#


[root@host95 named]# cat /etc/sysconfig/network
NETWORKING=yes                       
GATEWAY=192.168.1.1


[root@host95 named]# cat /etc/hostname
host〇〇 .dom.ict.jp


[root@host95 named]# cat /etc/resolv.conf
# Generated by NetworkManager
search dom.ict.jp
nameserver 192.168.1.〇〇  ← networkを再起動すると自動的に反映されます
[root@host95 named]#

※(CentOS6系構成の場合) 自機のIPアドレス等はここで確認・変更します
 
 cat /etc/sysconfig/network-scripts/ifcfg-eth0

※(CentOS7系構成の場合) hostnameはここで確認・設定します
 
[root@host95~]# cat /etc/sysconfig/network
HOSTNAME=host .dom〇〇 .ict.jp
NETWORKING=yes
GATEWAY=192.168.1.1
[root@sv95 ~]#

・ネットーワークを再起動する
# service network restart
(もしネットワークアクセスができなくなったらrebootでシステム全体を再起動してください)

3.DNS起動と確認

・エラーログを監視状態にする(別の端末を立ち上げて実行)
[root@host95 ~]# tail -f /var/log/messages
 ※ログを監視すること

・namedを起動する
[root@host95 named]# systemctl start named.service
[root@host95 named]# systemctl status named.service

・電源投入時に起動するよう設定する
[root@host95 named]# systemctl enable named.service

・DNSの動作確認を行う(一つでもエラーになったら設定を見直してください)
正引き
[root@host95 named]# nslookup host .dom .ict.jp
Server:         192.168.1.〇〇
Address:        192.168.1.〇〇 #53

Name:   host〇〇 .dom .ict.jp
Address: 192.168.1.〇〇

逆引き
[root@host95 named]# nslookup 192.168.1.〇〇 
Server:         192.168.1. 
Address:        192.168.1.〇〇 #53

.1.168.192.in-addr.arpa     name = mail.dom .ict.jp.
.1.168.192.in-addr.arpa     name = www.dom〇〇 .ict.jp.
〇〇 .1.168.192.in-addr.arpa     name = host〇〇 .dom .ict.jp.

ホスト名だけによる正引き
[root@host95 named]# nslookup host〇〇
Server:         192.168.1.〇〇
Address:        192.168.1.〇〇#53

Name:   host〇〇 .dom .ict.jp
Address: 192.168.1.〇〇

localhostの正引き
[root@host95 named]# nslookup localhost
Server:         192.168.1.〇〇
Address:        192.168.1.#53

Name:   localhost
Address: 127.0.0.1

こんな感じでエラーが出たら設定を見直してください
# nslookup host74.dom74.ict.jp
Server:         192.168.95.100
Address:        192.168.95.100#53

** server can't find sv74.dom74.ac.jp: NXDOMAIN

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

※うまくいかないときは以下を見直しましょう 
・DNSの設定を確認(/etc/named.conf)
・ゾーンファイルを確認(/var/named)
・ネットワークアダプタのDNS設定を確認(/etc/sysconfig/network-scripts/ifcfg-enpxxxxxxx)
・リゾルバ参照を確認(/etc/resolv.conf)
・ネットワークサービスの再起動(service network restart)
・DNSサービスの再起動(service named restart)

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー


【重要】

最後にインターネットへ出ていくためのDNSの設定を追加します。
ネットワーク設定でセカンダリDNS=192.168.1.50を設定して、pingがgoogleへ届くことを確認してください。
セカンダリDNSを設定する方法は以下の2つがあります。
ifcfg-enpxxxxxxxにDNS2を設定する方法(networkの再起動が必要ですが永続的)
・resolv.confにnameserverを設定する方法(即反映しますがnetwork再起動で元に戻る)
どちらか一つで大丈夫です。



4.クライアントのDNS設定による動作試験

課題:新たにMacを導入し ます。

(ネットワークの設定を適切に行ってください)
   ・IPアドレスは192.168.1.〇〇〇+1にします。
   ・DNS設定は dom〇〇.ict.jp を管理するDNS(192.168.1.〇〇)にします。

確認:(1)ブラウザを起動して正常にインターネットに接続されることを確認します。
   (2) mail.dom .ict.jp へpingを打ってレスポンスが返ることを確認します。
   (3) www.dom .ict.jp へpingを打ってレスポンスが返ることを確認します。
   (4) host〇〇 .dom .ict.jp へpingを打ってレスポンスが返ることを確認します。
   (5)完成している他のドメインのホストへpingを打ってレスポンスが返ることを確認します。
             ping host××× .dom××× .ict.jp