BINDを使ってLAN向けDNSサーバを作ろう!
ここでは、BINDを使ったLAN内用DNSの構築手順について掲載してあります。
非固定IPの場合、外部向けのDNSを立てることができないので、今回はLAN内でのみ参照をするDNSサーバを構築します。
尚、説明で使用しているドメイン"mhserv.info"やネットワークアドレス"192.168.100"は各自の環境に合わせて変更してください。
※CentOS 5のサポートは2017年3月をもって終了していますが、旧コンテンツとしてこちらのページは残しておきます。
DNSとは…?
ブラウザで「http://142.250.207.4/」に接続すると、一体どこに繋がるでしょうか?
試してみると分かりますが、これはGoogleのトップページに繋がります。しかし、これでは覚えづらい、分かりづらい、どこに繋がるか分からず不安、と良い事なしですよね。
そこで、「http://www.google.com/」なんてURL(名前:ドメイン)を付けてあげます。このURLを見れば、どこに繋がるかだいたい分かりますね。
このように、IPアドレスとドメインを相互変換するシステムのことをDNS(Domain Name System)といいます。
BINDとは…?
Berkeley Internet Name Domainの略で、世界で最も普及しているDNSサーバです。
BINDのインストール
BINDと関連のパッケージをインストールします。
[root@co5 ~]# yum -y install bind-chroot caching-nameserver bind-utils
Installed:
  bind-chroot.x86_64 30:9.3.6-25.P1.el5_11.12
  caching-nameserver.x86_64 30:9.3.6-25.P1.el5_11.12
  bind-utils.x86_64 30:9.3.6-25.P1.el5_11.12
Dependency Installed:
  bind.x86_64 30:9.3.6-25.P1.el5_11.12      bind-libs.x86_64 30:9.3.6-25.P1.el5_11.12
Complete!
	BINDの設定
CentOS 5では設定ファイルが用意されていないので、サンプルファイルからコピーします。
[root@co5 ~]# cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.conf
[root@co5 ~]# chgrp named /var/named/chroot/etc/named.conf
続いて、設定を行います。
ドメインやfowardersに設定するDNSサーバは環境に合わせて変更してください。
[root@co5 ~]# vi /var/named/chroot/etc/named.conf
options {
          // 追記
              version "unknown";
    listen-on port 53 { 127.0.0.1; };
    ↓
          //  listen-on port 53 { 127.0.0.1; };
    listen-on-v6 port 53 { ::1; };
    ↓
//  listen-on-v6 port 53 { ::1; };
    allow-query    { localhost; };
		    allow-query-cache { localhost; };
    ↓
    allow-query    { localhost; localnets; };
    allow-query-cache { localhost; localnets; };
          
          // 以下を追記
              allow-recursion { localhost; localnets; };
      allow-transfer  { localhost; localnets; };
      forwarders      { 192.168.100.1; }; ※bindに登録がなかった場合に参照するDNSサーバ
          };
