Dell Optiplex GXa Solaris 8  x86  6/00

戻る




BIND-9.2.1



	※ 事前に、libtool-1.4.2openssl-0.9.6eANDIrand-0.7
	の3つをインストールしておく必要がある。


	
	
必要なソフトウェア:
	bind-9.2.1.tar.gz
	ftp://ftp.isc.org/isc/bind9/9.2.1/
	
	

Domain 例:
	Domain1 = domain1.com
	FQDN = ns1.domain1.com
	IP Address = 203.141.134.78
	プライマリDNS = 自サーバ 203.141.134.78
	セカンダリDNS = tegtan1.interlink.or.jp 203.141.128.33
	
	バーチャルドメインとして、
	Domain2 = domain2.tv
	FQDN = domain2.tv
	IP Address = 203.141.134.78
	プライマリDNS = ns1.domain1.com 203.141.134.78
	セカンダリDNS = tegtan2.interlink.or.jp 203.141.128.34



構 成:

外部・内部それぞれの問い合わせに対する応えを変えるため、split DNSを使用する。






準 備

SuperUserになる。
	$ su
	password:

新規グループnamedを作成する。
	# groupadd named

新規ユーザーnamedを作成する。
	# useradd -g named -s /bin/false named

一般ユーザーに戻る。
	$ exit



インストール:

作業ディレクトリを作成する。
	$ mkdir /opt/src/bind-9.2.1

作成したディレクトリに移動する。
	$ cd /opt/src/bind-9.2.1

アーカイブをダウンロードする。
	$ wget ftp://ftp.isc.org/isc/bind9/9.2.1/bind-9.2.1.tar.gz

解凍展開する。
	$ tar xozf bind-9.2.1.tar.gz

展開されたディレクトリに移る。
	$ cd bind-9.2.1

cshやtcshではうまくいかないので、shになる。
	$ sh

環境変数を指定しつつ最適化させる。
	$ CC=gcc ./configure --with-libtool \
	--with-openssl=/usr/local/ssl

コンパイルする。
	$ make	(結構時間がかかる)

SuperUserになる。
	$ su
	password:

インストールする。
	# make install
 


キーの作成

/etc/rndc.keyを作成させる
	# /usr/local/sbin/rndc-confgen -a

共通鍵を作成する。
	# dnssec-keygen -a hmac-md5 -b 512 -n HOST domain1

現在自分がいるディレクトリの直下にKdomain1.+123+45678.keyとKdomain1.+123x+45678.private
が作成されたので、moreなりcatなりlessなりでKdomain1.+123+45678.privateを開く。
	#cat Kdomain1.+123+45678.private

例えば以下のような鍵が表示されるので、keyをメモ(メモリにコピー)しておく。
	Private-key-format: v1.2
	Algorithm: 157 (HMAC_MD5)
	Key: AheAheAheAheAheAheAheAheAheAheAhe=

忘れないうちに共通鍵ファイルを削除する。
	# rm Kdomain1.*



設 定:

/etc/rndc.confをviで作成する。
# vi /etc/rndc.conf

以下の内容を記述して保存する。(secretには上記のKeyを貼り付ける)

	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	options {
		default-server 127.0.0.1;
		default-key     "domain1";
	};
	server 127.0.0.1{
		key "domain1";
	};
	key "domain1" {
		algorithm hmac-md5;
		secret  "AheAheAheAheAheAheAheAheAheAheAhe=";
	};
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

作成したrndc.confと、rndc.keyのパーミッションを厳しくしておく。
	# chmod 600 /etc/rndc.conf /etc/rndc.key

また、所有ユーザーと所属グループもnamedに変更しておく。
	# chown named:named /etc/rndc.conf /etc/rndc.key



/etc/named.confをviで作成する。
	# vi /etc/named.conf

