File last modified 2002/11/10 16:38
BIND-9のインストールとセットアップ
過去のページ(bind-8.1.2)
bind-9.2.0のインストール
BINDの入手先:http://www.isc.org/products/BIND/
bind9ではrndcというtoolで、bindをコントロールすることができます。
ここではsolaris8 x86 にてrndcを使えるようにインストールします。
はじめに
ここではISPより割り当てられた1つのグローバルな固定IPアドレスによるドメイン運用を想定しています。
外部より参照されるゾーンは正引きのみで、逆引きの設定はしていません。
逆引きで参照されるFQDNはISPが割り当てたものになります。
内部で使うゾーンファイルはローカルIPアドレスの設定にて運用します。
以前のBINDでは内部向け外部向けにnamedを複数起動する必要がありましたが、
named.confのaclオプション、match-clients設定にて参照元IPアドレスにより参照させるゾーンファイルを切り替えできるようになり、
複数のnamedを起動する必要がなくなりました。
前準備
bindをインストールする前にopensslとrandomをインストールしておきます。
インストール
$ tar xvzf bind-9.2.0.tar.gz
$ cd bind-9.2.0
$ ./configure --with-openssl=/usr/local/ssl
$ make
$ su
# make install
bind用ユーザー&グループ作成
# groupadd bind
# useradd -g bind -d /usr/local/bind bind
# mkdir /usr/local/bind
# mkdir /usr/local/bind/etc
# mkdir /usr/local/bind/local
# mkdir /usr/local/bind/world
# chown -R bind:bind /usr/local/bind
vipwを使用し、bindのshellを無効なshellに変更する(bindにshellを持たせないため)
# /usr/ucb/vipw
viが起動されるので、bindの行を以下のように変更保存(:wq)し、終了する。
'q'にてvipwを終了する
bind:x:1003:100::/usr/local/bind:/bin/sh
から
bind:x:1003:100::/usr/local/bind:/bin/nosh
TIMEZONEのコピー
# cd /usr/local/bind
# mkdir -p usr/share/lib
# cp -R /usr/share/lib/zoneinfo usr/share/lib/
/etc/rndc.keyの作成
# /usr/local/sbin/rndc-confgen -a
ここで/dev/randomが未インストールの場合キー入力を要求されるので、
ひたすらキーをうちまくる。
共通鍵の作成
# dnssec-keygen -a hmac-md5 -b 256 -n HOST hostname
カレントに.keyと.privateが作成される。(後で消す)
hostnameの部分は適当につける
/etc/rndc.confの作成
# vi /etc/rndc.conf
hostname の部分は上記でつけた名前。
secret に上記 .private のkey: 以降のキーを記入
options {
default-server 127.0.0.1;
default-key "hostname";
};
server 127.0.0.1{
key "hostname";
};
key "hostname" {
algorithm hmac-md5;
secret "xCLuY6WXL9asdfghjkloldsOD7ucA53iykCMADklvbI=";
};
# chmod 600 /etc/rndc.conf /etc/rndc.key
/usr/local/bindのファイル構成
named.confの作成
/usr/local/bind/etc/named.conf
//
//ローカルネットワークの範囲を指定
acl "localnet" {
localhost;
192.168.0.0/24;
};
//全体のオプション
options {
directory "/";
pid-file "/named.pid";
allow-query {localnet;};
allow-transfer {localnet;};
auth-nxdomain no;
};
//hostnameとkey sercretをrndc.confと合わせる
controls {
inet 127.0.0.1 allow { localhost; } keys { hostname; };
};
key "hostname" {
algorithm hmac-md5;
secret "xCLuY6WXL9asdfghjkloldsOD7ucA53iykCMADklvbI=";
};
//ローカルネットワークから参照されるゾーン
view "local" {
match-clients { localnet; };
zone "." {
type hint;
file "local/named.root";
};
zone "b-dash.net" {
type master;
file "local/b-dash.net";
};
zone "0.168.192.in-addr.arpa" {
type master;
file "local/192.168.0";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "local/127.0.0";
};
zone "localhost" {
type master;
file "local/localhost";
};
};
//外部から参照されるゾーン
view "world" {
match-clients { any; };
allow-query { any; };
zone "b-dash.net" {
type master;
file "world/b-dash.net";
allow-transfer { localnet; xxx.xxx.xxx.xxx; };//セカンダリサーバーにzone転送を許可する
};
//2ndを受け持つドメイン用のゾーンファイル
zone "hogehoge.net." {
type slave;
file "world/hogehoge.net";
allow-transfer {xxx.xxx.xxx.xxx; };
masters { xxx.xxx.xxx.xxx; };
};
};
zoneファイルの作成
named.confで指定した各ファイルを作成します
/usr/local/bind/local/b-dash.net
$TTL 86400 ;1day
@ IN SOA nwtk01.b-dash.net. postmaster.netk01.b-dash.net.(
2001070701 ;serial
10800 ;refresh(3h)
3600 ;retry(1h)
604800 ;expire(1w)
86400 ;minimum(1d)
)
NS nwtk01
MX 10 mail
nwtk01 IN A 192.168.0.3 <------ここはローカルのIPアドレス
ns01 IN CNAME nwtk01.b-dash.net.
www IN CNAME nwtk01.b-dash.net.
mail IN CNAME nwtk01.b-dash.net.
各ゾーンデータベースファイルの書式
書式:
key@はORIGIN(オリジン)を表し、カレントドメイン名の省略形
key IN resource-record value
(1) resource-recordがSOA(Start Of Authority)の場合の書式:
key IN SOA nameserver postmasetr (・・・・・)
nameserverはネームサーバーのFQDN
postmasterはネームサーバーの管理者宛メールアドレス。通常のアドレスとは異なり@の代わりにドットで区切る
(・・・・・)には次の数字が入る。セミコロン(;)以下はコメント
・serial データファイルのシリアル番号。ファイル更新時には必ず数字を増やす。
・refresh セカンダリサーバがプライマリサーバのserial値をチェックする間隔。
・retry セカンダリサーバがプライマリサーバ参照に失敗した場合の再試行間隔。
・expire セカンダリサーバがプライマリサーバ参照に失敗した場合、データを破棄するまでの時間。
・minimum キャッシュした情報の保持時間。
(2) key省略時には前レコードのkeyを引き継ぎます。resource-recordはNS(Name Server)であり、ネームサーバーが
sol であることを定義しています。
(3) 同じく resource-recordはMX(Mail eXchenger)であり、このドメイン宛のメールを送付するホストを指定します。"10"はMXレコードにおけるプリファレンス値。同一ドメイン内に複数のメールサーバがある場合に、次の行に"20
mail2"の記述があれば、mailへの配送失敗時にmail2に配送を試みます。
(4) resource-recordはA(Address)であり、ホスト名とIPアドレスの対応を表します。この場合、nwtk01のIPアドレスが192.168.0.3であることを定義しています。nwtk01
のように後ろにドットを付けない不完全指定ではカレントドメイン名(b-dash.net)が付加され、nwtk01.b-dash.netというFQDNになります。
(5) resource-recordはCNAME(Cannonical Name)であり、マシンの別名を定義します。この場合、nwtk01の別名をそれぞれ、ns01
mail www と定義しています。
/usr/local/bind/local/192.168.0
$TTL 86400 ;1day
@ IN SOA nwtk01.b-dash.net. postmaster.netk01.b-dash.net.(
2001070701 ;serial
10800 ;refresh(3h)
3600 ;retry(1h)
604800 ;expire(1w)
86400 ;minimum(1d)
)
IN NS nwtk01
3 IN PTR nwtk01.b-dash.net.
(1) SOAレコードは前記と同じ。ただし逆引きのオリジン(@)は0.168.192.in-addr.arpaです。
(2) resource-recordはPTR(Point TeR)であり、IPアドレスに対するホスト名を定義します。この場合の3は、ドットが付いていないため、逆引きのIPアドレス3.0.168.192.in-addr.arpaに対するホスト名はnwtk01.b-dash.net.になります。
/usr/local/bind/local/localhost
$TTL 86400 ;1day
@ IN SOA localhost. postmaster.localhost.(
2001062501 ;serial
10800 ;refresh(3h)
3600 ;retry(1h)
604800 ;expire(1w)
86400 ;minimum(1d)
)
IN NS localhost.
localhost. IN A 127.0.0.1
/usr/local/bind/local/127.0.0
$TTL 86400 ;1day
@ IN SOA localhost. postmaster.localhost.(
2001062501 ;serial
10800 ;refresh(3h)
3600 ;retry(1h)
604800 ;expire(1w)
86400 ;minimum(1d)
)
NS localhost.
1 PTR localhost.
/usr/local/bind/local/named.root
rootcacheファイルは世界のトップドメインを記述します。
ftp.rs.internic.net/domain/named.rootより、最新のこのファイルを入手し/usr/local/bind/named.rootとして保存します。
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache . <file>"
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC registration services
; under anonymous FTP as
; file /domain/named.root
; on server FTP.RS.INTERNIC.NET
; -OR- under Gopher at RS.INTERNIC.NET
; under menu InterNIC Registration Services (NSI)
; submenu InterNIC Registration Archives
; file named.root
;
; last update: Aug 22, 1997
; related version of root zone: 1997082200
;
;
; formerly NS.INTERNIC.NET
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; formerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; formerly NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; formerly NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
;
; formerly NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
;
; formerly NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
;
; temporarily housed at NSI (InterNIC)
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
;
; housed in LINX, operated by RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
;
; temporarily housed at ISI (IANA)
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
;
; housed in Japan, operated by WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
; End of File
/usr/local/bind/world/b-dash.net
ここがミソですが、ここにはISPより割り当てられたグローバルIPアドレスを記述
$TTL 86400 ;1day
@ IN SOA nwtk01.b-dash.net. postmaster.netk01.b-dash.net.(
2001070701 ;serial
10800 ;refresh(3h)
3600 ;retry(1h)
604800 ;expire(1w)
86400 ;minimum(1d)
)
NS nwtk01
NS ns.hogehoge.net. <------セカンダリDNSサーバー
MX 10 mail
nwtk01 IN A 61.115.xxx.xxx <------グローバルIPアドレス
ns01 IN A 61.115.xxx.xxx <------CNAMEを使わずAを使う
www IN A 61.115.xxx.xxx
mail IN A 61.115.xxx.xxx
ftp IN A 61.115.xxx.xxx
リゾルバの設定
ネットワークの設定では/etc/resolv.confファイルに外部のDNSを設定しましたが、ここでは以下のように変更します。
/etc/resolv.conf
domain b-dash.net
nameserver 127.0.0.1
hostsファイルの変更
同じく/etc/hostsファイルに別名定義を追加します。
# Internet host table
#
127.0.0.1 localhost
192.168.0.3 nwtk01 www mail ns01 loghost
BINDの起動
上記の設定が完了したらBINDを起動します。
# /usr/local/sbin/named -u bind -t /usr/local/bind &
messagesにエラーがないか確認する。
# tail -30 /var/adm/messages
rndcが起動するか確認
# rndc
BINDの起動ファイル作成
bindは/etc/rc2.d/S72inetsvcより起動されているので、編集します。
# vi /etc/rc2.d/S72inetsvc
18行目付近
'stop')
# /usr/bin/pkill -x -u 0 'in.named|inetd' <------この行をコメントアウト
/usr/bin/pkill -x -u 0 'named|inetd' <------この行を追加
exit 0
75行目付近
##if [ -f /usr/sbin/in.named -a -f /etc/named.conf ]; then <----ここから
## echo 'starting internet domain name server.'
## /usr/sbin/in.named &
##fi <----ここまでコメントアウト
##以下の行を追加
if [ -f /usr/local/sbin/named -a -f /usr/local/bind/etc/named.conf ]; then
echo 'starting internet domain name server BIND-9'
/usr/local/sbin/named -u bind -t /usr/local/bind &
fi
|