// 以下を最後尾に追記
          view "internal" {
    match-clients { localnets; };
    match-destinations { localnets; };
    recursion yes;
    include "/var/named/named.mhserv.info.zone"; ※取得したドメイン
};
LAN内向けゾーン定義ファイルの作成
BINDが参照するLAN内でのゾーン定義ファイルを作成し、以下を入力します。
ドメイン名、IPアドレスは環境に合わせて変更してください。
[root@co5 ~]# vi /var/named/chroot/var/named/named.mhserv.info.zone
zone "mhserv.info" { type master; file "mhserv.info.db"; }; zone "100.168.192.in-addr.arpa" { type master; file "100.168.192.in-addr.arpa.db"; };
LAN内向け正引きゾーンDBの作成
ドメインからIPアドレスを参照する正引きゾーンの一覧を作成します。
ドメインの後ろにピリオド"."が付くので、忘れずに記入してください。
設定の内容についての詳しい説明はWebOS Goodies様の記事がとても参考になります。
[root@co5 ~]# vi /var/named/chroot/var/named/mhserv.info.db
$TTL 86400 @ IN SOA mhserv.info. root.mhserv.info.( 2024011901 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ; Minimum ) IN NS mhserv.info. IN MX 10 mhserv.info. @ IN A 192.168.100.245 * IN A 192.168.100.245
LAN内向け逆引きゾーンDBの作成
続いて、IPアドレスからドメインを参照する逆引きゾーンの一覧を作成します。
こちらもドメインの後ろにピリオド"."が付くので、忘れずに記入してください。
[root@co5 ~]# vi /var/named/chroot/var/named/100.168.192.in-addr.arpa.db
$TTL 86400 @ IN SOA mhserv.info. root.mhserv.info.( 2024011901 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ; Minimum ) IN NS mhserv.info. 245 IN PTR mhserv.info. 245 IN PTR co5.mhserv.info.
ルートゾーンの更新
ルートゾーンのサーバ情報を更新します。
世界に13台しかないらしいです。
[root@co5 ~]# dig . ns @198.41.0.4 > /var/named/chroot/var/named/named.ca
ルートゾーンのサーバ情報は滅多に更新されませんが、定期的に確認、更新を行うようにします。
スクリプトはCentOSで自宅サーバー構築様のものを使わせていただきます。
[root@co5 ~]# vi /etc/cron.monthly/named.root_update
#!/bin/bash
new=`mktemp`
errors=`mktemp`
dig . ns @198.41.0.4 > $new 2> $errors
if [ $? -eq 0 ]; then
    sort_new=`mktemp`
    sort_old=`mktemp`
    diff_out=`mktemp`
    sort $new > $sort_new
    sort /var/named/chroot/var/named/named.ca > $sort_old
    diff --ignore-matching-lines=^\; $sort_new $sort_old > $diff_out
    if [ $? -ne 0 ]; then
        (
        echo '-------------------- old named.root --------------------'
        cat /var/named/chroot/var/named/named.ca
        echo
        echo '-------------------- new named.root --------------------'
        cat $new
        echo '---------------------- difference ----------------------'
        cat $diff_out
        ) | mail -s 'named.root updated' root
        cp -f $new /var/named/chroot/var/named/named.ca
        chown named. /var/named/chroot/var/named/named.ca
        chmod 644 /var/named/chroot/var/named/named.ca
        /etc/rc.d/init.d/named restart > /dev/null
    fi
    rm -f $sort_new $sort_old $diff_out
else
    cat $errors | mail -s 'named.root update check error' root
fi
rm -f $new $errors
    [root@co5 ~]# chmod 700 /etc/cron.monthly/named.root_update
BINDの起動
設定が終わったら、BINDを起動します。
[root@co5 ~]# /etc/rc.d/init.d/named start
named を起動中:                                            [  OK  ]
  [root@co5 ~]# chkconfig named on
[root@co5 ~]# chkconfig --list named
named 0:off 1:off 2:on 3:on 4:on 5:on 6:off
サーバ機のDNSを変更
サーバのDNSを自分自身を参照するように変更します。
[root@co5 ~]# echo "nameserver 127.0.0.1" > /etc/resolv.conf
[root@co5 ~]# /etc/rc.d/init.d/network restart
インターフェース eth0 を終了中: [ OK ] ループバックインターフェースを終了中 [ OK ] ループバックインターフェイスを呼び込み中 [ OK ] インターフェース eth0 を活性化中: [ OK ]
WindowsでのDNSの設定
Windows機でネットワークインターフェースにDNSの設定を行います。
動作確認
DNSサーバを設定したWindows機で、IPアドレスやドメインが引けるかを確認します。
今回新しく登場したコマンド
- dig
[広告]
 
		トップページ
CentOS 5
○準備
○仮想化準備(VMware)
○仮想化準備(Hyper-V)
○仮想化準備(Proxmox)
○基本操作
○導入
○セキュリティ対策
○Dynamic DNS
○NTPサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○DNSサーバ
○ファイルサーバ
○その他
Proxmox 8
Rocky Linux 10
AlmaLinux 9
Rocky Linux 8
CentOS 7
Scientific Linux 6
ブログ
[広告] 
		 
 








 までご連絡ください。
までご連絡ください。