2.4 DNS(Bind)
(1) ソースファイルの準備
Unix上で動作するDNSとしては通常Bindを使用います。ここではBind 8.1.2を使用し、インストールおよび設定を行っています。まず、ソースファイルを入手します。本論文でのBindの入手先は雑誌の付録CD-ROMです。
(2) アーカイブファイルのコピー
CD-ROMを「/mnt/cdrom」にマウントします。
mount -t iso9660 /dev/cdrom /mnt/cdrom
(3) アーカイブファイルの展開
/usr/src# mkdir bind-8.1.2
/usr/src# cd bind-8.1.2
/usr/src/bind-8.1.2# tar xvzf ../bind-8.1.2-src.tar.gz
(4) Makeファイルの作成
・不要なファイルの削除
/usr/src/bind-8.1.2/src# make clean
以下のように表示されます。
/usr/src/bind8.1.2/src/include
make[1]: Entering directory `/usr/src/bind8.1.2/src/include'
/usr/src/bind8.1.2/src/include/arpa
make[2]: Entering directory `/usr/src/bind8.1.2/src/include/arpa'
rm -f *~ *.BAK *.CKP *.orig
・
・(中略)
・
make[2]: Entering directory `/usr/src/bind8.1.2/src/bin/nsupdate'
rm -f nsupdate nsupdate.o core .depend
rm -f *.BAK *.CKP *~ *.orig
make[2]: Leaving directory `/usr/src/bind8.1.2/src/bin/nsupdate'
rm -f *.BAK *.CKP *~ *.orig
make[1]: Leaving directory `/usr/src/bind8.1.2/src/bin'
rm -f .systype .settings
・依存関係記述ファイルの作成
/usr/src/bind-8.1.2/src# make depend
以下のように表示されます。
/usr/src/bind8.1.2/src/include
make[1]: Entering directory `/usr/src/bind8.1.2/src/include'
/usr/src/bind8.1.2/src/include/arpa
make[2]: Entering directory `/usr/src/bind8.1.2/src/include/arpa'
make[2]: Nothing to be done for `depend'.
・
・(中略)
・
/usr/src/bind8.1.2/src/bin/nsupdate
make[2]: Entering directory `/usr/src/bind8.1.2/src/bin/nsupdate'
mkdep -p -I../../include -I../../port/linux/include nsupdate.c
make[2]: Leaving directory `/usr/src/bind8.1.2/src/bin/nsupdate'
make[1]: Leaving directory `/usr/src/bind8.1.2/src/bin'
(5) バイナリの構築
・makeでコンパイル
/usr/src/bind-8.1.2/src# make
以下のように表示されます。
/usr/src/bind8.1.2/src/include
make[1]: Entering directory `/usr/src/bind8.1.2/src/include'
/usr/src/bind8.1.2/src/include/arpa
make[2]: Entering directory `/usr/src/bind8.1.2/src/include/arpa'
make[2]: Nothing to be done for `all'.
make[2]: Leaving directory `/usr/src/bind8.1.2/src/include/arpa'
/usr/src/bind8.1.2/src/include/isc
・
・(中略)
・
gcc -O -g -o nsupdate nsupdate.o \
../../lib/libbind.a -lfl
make[2]: Leaving directory `/usr/src/bind8.1.2/src/bin/nsupdate'
make[1]: Leaving directory `/usr/src/bind8.1.2/src/bin'
※注意:コンパイル時にエラーがでればgcc のバージョンアップが必要となります。
(6) インストール
・make installでインストール
make install
以下のように表示されます。
/usr/src/bind8.1.2/src/include
make[1]: Entering directory `/usr/src/bind8.1.2/src/include'
/usr/src/bind8.1.2/src/include/arpa
make[2]: Entering directory `/usr/src/bind8.1.2/src/include/arpa'
set -x; for x in inet.h nameser.h nameser_compat.h; do \
install -c -m 444 $x /usr/local/bind/include/arpa/$x; \
done
・
・(中略)
・
install -c -m 755 ndc /usr/sbin/ndc
make[2]: Leaving directory `/usr/src/bind8.1.2/src/bin/ndc'
/usr/src/bind8.1.2/src/bin/nsupdate
make[2]: Entering directory `/usr/src/bind8.1.2/src/bin/nsupdate'
install -c -m 755 nsupdate /usr/bin/nsupdate
make[2]: Leaving directory `/usr/src/bind8.1.2/src/bin/nsupdate'
make[1]: Leaving directory `/usr/src/bind8.1.2/src/bin'
デフォルトでインストールされるパスを以下に示します。正常に起動しない場合に確認してください。
・/usr/local/bind/include/{arpa, isc, sys, net} ヘッダファイル群
・/usr/local/bind/lib/libbind.a スタティック・ライブラリ
・/usr/bin/addr ?
・/usr/bin/nslookup named チェックツール
・/usr/lib/nslookup.help nslookup のヘルプ
・/usr/bin/dig ネームサーバーへ DNS 問い合わせのパケットを送信します
・/usr/bin/dnsquery リゾルバを使ってネームサーバーへの問い合わせを行います
・/usr/bin/host ネームサーバーを使ってホスト名の問い合わせを行います
・/usr/sbin/named named 本体
・/usr/sbin/named-xfer ゾーン転送プログラム
・/usr/sbin/ndc ネームサーバー制御インターフェース
・/usr/bin/nsupdate 動的更新用ツール
(7) 環境設定
・各種設定ファイル
PASS: /etc/named.conf
ファイル名: named.conf
・設定内容
options {
directory "/etc"; // use current directory
};
zone "." {
type hint; // what used to be called "primary"
file "named.ca";
};
zone "localhost" {
type master; // what used to be called "primary"
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" {
type master; // what used to be called "primary"
file "named.local";
};
zone "oitalinux.or.jp" {
type master; // what used to be called "primary"
file "oitalinux.or.jp.zone";
};
zone "0.254.169.in-addr.arpa" {
type master; // what used to be called "primary"
file "0.254.169.rev";
};
PASS: /etc/localhost.zone
ファイル名: localhost.zone
@ IN SOA ホスト名.ドメイン名.. postmaster.ドメイン名. (
42 ; serial
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN A 127.0.0.1
localhost.rev
@ IN SOA ホスト名.ドメイン名. postmaster.ドメイン名. (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS eva11.eva.
IN PTR localhost.
PASS: /etc/xxx.zone(xxxは任意)
ファイル名:xxx.zone
zoneという拡張子のファイルを作成し、接続許可クライアントのIPアドレスを登録します。zoneファイルは正引きデータベースでドメインの中のホスト名からIPアドレスを取得するために使用します。
・設定例
@ IN SOA ホスト名.ドメイン名. postmaster.ドメイン名. (
42 ; serial
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN MX 10 メールサーバ名.ドメイン名.
IN NS ネームサーバー名.ドメイン名.
localhost. IN A 127.0.0.1
ホスト1.ドメイン名. IN A 192.168.0.10
ホスト2.ドメイン名. IN A
別名1.ドメイン名. IN CNAME ホスト1.ドメイン名.
別名2.ドメイン名. IN CNAME ホスト2.ドメイン名.
PASS: /etc/oitalinux_or_jp.zone
ファイル名:oitalinux_or_jp.zone
・実際に設定した項目
今回は2台のクライアントマシンのIPアドレスを登録しています。ファイル名にはドメイン名を使用しています。
@ IN SOA itono.oitalinux.or.jp. root.oitalinux.or.jp. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS oitalinux.or.jp.
IN MX 10 itono.oitalinux.or.jp.
Itono IN A 169.254.0.1
Tnstyle IN A 169.254.0.199
www IN CNAME itono.oitalinux.or.jp.
mail IN CNAME itono.oitalinux.or.jp.
# localhost IN A 127.0.0.1
PC0IIY02 IN A 169.254.0.5
PASS: /etc/xxx.rev(xxxは任意)
ファイル名:xxx.rev
revという拡張子のファイルを作成し、接続許可クライアントのドメイン名を登録します。revファイルは逆引きデータベースでIPアドレスからドメインとホスト名を取得するために使用します。
・設定例
@ IN SOA ホスト名.ドメイン名. postmaster.ドメイン名. (
42 ; serial
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS ネームサーバー名.ドメイン名.
10 IN PTR ホスト1.ドメイン名.
11 IN PTR ホスト2.ドメイン名.
ここで2台のクライアントマシンのドメイン名を登録しています。
PASS: /etc/0.254.169.rev
ファイル名:0.254.169.rev
・設定項目
@ IN SOA itono.oitalinux.or.jp. root.oitalinux.or.jp. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS itono.oitalinux.or.jp. //DNSサーバーを指定
IN PTR oitalinux.or.jp. //ドメイン名を指定
IN A 255.255.255.0 //mask指定
1 IN PTR itono.oitalinux.or.jp. //自マシン名を指定
//以下に接続を許可するクライアント指定
199 IN PTR tnstyle.oitalinux.or.jp.
5 IN PTR PC0IIY02.oitalinux.or.jp.
外部と接続する場合は以下についても確認してください。これはjpnicの指定に基づいています。この設定により、jpnicで管理しているルートDNSサーバーに接続することができるようになります。
root.cache(jpnic指定)
; 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 198.41.0.10
;
; 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
外部と接続するのでなく、組織内でのみ利用するような場合、このキャッシュファイルを使用しません。以下のダミーキャッシュを作成しましょう。
/etc/root.cache
; This file holds the information on root name servers needed to
; root.cache for vision.alphasystem.com 1996/12/29 A,hoshino
;
. 99999999 IN NS itono.oitalinux.or.jp.
itono.oitalinux.or.jp. 99999999 A 169.254.0.1
; End of File
(8) Bindの動作チェック
nslookupを使用してbindの動作確認をします。
[root@itono /root]# nslookup
Default Server: itono.oitalinux.or.jp
Address: 169.254.0.1
> 169.254.0.1
Server: itono.oitalinux.or.jp
Address: 169.254.0.1
Name: itono.oitalinux.or.jp
Address: 169.254.0.1
> itono.oitalinux.or.jp
Server: itono.oitalinux.or.jp
Address: 169.254.0.1
Non-authoritative answer:
Name: itono.oitalinux.or.jp
Address: 169.254.0.1
> itono
Server: itono.oitalinux.or.jp
Address: 169.254.0.1
Non-authoritative answer:
Name: itono.oitalinux.or.jp
Address: 169.254.0.1
> www.oitalinux.or.jp
Server: itono.oitalinux.or.jp
Address: 169.254.0.1
Non-authoritative answer:
Name: itono.oitalinux.or.jp
Address: 169.254.0.1
Aliases: www.oitalinux.or.jp
>
・hostsの設定
TurboLunuxではhostsを以下のNetwork Configuratorというアプリケーションで設定できます。
図2.4.1 hostsの設定
(9) Bindの起動
・Bindの自動起動設定
# vi /etc/rc.d/rc.local
/usr/local/bind/named/named
各マシンのDNSは/etc/resolv.confを記述します。再設定後、再起動は必要となります。
(10) Bindの今後の展開
現段階では「バージョン9」の正式リリースが間近で、マルチプロセッサーの対応が盛り込まれているようです。インターネットの普及がますます広がり、DNSにも高速化をする必要が出てきたためです。今後のBindの展開としては、多国間に普及しているインターネットに対応するためマルチリンガル(多言語)サポートが大いに期待されるでしょう。水面下では既にマルチリンガル化の計画が進行しているようです。近い将来ドメインが「http://大分県情報サービス産業協会.団体.日本/」となることでしょう。