BINDを使ってLAN向けDNSサーバを作ろう!
ここでは、BINDを使ったLAN内用DNSの構築手順について掲載してあります。
非固定IPの場合、外部向けのDNSを立てることができないので、今回はLAN内でのみ参照をするDNSサーバを構築します。
尚、説明で使用しているドメイン"mhserv.mydns.jp"やネットワークアドレス"192.168.11"は各自の環境に合わせて変更してください。
DNSとは…?
ブラウザで「http://183.79.135.206/」に接続すると、一体どこに繋がるでしょうか?
試してみると分かりますが、これはyahoo!Japanのトップページに繋がります。しかし、これでは覚えづらい、分かりづらい、どこに繋がるか分からず不安、と良い事なしですよね。
そこで、「http://www.yahoo.co.jp/」なんてURL(ドメイン)を付けてやります。このURLを見れば、どこに繋がるかだいたい分かりますね。
このように、IPアドレスとドメインを相互変換するシステムのことをDNS(Domain Name System)といいます。
BINDとは…?
Berkeley Internet Name Domainの略で、世界で最も普及しているDNSサーバです。
BINDのインストール
BINDと関連のパッケージをインストールします。
[root@co ~]# yum -y install bind bind-chroot caching-nameserver
Loaded plugins: downloadonly, fastestmirror, security
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
base | 1.1 kB 00:00
extras | 2.1 kB 00:00
updates | 1.9 kB 00:00
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package bind.x86_64 30:9.3.6-20.P1.el5_8.6 set to be updated
---> Package bind-chroot.x86_64 30:9.3.6-20.P1.el5_8.6 set to be updated
---> Package caching-nameserver.x86_64 30:9.3.6-20.P1.el5_8.6 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
bind x86_64 30:9.3.6-20.P1.el5_8.6 updates 989 k
bind-chroot x86_64 30:9.3.6-20.P1.el5_8.6 updates 47 k
caching-nameserver x86_64 30:9.3.6-20.P1.el5_8.6 updates 64 k
Transaction Summary
================================================================================
Install 3 Package(s)
Upgrade 0 Package(s)
Total download size: 1.1 M
Downloading Packages:
(1/3): bind-chroot-9.3.6-20.P1.el5_8.6.x86_64.rpm | 47 kB 00:00
(2/3): caching-nameserver-9.3.6-20.P1.el5_8.6.x86_64.rpm | 64 kB 00:00
(3/3): bind-9.3.6-20.P1.el5_8.6.x86_64.rpm | 989 kB 00:00
--------------------------------------------------------------------------------
Total 2.7 MB/s | 1.1 MB 00:00
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : bind 1/3
Installing : bind-chroot 2/3
Installing : caching-nameserver 3/3
Installed:
bind.x86_64 30:9.3.6-20.P1.el5_8.6
bind-chroot.x86_64 30:9.3.6-20.P1.el5_8.6
caching-nameserver.x86_64 30:9.3.6-20.P1.el5_8.6
Complete!
BINDの設定
CentOS 5では設定ファイルが用意されていないので、サンプルファイルからコピーします。
[root@co ~]# cp /var/named/chroot/etc/named.caching-nameserver.conf /var/named/chroot/etc/named.conf
[root@co ~]# chgrp named /var/named/chroot/etc/named.conf
続いて、設定を行います。
[root@co ~]# 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.11.1(ルータのアドレス); };
};
// 以下を最後尾に追記
view "internal" {
match-clients { localnets; };
match-destinations { localnets; };
recursion yes;
include "/var/named/named.mhserv.mydns.jp(取得したドメイン).zone";
};
LAN内向けゾーン定義ファイルの作成
BINDが参照するLAN内でのゾーン定義ファイルを作成し、以下を入力します。
[root@co ~]# vi /var/named/chroot/var/named/named.mhserv.mydns.jp.zone
zone "mhserv.mydns.jp" {
type master;
file "mhserv.mydns.jp.db";
};
zone "11.168.192.in-addr.arpa" {
type master;
file "11.168.192.in-addr.arpa.db";
};
LAN内向け正引きゾーンDBの作成
ドメインからIPアドレスを参照する正引きゾーンの一覧を作成します。
ドメインの後ろにピリオド"."が付くので、忘れずに記入してください。
設定の内容についての詳しい説明はWebOS Goodies様の記事がとても参考になります。
[root@co ~]# vi /var/named/chroot/var/named/mhserv.mydns.jp.db
$TTL 86400
@ IN SOA mhserv.mydns.jp. root.mhserv.mydns.jp.(
2008110111 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ; Minimum
)
IN NS mhserv.mydns.jp.
IN MX 10 mhserv.mydns.jp.
@ IN A 192.168.11.11
* IN A 192.168.11.11
LAN内向け逆引きゾーンDBの作成
続いて、IPアドレスからドメインを参照する逆引きゾーンの一覧を作成します。
こちらもドメインの後ろにピリオド"."が付くので、忘れずに記入してください。
[root@co ~]# vi /var/named/chroot/var/named/11.168.192.in-addr.arpa.db
$TTL 86400
@ IN SOA mhserv.mydns.jp. root.mhserv.mydns.jp.(
2008110121 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ; Minimum
)
IN NS mhserv.mydns.jp.
11 IN PTR mhserv.mydns.jp.
11 IN PTR co.mhserv.mydns.jp.
ルートゾーンの更新
世界に13台しかないルートゾーンのサーバ情報を更新します。
[root@co ~]# dig . ns @198.41.0.4 > /var/named/chroot/var/named/named.ca
ルートゾーンのサーバ情報は滅多に更新されませんが、定期的に確認、更新を行うようにします。
スクリプトはCentOSで自宅サーバー構築様のものを使わせていただきます。
[root@co ~]# 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@co ~]# chmod 700 /etc/cron.monthly/named.root_update
BINDの起動
設定が終わったら、BINDを起動します。
[root@co ~]# /etc/rc.d/init.d/named start
named を起動中: [ OK ]
[root@co ~]# chkconfig named on
[root@co ~]# chkconfig --list named
named 0:off 1:off 2:on 3:on 4:on 5:on 6:off
サーバ機のDNSを変更
サーバのDNSを自分自身を参照するように変更します。
[root@co ~]# echo "nameserver 127.0.0.1" > /etc/resolv.conf
[root@co ~]# /etc/rc.d/init.d/network restart
インターフェース eth0 を終了中: [ OK ]
ループバックインターフェースを終了中 [ OK ]
ループバックインターフェイスを呼び込み中 [ OK ]
インターフェース eth0 を活性化中: [ OK ]
WindowsでのDNSの設定
Windows機でネットワークインターフェースにDNSの設定を行います。
動作確認
DNSサーバを設定したWindows機で、IPアドレスやドメインが引けるかを確認します。
今回新しく登場したコマンド
[広告]

トップページ
Rocky Linux 8
CentOS 7
Scientific Linux 6
CentOS 5
○準備
○VMware Player
○Hyper-V(Win Proのみ)
○導入
○セキュリティ対策
○Dynamic DNS
○NTPサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○DNSサーバ
○ファイルサーバ
○ブログシステム
○その他
ブログ
[広告]