以下の内容を記述して保存する。

	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	options {
		directory "/var/named";
		auth-nxdomain yes;
		pid-file "/var/named/named.pid";
		version "10.3.2";
	};
	
	controls {
		inet 127.0.0.1 allow { 127.0.0.1; } keys { domain1; };
	};

	key "domain1" {
		algorithm hmac-md5;
		secret "AheAheAheAheAheAheAheAheAheAheAhe=";
	};

	view "internal" {
		match-clients { 192.168.0.0/24; 127.0.0.0/8; };
		recursion yes;

		zone "." {
			type hint;
			file "root.cache";
		};

		zone "localhost" {
			type master;
			file "localhost.zone";
		};

		zone "0.0.127.in-addr.arpa" {
			type master;
			file "localhost.rev";
		};

		zone "domain1.com" {
			type master;
			file "domain1.com.internal.zone";
			allow-transfer {
				127.0.0.1;
				192.168.0.0/24;
			};
		};

		zone "domain2.tv" {
			type master;
			file "domain2.tv.internal.zone";
			allow-transfer {
				127.0.0.1;
				192.168.0.0/24;
			};
		};


		zone "0.168.192.in-addr.arpa" {
			type master;
			file "255.168.192.in-addr.arpa";
			allow-transfer {
				127.0.0.1;
				192.168.255.0/24;
			};
		};

		zone "134.141.203.in-addr.arpa" {
			type slave;
			file "134.141.203.in-addr.arpa";
			allow-transfer {
				127.0.0.1;
				192.168.0.0/24;
			};
			masters {
				203.141.128.34;
			};
		};
	};


	view "external" {
		match-clients { any; };
		recursion no;

		zone "domain1.com" {
			type master;
			file "domain1.com.external.zone";
			allow-transfer {
				203.141.128.33;
			};
		};

		zone "domain2.tv" {
			type master;
			file "domain2.tv.external.zone";
			allow-transfer {
				203.141.128.34;
			};
		};
	};
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



	※上記のoptionsのversionは、自分が使っているDNSの
	 バージョンを秘匿するための記述。" "の中は空欄でも可。

	 因みに、相手のDNS(例:dns1.domain.net)のバージョンを調べる場合
	 dig では、
	    dig @dns1.domain.net CHAOS version.bind TXT

	 nslookupでは、
	    $ nslookup
	    > server dns1.domain.net
	    Default server: dns1.domain.net
	    Address: 192.168.1.10#53
	    > set type=txt
	    > set class=chaos
	    > version.bind
	    Server:         dns1.domain.net
	    Address:        192.168.1.10#53
	    VERSION.BIND    text = "10.3.2"

	 を実行するとこんな感じで表示される。

作成した/etc/named.confのパーミッションを厳しくしておく。
	# chmod 600 /etc/named.conf

また、所有ユーザーと所属グループもnamedに変更しておく。
	# chown named:named /etc/named.conf



ゾーンファイルを格納しておくディレクトリを作成する。
	# mkdir /var/named

作成したディレクトリに移動する。
	# cd /var/named/

外向(External)用の正引ゾーンファイルdomain1.com.external.zoneをviで作成する。
	# vi /var/named/domain1.com.external.zone

以下の内容を記述して保存する。

	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	; domain1.com For External
	; GROUPE Domain1(domain1.com) host to IP address Infomation
	;
	$TTL 86400
	@               IN      SOA     ns1.domain1.com. you.domain1.com. (
	                2002050401      ;Serial
	                10800           ;Refresh
	                1800            ;Retry
	                4320000         ;Expire
	                86400           ;Minimum
	                )
	                IN      NS      ns1.domain1.com.
	                IN      NS      tegtan1.interlink.or.jp.
	                IN      NS      tegtan2.interlink.or.jp.
	                IN      MX  10  mail.domain1.com.
	; Host Infomation --------------------------------------------------------
	ns1	IN	A       203.141.134.78
	ns	IN	CNAME	ns1.domain1.com.
	mail	IN	CNAME	ns1.domain1.com.
	pop	IN	CNAME	ns1.domain1.com.
	smtp	IN	CNAME	ns1.domain1.com.
	www	IN	CNAME	ns1.domain1.com.
	www2	IN	CNAME	ns1.domain1.com.
	ftp	IN	CNAME	ns1.domain1.com.
	;-------------------------------------------------------------------------
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


内向(Internal)用の正引ゾーンファイルdomain1.com.internal.zoneをviで作成する。
	# vi /var/named/domain1.com.internal.zone

以下の内容を記述して保存する。

	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	; domain1.com For Internal
	; GROUPE Domain1(domain1.com) host to IP address Infomation
	;
	$TTL 86400
	@               IN      SOA     ns1.domain1.com. you.domain1.com. (
	                2002050401      ;Serial
	                10800           ;Refresh
	                1800            ;Retry
	                4320000         ;Expire
	                86400           ;Minimum
	                )
	                IN      NS      ns1.domain1.com.

	                IN      MX  10  mail.domain1.com.
	; Host Infomation --------------------------------------------------------
	ns1	IN	A       192.168.0.150
	ns	IN	CNAME	ns1.domain1.com.
	mail	IN	CNAME	ns1.domain1.com.
	pop	IN	CNAME	ns1.domain1.com.
	smtp	IN	CNAME	ns1.domain1.com.
	www	IN	CNAME	ns1.domain1.com.
	www2	IN	CNAME	ns1.domain1.com.
	ftp	IN	CNAME	ns1.domain1.com.
	;-------------------------------------------------------------------------
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


バーチャルドメインの外向(External)用正引ゾーンファイルdomain2.tv.external.zoneをviで作成する。
	# vi /var/named/domain2.tv.external.zone

以下の内容を記述して保存する。

	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	; domain2.tv For External
	; GROUPE Domain(domain2.tv) host to IP address Infomation
	;
	$TTL 86400
	@               IN      SOA     ns1.domain1.com. you.domain1.com. (
	                2002050401      ;Serial
	                10800           ;Refresh
	                1800            ;Retry
	                4320000         ;Expire
	                86400           ;Minimum
	                )
	                IN      NS      ns1.domain1.com.
	                IN      NS      tegtan2.interlink.or.jp.
	                IN      MX  10  mail.domain2.tv.
	; Host Infomation --------------------------------------------------------
	domain2.tv.	IN	A       203.141.134.78
	mail	IN	CNAME	domain2.tv.
	www	IN	CNAME	domain2.tv.
	ftp	IN	CNAME	domain2.tv.
	;-------------------------------------------------------------------------
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


