#contents
内部用DNSサーバー作成だが、普通に作成すれば権限委譲されていないので問題なく内部用DNSサーバーとして仕様できる。
*BINDの入手 [#i4e88a60]
[[ISC BIND:http://www.isc.org/sw/bind/]]
$ wget http://ftp.isc.org/isc/bind9/9.3.2/bind-9.3.2.tar.gz
*BINDのインストール [#i3c0fa5b]
$ tar xzvf bind-9.3.2.tar.gz
$ cd bind-9.3.2
$ ./configure
$ make
$ su
# make install
*bind用ユーザー作成 [#gd59383b]
# /usr/sbin/groupadd named
# /usr/sbin/useradd -g named -d /var/named -s /bin/false named
*設定ファイル作成前準備 [#be2d52ef]
いらないファイルが useradd で配置されるはずなので削除
# cd /var/named
# rm -rf *
# rm -rf .*
*設定ファイルの作成 [#t074865a]
**named.ca [#k45738ce]
$ wget ftp://rs.internic.net/domain/named.root
$ su
# mv named.root /var/named
**/usr/local/etc/named.conf [#j2d65a41]
options {
// zone ファイルの格納場所
directory "/var/named";
// BIND の利用を許す範囲を指定
allow-query {
// 自分自身( localhost )
127.0.0.1;
// 192.168.1.* ( Subnet 255.255.255.0 )
192.168.1.0/24;
};
// スレーブ DNS のアドレスを記述。内向き DNS の場合は必要ないが一応記載。
allow-transfer {
// 自分自身( localhost )
127.0.0.1;
// 192.168.1.* ( Subnet 255.255.255.0 )
192.168.1.0/24;
};
// 自前で名前解決できないとき、まずはプロバイダの DNS へ聞きに行く様にする。
forwarders {
XXX.XXX.XX.XX; // プロバイダのプライマリ DNS の IP アドレス
XXX.XXX.XX.XX; // プロバイダのセカンダリ DNS の IP アドレス
};
};
// ルート DNS の情報
zone "." {
// ルート DNS の情報である事を明示
type hint;
// ファイル名
file "named.ca";
};
// localhost の正引きの設定
zone "localhost" {
// Master DNS Serverであることを示す
type master;
// ファイル名
file "localhost.zone";
};
// localhost の逆引きの設定
zone "0.0.127.in-addr.arpa" {
// Master DNS Serverであることを明示
type master;
// ファイル名
file "0.0.127.in-addr.arpa";
};
// xx.net の正引きの設定(内部用ドメイン)
zone "xx.net" {
// Master DNS Serverであることを明示
// 内部から *.xx.net を引いたときにきちんと見えるよう設定
type master;
// ファイル名
file "xx.net";
};
// 192.168.1.* の逆引きの設定
zone "1.168.192.in-addr.arpa" {
// Master DNS Serverであることを明示
type master;
// ファイル名
file "1.168.192.in-addr.arpa";
};
// yyy.yy の正引きの設定(DDNSドメイン)
zone "yyy.yy" {
// Master DNS Serverであることを明示
// 内部から yyyyyy.yyy.yy を引いたときにきちんと見えるよう設定
type master;
// ファイル名
file "yyy.yy";
};
**localhost.zone [#a9ca29f3]
$TTL 1D
@ IN SOA xxxxx.xx.net. root.xxxxx.xx.net. (
2006090300 ; シリアル番号
3H
1H
1W
1D )
IN NS xxxxx.xx.net.
localhost. IN A 127.0.0.1
**0.0.127.in-addr.arpa [#yea0a03c]
$TTL 1D
@ IN SOA xxxxx.xx.net. root.xxxxx.xx.net. (
2006090300
3H
1H
1W
1D )
IN NS xxxxx.xx.net.
1 IN PTR localhost.
**xx.net(内部用設定ファイル) [#u2ac26d7]
$TTL 1D
@ IN SOA xxxxx.xx.net. root.xxxxx.xx.net. (
2006090300
3H
1H
1W
1D )
IN NS xxxxx.xx.net.
IN MX 10 xxxxx.xx.net. ; メールサーバのホスト名を指定
; 10 は優先順位。
router IN A 192.168.1.1
xxxxx IN A 192.168.1.10
xx.net IN A 192.168.1.10
chrono IN A 192.168.1.3
dns IN CNAME sigel
www IN CNAME sigel
smtp IN CNAME sigel
pop IN CNAME sigel
**1.168.192.in-addr.arpa [#p01121f7]
$TTL 1D
@ IN SOA xxxxx.xx.net. root.xxxxx.xx.net. (
2006090300
3H
1H
1W
1D )
IN NS xxxxx.xx.net.
IN PTR xx.net. ; 解決するドメイン
IN A 255.255.255.0 ; サブネットマスク
1 IN PTR router.xx.net.
10 IN PTR sigel.xx.net.
2 IN PTR chrono.xx.net.
**yyy.yy(DDNSドメイン設定ファイル) [#hed5aff0]
$TTL 1D
@ IN SOA yyyyy.yyy.yy. root.yyyyyy.yyy.yy. (
2006090300
3H
1H
1W
1D )
IN NS yyyyyy.yyy.yy.
yyyyyy IN A 192.168.1.10
*named.pidを作成可能にする [#laacf0c2]
$ su
# chmod 777 /var/run
他のデーモン等が作成する pid ファイルは他ユーザーが書き込みできなくなっているようなのでこれで対応
*自動起動設定 [#g67c343d]
もともと入っていたパッケージ版bindの起動スクリプトを流用~
起動スクリプトへのリンクは既にできているのでそのまま使う%%細かいことは気にしない(ぉ%%
-/etc/init.d/named
#!/bin/bash
#
# named This shell script takes care of starting and stopping
# named (BIND DNS server).
#
# chkconfig: - 55 45
# description: named (BIND) is a Domain Name Server (DNS) \
# that is used to resolve host names to IP addresses.
# probe: true
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
[ -r /etc/sysconfig/network ] && . /etc/sysconfig/network
# Check that networking is up.
[ "${NETWORKING}" = "no" ] && exit 0
# Source bind configuration
[ -r /etc/sysconfig/named ] && . /etc/sysconfig/named
[ -f /usr/local/sbin/named ] || exit 0
[ -r /etc/named.conf ] || exit 0
RETVAL=0
prog="named"
start() {
# Start daemons.
echo -n $"Starting $prog: "
daemon /usr/local/sbin/named -u named ${OPTIONS}
RETVAL=$?
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/named
echo
return $RETVAL
}
stop() {
# Stop daemons.
echo -n $"Shutting down $prog: "
# /usr/sbin/rndc stop
killproc named
RETVAL=$?
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/named
echo
return $RETVAL
}
restart() {
stop
sleep 2
start
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
condrestart)
[ -f /var/lock/subsys/named ] && restart || :
;;
*)
echo "Usage: named {start|stop|restart|condrestart}"
exit 1
esac
exit $?
*その他のファイルの設定 [#i420b07c]
**/etc/hosts [#fd7645e5]
DNS サーバの情報と hosts の情報が不整合を起こさない為に localhost 以外はコメントアウト
**/etc/resolv.conf [#nc990c1d]
search xx.net
nameserver 127.0.0.1
nameserver プロバイダのDNSサーバー
**/etc/nsswitch.conf [#rf616528]
hostsの行にdnsが含まれていること
hosts: files nisplus nis dns
**/etc/host.conf [#sd6e5ed5]
order hosts,bind
*DDNSセットアップ [#j0c9cd5f]
[[DDNSセットアップ>Misc/DDNSセットアップ]]
*参考サイト [#l57dc86e]
-[[内部向け DNS サーバの構築 - Linux で自宅サーバ [ Home Server Technical. ]:http://www.miloweb.net/bind.html]]
-[[dns.html:http://www.geocities.co.jp/SiliconValley-Bay/9678/dns.html]]
-[[@IT:すべての基礎、マスター・ゾーンサーバの設定(1/3):http://www.atmarkit.co.jp/flinux/rensai/bind902/bind902a.html]]
-[[@IT:すべての基礎、マスター・ゾーンサーバの設定(2/3):http://www.atmarkit.co.jp/flinux/rensai/bind902/bind902b.html]]
-[[@IT:すべての基礎、マスター・ゾーンサーバの設定(3/3):http://www.atmarkit.co.jp/flinux/rensai/bind902/bind902c.html]]
-[[ISC BIND:http://www.isc.org/sw/bind/]]
-[[conf ファイル 1 (BIND8,9):http://www.wakhok.ac.jp/~kanayama/summer/02/site/node67.html]]
-[[[vine-users:067180] Re: bind9停止時のエラーについて:http://search.luky.org/vine-users.6/msg07180.html]]