ネームサーバーの設定

Solaris9への移行に伴い、このページ更新はされなくなりました。
インストールメモ等はこちらに移行します。


やっぱsolarisでしょ
solaris8の入手
ハードの準備
solaris8インストール
システムの起動と停止
ユーザーの作成
ネットワークの設定
基本ツールのインストール
ネームサーバーの設定
BIND Version 9
メールサーバーの設定
qmail-1.03
メールアーカイブの作成
インストールメモ
Solaris Tips
PostgreSQL+PHP4
solarisでブロードバンドルーター作成
Nagiosでネットワーク監視システム構築
vpopmail

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をインストールする前にopensslrandomをインストールしておきます。

インストール

$ 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のファイル構成

/usr/local/bind bindのルート、pidファイルが作成される
/usr/local/bind/etc named.confの置き場所
/usr/local/bind/local ローカル用のzoneファイルの置き場所
b-dash.net
192.168.0
localhost
127.0.0
named.root
/usr/local/bind/world 外部から参照されるzoneファイルの置き場所
b-dash.net
hogehoge.net
(このファイルは2nd受け持ちのプライマリサーバーよりzone転送される)

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