バーチャルドメインの内向(Internal)用正引ゾーンファイルdomain2.tv.internal.zoneをviで作成する。
	# vi /var/named/domain2.tv.internal.zone

以下の内容を記述して保存する。

	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	; domain2.tv For Internal
	; GROUPE Domain(domain2.tv) host to IP address Infomation
	;
	$TTL 86400
	@               IN      SOA     ns1.domain1.com. you.domain1.com. (
	                2002050401      ;Serial
	                10800           ;Refresh
	                1800            ;Retry
	                4320000         ;Expire
	                86400           ;Minimum
	                )
	                IN      NS      ns1.domain1.com.

	                IN      MX  10  mail.domain2.tv.
	; Host Infomation --------------------------------------------------------
	domain2.tv.	IN	A       192.168.0.150
	mail	IN	CNAME	domain2.tv.
	www	IN	CNAME	domain2.tv.
	ftp	IN	CNAME	domain2.tv.
	;-------------------------------------------------------------------------
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


localhostの正引ゾーンファイルをviで作成する。
	# vi /var/named/localhost.zone

以下の内容を記述して保存する。

	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	; localhost.zone
	; Local loop back file of  host to IP address
	$TTL 3600
	@       IN      SOA     domain1.com. you.domain1.com.  (
	                2002050401
	                10800
	                1800
	                4320000
	                86400 )

	                        IN      NS      domain1.com.
	localhost.              IN      A       127.0.0.1
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


localhostの逆引ゾーンファイルをviで作成する
# vi /var/named/localhost.rev

以下の内容を記述して保存する。

	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	; localhost.rev
	; Local loop back file of IP address to host
	$TTL 86400
	@       IN      SOA     domain1.com. you.domain1.com.  (
	                20020504011
	                10800
	                1800
	                4320000
	                86400 )

	                IN      NS      domain1.com.
	1               IN      PTR     localhost.
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

LANの逆引きゾーンファイルをviで作成する。
	# vi /var/named/0.168.192.in-addr.arpa

以下の内容を記述して保存する。

	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
	; 0.168.192.in-addr.arpa
	; LAN DNS rev file
	$TTL 86400
	@       IN      SOA     domain1.com. you.domain1.com.  (
	                20020504011
	                10800
	                1800
	                4320000
	                86400 )

			IN	NS	domain1.com.
	;----------------------------------------------------------
	1		IN	PTR	MN128-SOHO.domain1.com.
	2		IN	PTR	client1.domain1.com.
	3		IN	PTR	clinet2.domain1.com.
	150		IN	PTR	ns1.domain1.com.
	;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


rootDNSの定義ファイルをダウンロードする。
	# wget ftp://rs.internic.net/domain/named.root

ダウンロードした定義ファイルの名前を変更する。
	# mv named.root /var/named/root.cache


上記で作成したディレクトリとその中の各ゾーンファイルのパーミッションを厳しくしておく。
	# chmod 600 /var/named
	# chmod 600 /var/named/*

また、所有ユーザーと所属グループもnamedに変更しておく。
	# chown -R named:named /var/named



起動ファイルの編集。このままだと再起動時に OS付属の in.named が起動してしまうので、起動
ファイルをviで開いて編集しておく。 
	# vi /etc/rc2.d/S72inetsvc

以下のように変更記述して保存する。

===============================================================
.......省略
'stop')
        #/usr/bin/pkill -x -u 0 'in.named|inetd'		<---- コメントアウト
        /usr/bin/pkill -x -u 0 -u named  'named|inetd'			<---- 新規記述
        exit 0
        ;;

.......省略

#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 /etc/named.conf ]; then		<---- 新規記述
/usr/local/sbin/named -u named ;  echo "starting internet domain name server."	<---- 新規記述
fi								<---- 新規記述

.......省略
===============================================================


* スタティックリンクが張られているので /etc/init.d/inetsvc も変更される。

namedを一度終了させる
	# /etc/rc2.d/S72inetsvc stop

改めて起動させる
	# /etc/rc2.d/S72inetsvc start

/var/adm/messages にエラーが出ていないかを調べる。
	# tail /var/adm/messages

	May 04 00:00:10 ns1 named[1552]: [ID 866145 daemon.notice] stopping command channel on 127.0.0.1#953
	May 04 00:00:10 ns1 named[1552]: [ID 866145 daemon.notice] exiting
	May 04 00:00:20 ns1 named[1567]: [ID 866145 daemon.notice] starting BIND 9.2.1-u named
	May 04 00:00:20 ns1 named[1567]: [ID 866145 daemon.notice] command channel listening on 127.0.0.1#953