FreeBSD/BIND8
BIND8を使う †
BIND8を使いDNSサーバを立ててみる
ソースを持ってくる †
ISC http://www.isc.org より最新のtarballをダウンロードする。
最新はbind8.4.6(2005年6月3日現在)
> wget ftp://ftp.isc.org/isc/bind/src/8.4.6/bind-src.tar.gz
ソースの展開 †
> tar zxvf bind-src.tar.gz
インストール †
> cd ./src > make > su # make install
設定ファイルを編集(resolv.cnf,host.conf,hosts) †
▼ネームサーバの問い合わせ順を設定する
# vi resolv.conf --------------------------------- domain s-matsui.com nameserver 127.0.0.1 nameserver xxx.yyy.zzz.com nameserver aaa.bbb.ccc.ne.jp ---------------------------------
▼hostsを設定する
#vi /etc.hosts --------------------------------- ::1 localhost.仮名.ne.jp localhost 127.0.0.1 localhost.仮名.ne.jp localhost 192.168.1.2 ns.仮名.ne.jp ns 192.168.1.2 ns.仮名.ne.jp. ---------------------------------
▼/etc/host.conf編集。
hostsとbindとnisとどれを先に検索して名前解決するか。 # vi /etc/host.conf --------------------------------- # $FreeBSD: src/etc/host.conf,v 1.6 1999/08/27 23:23:41 peter Exp $ # First try the /etc/hosts file hosts # Now try the nameserver next. bind # If you have YP/NIS configured, uncomment the next line # nis ---------------------------------
/etc/named.confの設定 †
記述が4つの部分に分かれているのがわかるかと思います。
最初が、ローカルアドレスの正引きファイル定義、以降、順に、ローカルアドレスの逆引きファイル定義、
グローバルアドレスの正引きファイル定義、グローバルアドレスの逆引きファイル定義です。
allow-update、allow-transfer、allow-query などと記述しているところは、その正引き~逆引きを誰に許可するかの定義です。
ローカルアドレスの部分は、外から見えないようにしなければならないので、許可するアドレスを
自分の管理しているアドレスの範囲内だけにしてあります。
逆に、グローバルアドレスの部分は、インターネット上で正規に送受信するためのものですから
世界中どこからでも見えるようにしてあります。
注意して欲しいのは、逆引きファイルの定義の zone 行の部分です。逆引き用ですから、
IPアドレスを逆に記述します。
逆といっても、数字を完全に逆にするわけではないです。初心者がよく陥る間違いなのですが、
ローカルを見ればわかるかと思いますが 192.168.0.0 の逆を 0.168.192と書いてあります。
これはローカルアドレスを 192.168.0.0 から 192.168.255.255 まで使うわけなので、
0.0.168.192 とは書いていないのです。
また、4つずつに区切った部分を逆転させるだけなので、決して 0.861.291 などとすべての数字を
反対から書いてはいけません。
options { directory "/etc/namedb"; }; zone "." { type hint; file "named.root"; }; zone "0.0.127.IN-ADDR.ARPA" { type master; file "localhost.rev"; }; zone "local.仮名.ne.jp" { type master; file "local.zone"; allow-transfer { 127.0.0.1; xxx.yyy.zzz.0/29; 192.168.0.0/24; }; allow-query { 127.0.0.1; xxx.yyy.zzz.0/29; 192.168.0.0/24; }; }; zone "0.168.192.in-addr.arpa" { type master; file "local.rev"; allow-transfer { 127.0.0.1; xxx.yyy.zzz.0/29; 192.168.0.0/24; }; allow-query { 127.0.0.1; xxx.yyy.zzz.0/29; 192.168.0.0/24; }; }; zone "仮名.ne.jp" { type master; file "仮名.zone"; allow-update { none; }; allow-transfer { any; }; allow-query { any; }; }; zone "0.zzz.yyy.xxx.in-addr.arpa" { type master; file "仮名.rev"; allow-update { none; }; allow-transfer { any; }; allow-query { any; }; };
各ゾーンファイルの作成 †
bindはアプリケーション名はBINDですが、実際のプログラムの名前はnamedと言います。
それでBIND8.xでは環境設定ファイルは/etc/namedb/というディレクトリの配下にある以下のファイルです。
/etc/namedb/named.conf ゾーンファイルのとアドレスの定義づけ
/etc/namedb/localhost.rev ループバックアドレスの逆引き定義ファイル
/etc/namedb/local.zone ローカルアドレスの正引き定義ファイル
/etc/namedb/local.rev ローカルアドレスの逆引き定義ファイル
/etc/namedb/仮名.zone グローバルアドレスの正引き定義ファイル~
/etc/namedb/仮名.rev グローバルアドレスの逆引き定義ファイル
実際に、ゾーンファイルや設定ファイルを記述するのはこのディレクトリになります。
これはOSの導入時に既に作成され、named.conf named.root の2つの設定ファイルと、
リバースを作成するためのファイル3つが用意されています。
▼localhost.revの作成
# cd /etc/namedb # sh make-localhost
最初に行うことは、上記のようにシェルを実行し、localhost.rev 等を自動生成させることです。
生成されれば、プロトのデータとシェルは不要になるので削除してしまいましょう。
# rm PROTO.localhost-v6.rev PROTO.localhost.rev make-localhost
▼mydomain.co.jp.revファイル
$TTL 3600 @ IN SOA vaio.mydomain.co.jp. root.mydomain.co.jp. ( 2000120901 ; Serial 3600 ; Refresh 300 ; Retry 3600000 ; Expire 3600 ) ; Minimum ; IN NS vaio.mydomain.co.jp. ; 1 IN PTR vaio.mydomain.co.jp. 11 IN PTR Dynabook.mydomain.co.jp. 15 IN PTR ValueStar.mydomain.co.jp. 20 IN PTR ThinkPad.mydomain.co.jp. 99 IN PTR BIBLO.mydomain.co.jp. 100 IN PTR AccessPoint.mydomain.co.jp
▼mydomain.co.jp.zoneファイル
$TTL 3600 @ IN SOA vaio.mydomain.co.jp. root.mydomain.co.jp. ( 2000120901 ; Serial 3600 ; Refresh 300 ; Retry 3600000 ; Expire 3600 ) ; Minimum ; IN NS vaio.mydomain.co.jp. ; Dynabook IN A 192.168.1.11 ValueStar IN A 192.168.1.15 ThinkPad IN A 192.168.1.20 BIBLO IN A 192.168.1.99 AccessPoint IN A 192.168.1.100 vaio IN A 192.168.1.1 www IN CNAME vaio.mydomain.co.jp.
起動する †
設定が完了したら起動する
# /usr/sbin/ndc start
▼サーバ起動時に起動するようシェルを用意する。
# vi /usr/etc/rc.d/bind.sh --------------------------------------------- /usr/sbin/ndc start ---------------------------------------------
- BINDのバージョン確認
matsui@vaio$ dig CHAOS version.bind TXT ; <<>> DiG 8.4 <<>> CHAOS version.bind TXT ;; res options: init recurs defnam dnsrch no-nibble2 ;; got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 44825 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUERY SECTION: ;; version.bind, type = TXT, class = CH ;; ANSWER SECTION: VERSION.BIND. 0S CH TXT "8.4.5-REL" ;; Total query time: 2 msec ;; FROM: vaio.mydomain.co.jp to SERVER: 192.168.1.1 ;; WHEN: Sat Jun 4 15:05:31 2005 ;; MSG SIZE sent: 30 rcvd: 64