![]() |
お決まりの ISC BIND でつ。
http://www.isc.org/index.pl
BIND 9 のページはトップページからリンク辿って(^^;
2008/04/15 日現在、BIND-9.4.2.tar.gz が最新でつ。
download しておいてくらさいね。
Build & install は Solaris 10 でやりまつ。
gcc の環境がきちんと整っていれば悩むところはなにも
ありません。
まずわ、
してアーカイブを緩めてくらさい。
bind-9.4.2 ってディレクトリが作られているハヅなので、カレントにしておいてね。
必要に応じて、
して、 configure のオプション を見ておいてくらさい。
今回は目だって追加されたオプションは無いモヨウでつ。
将来的には、 IPv6 の map も作りたいので、IPv6 のオプションを
つけて、
% ./configure --enable-ipv6 |
でいきまつ。
でわ、さっそく、
して、 configure の開始でつ。
configure が終わるまで暫くお待ちあれ。
そして、
でおっけ。
IPv6 の zone map は、今後、追加してゆきまつ。
IPv4 の zone map は、もうご存知のコトと思いまつが、いつおう・・・・
各種の定義ファイル名は /etc/named.conf で任意に定義できるのわお約束♪
named.root の貰い方は、ページ後半の Tips をご覧下され。
LAN 用の map と、 WAN 用の map を定義しまつ。
DNS ZONE の各種定義ファイルは /var/named に置くようにしていまつ。
named.conf に書く定義ファイル名は好きなファイル名が使用できまつ。
options { directory "/var/named"; pid-file "/var/named/named.pid"; version "unknown"; forwarders { xxx.xxx.xxx.xxx; ←上位の Name Server を指定するのが宜しいかと。 yyy.yyy.yyy.yyy; ←上位の Name Server を指定するのが宜しいかと。 }; //End of forwarders }; // End of Options ; ; -------------- logging --------------- ; logging { channel foobar { file "/var/log/named.log" versions 5 size 1m; severity debug 0; print-category yes; print-severity yes; print-time yes; }; // End of channel category default { foobar; }; category queries { foobar; }; category lame-servers { foobar; }; category config { foobar; }; }; // End of logging ; ; -------------- LAN --------------- ; view "lan" { match-clients { zzz.zzz.zzz.zzz/xx; 127.0.0.0/8; }; // End of match-clients recursion yes; zone "localhost" { type master; file "local.hosts"; }; zone "0.0.127.in-addr.arpa" type master; file "local.rev" }; zone "foo.com" { type master; file "named.hosts.lan"; allow-transfer { any; }; }; zone "zzz.zzz.zzz.zzz.in-addr.arpa" { type master; file "zzz.zzz.zzz.zzz.in-addr.arpa"; allow-transfer { any; }; }; }; // End of lan ; ; -------------- WAN --------------- ; view "wan" { match-clients { any; }; recursion no; zone "." { type hint; file "named.root"; }; zone "foo.com" { type master; file "named.hosts.wan"; allow-transfer { any; }; }; zone "yyy.yyy.yyy.yyy.in-addr.arpa" { type master; file "yyy.yyy.yyy.yyy.in-addr.arpa"; allow-transfer { any; }; }; }; |
LAN の host 定義でつ。
$TTL 1D @ IN SOA ns.foobar.com. root.foobar.com. ( 2007052301 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum ; ; ---------- NS & Mail record ---------- ; IN NS ns.foobar.com. IN MX 10 mail.foobar.com. ; ; -------------- Server's --------------- ; ns IN A 192.168.126.1 ;Sun Fire V120 qfe0 NIS+ & DNS mail IN A 192.168.126.2 ;Sun Fire V120 qfe1 MAIL www IN A 192.168.126.3 ;Sun Fire V120 qfe2 WEB home IN A 192.168.126.4 ;Sun Fire V120 qfe3 NFS home dir's ; -------------- Hosts's --------------- ; hoge000 IN A 192.168.126.33 ;SMCC ULTRA60 hme0 hoge001 IN A 192.168.126.34 ;SMCC ULTRA10 hme0 hoge002 IN A 192.168.126.35 ;SMCC ULTRA2 hme0 hoge003 IN A 192.168.126.36 ;SMCC Blade100 eri0 vpn230 IN A 192.168.126.230 ;VPN Client vpn231 IN A 192.168.126.231 ;VPN Client dhcp240 IN A 192.168.126.240 ;DHCP Client dhcp241 IN A 192.168.126.241 ;DHCP Client |
LAN 内 host の逆引き map でつ。
$TTL 1D @ IN SOA ns.foobar.com. root.foobar.com. ( 2007052301 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum ; ; ---------- NS & Mail record ---------- ; IN NS ns.foobar.com. IN MX 10 mail.foobar.com. IN PTR foobar.com. IN A 255.255.255.0 ; ; -------------- Server's --------------- ; 1 IN PTR ns.foobar.com. ;Sun Fire V120 qfe0 NIS+ & DNS 2 IN PTR mail.foobar.com. ;Sun Fire V120 qfe1 MAIL 3 IN PTR www.foobar.com. ;Sun Fire V120 qfe2 WEB 4 IN PTR home.foobar.com. ;Sun Fire V120 qfe3 NFS home dir's ; ; -------------- Hosts --------------- ; 33 IN PTR hoge000.foobar.com. ; SMCC ULTRA60 hme0 34 IN PTR hoge001.foobar.com. ; SMCC ULTRA10 hme0 35 IN PTR hoge002.foobar.com. ; SMCC ULTRA2 hme0 ; ; -------------- DHCP-VPN Clients --------------- ; 230 IN PTR vpn230.foobar.com. ; VPN Client 231 IN PTR vpn231.foobar.com. ; VPN Client ; ; -------------- DHCP Clients --------------- ; 240 IN PTR dhcp240.foobar.com. ; DHCP Client 241 IN PTR dhcp241.foobar.com. ; DHCP Client |
localhost 定義でつ。
必須とゆーワケでわないのでつが、定義しておきまつた。
$TTL 1D @ IN SOA localhost. root.foobar.com. ( 2006120601 ; Serial 28800 ; Refresh 14400 ; Retry 604800 ; Expire 86400 ) ; Minimum ; ; -------------- NS record ----------------- ; IN NS localhost. ; ; -------------- host record --------------- ; localhost. IN A 127.0.0.1 |
localhost の逆引き map でつ。
$TTL 1D @ IN SOA localhost. root.foobar.com. ( 2006120601 ; Serial 28800 ; Refresh 14400 ; Retry 604800 ; Expire 86400 ) ; Minimum ; ; -------------- NS record ----------------- ; IN NS localhost. ; ; -------------- host record --------------- ; 1 IN PTR localhost. |
WAN の host 定義でつ。
外部からアクセスされるのわ、DNS / Mail / WWW 程度なので、
この 3 ホストを定義しただけでつ。
他に外部公開したい子がいたら追加してくらさい。
$TTL 1D @ IN SOA ns.foobar.com. root.foobar.com. ( 2008020800 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 86400 ) ; Minimum ; ; ---------- NS & Mail record ---------- ; IN NS ns.foobar.com. IN MX 10 mail.foobar.com. ; ; -------------- host record --------------- ; ns IN A zzz.zzz.zzz.zzz ;Sun Fire V120 qfe0 NIS+ & DNS mail IN A zzz.zzz.zzz.zzz ;Sun Fire V120 qfe1 MAIL www IN A zzz.zzz.zzz.zzz ;Sun Fire V120 qfe2 WEB |
外部公開する host の逆引き map でつ。
$TTL 1D @ IN SOA foobar.com. root.foobar.com. ( 2008020800 ; Serial 10800 ; Refresh 3600 ; Retry 604800 ; Expire 86400 ) ; Minimum ; ; ---------- NS & Mail record ---------- ; IN NS ns.foobar.com. IN MX 10 mail.foobar.com. ; ; -------------- host record --------------- ; zzz IN PTR ns.foobar.com. ;Sun Fire V120 qfe0 NIS+ & DNS zzz IN PTR mail.foobar.com. ;Sun Fire V120 qfe1 MAIL zzz IN PTR www.foobar.com. ;Sun Fire V120 qfe2 WEB |
Name Service は早めに起動しておいた方が良いような気がするので、
S10named にしまつた。
Solaris に bundle されている BIND の自動起動スクリプトと重複して
いたよーな記憶があるので、もともと存在していた S10named は、
とかして rename して自動起動の対象外にしてしまいませう。
rm しちゃっても良いかなー?と思うのですが、一応、残しておきまつた。
Script のレポジトリは、
でつ。
K10named とか系のスクリプトはいらないかな?と思っているので、
作ってません。
#!/bin/sh # # named This shell script takes care of starting and stopping # named (ISC BIND DNS server). # # chkconfig: 2345 55 45 # description: named (BIND) is a Domain Name Server (DNS) # that is used to resolve host names to IP addresses. # probe: true [ -f /usr/local/sbin/named ] || exit 0 [ -f /etc/named.conf ] || exit 0 # See how we were called. case "$1" in start) # Start named daemon. echo "Start named." /usr/local/sbin/named -c /etc/named.conf ;; stop) # Stop named daemon. echo "Shutdown ISC BIND." pkill -9 named ;; restart) echo "Restart ISC BIND." $0 stop $0 start exit $? ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit 0 |
Client 設定は、 /etc/resolv.conf と、 /etc/nsswitch.conf に少し
書き込むだけ。
書き込み終わったら、 reboot してくらさい。
OS をインストールしただけでわ、このファイルは存在していません。
なので、
とかしてファイルを作ってくらさい。
もちろん、 vi で新規作成 & 保存してもかまいませぬ。
BIND 動かしている name server 用とクライアント用でちょこっと
違いまつ。
domain hoge.com nameserver 127.0.0.1 |
Name Server は自分 なんだから loopback すりゃいーんぢゃね?
的な考えで 127.0.0.1 にしてまつ。
フツーの Client は Name Server の IP アドレスを書き込みましょう。
カンチガイしてたら誰かツッ込みお願いしまつ。(^^;)
で、次はフツーの Client 用 resolv.conf
domain hoge.com nameserver primary-ipaddress nameserver secoundery-ipaddress nameserver other-nameserver-ipaddress |
name server ディレクティブは最大 3 つ定義できまつが、 一般のご家庭で 3 台も name server 動かすコトもないと 思いまつので、実際には、primary の 1 つだけで良いでしょう。
RFC 上は、 primary / secondery の 2 台は最低限用意しておくよーに
とか書いてあったような気がしまつが(笑)
Secondery は everydns や xname にしてしまうっつーテもありまつ。
Server / Client 共通でつ。
"hosts:" の行に "dns" を書き加えるだけでつ。
vi で書き換えたら、保存してくらさい。
/etc/nsswitch.conf の一例は、関係なさそうなとこを snip していまつ。
# # /etc/nsswitch.nisplus: - snip - # the following two lines obviate the "+" entry in /etc/passwd and # /etc/group. passwd: files nisplus group: files nisplus # consult /etc "files" only if nisplus is down. hosts: nisplus dns [NOTFOUND=return] files ←ここの行に "dns" を追加 # Note that IPv4 addresses are searched for in all of the ipnodes # databases before searching the hosts databases. ipnodes: nisplus [NOTFOUND=return] files - snip - |
ここにあげている nsswitch.conf は nis+ 環境下の nsswitch.conf でつ。
ldap や nis 環境等の場合は、ぢゃっかん、定義内容が変わっていますが、
hosts 行に dns を書き加えるのわ変わりません。
書き換え終わったら、 reboot してくらさい。
named daemon を起動するときに、 -d option をつけると、 debug mode で
起動できまつ。
debug mode の時は、 named.log には書き出されません。
/var/log/named.run にいろんなメッセージが書き込まれるので、
見てみましょう。
起動方法は、
/usr/local/sbin/named -c /etc/named.conf -d 1 |
とか。
-d に続く数字を増やす毎に詳細なメッセージが書き込まれるようです。
が・・・・、 named の man を見ても、いくつまで指定できるのか書いてない
んだよなー(^^;)
フツーに、
とか・・・・。
正引き、逆引きくらいは確認できるよね。
MX レコードを調べたければ、
% nslookup > set type=MX > hoge.com Server: 127.0.0.1 Address: 127.0.0.1#53 hoge.com mail exchanger = 10 mail.hoge.com.com. > |
とかって表示されまつ。
昔の nslookup わ、 ls で zone map が見れたんだけれど、
最近の nslookup わ、 ls は使えなくなってまつ。
詳しくわ、 % man nslookup で。
あと、 nslookup でわなく、 dig コマンドで調べる方法もありまつ。
-x オプションを付けると逆引きできまつ。
こんなかんぢだ。
named.log 見てたら発見。グハッ.∴(゜▽゜=)
hoge.com: bad owner name (check-names) |
で、 check-names はナニするディレクティブ?ってことでつが、
サーバは、ドメイン名が適当かどうか、状況をみてチェックします。たとえば、ホスト名として使われているドメイン名を、RFCが定義するホスト名の条件に合うかどうか、チェックすることが可能です。
だそうでつ。
で、指定できる option は、
だそうな。
option には、 "warn" を指定して、 log 見てエラーが見つかったら
適宜、対処するっちゅーのが宜しいのでわないかと。
"fail" で期待する動作が得られなかったらパニックになっちゃうカモ?
"warn" にしろ、 "fail" にしろ、
っつーのわありまつが。
原因わ、過去の bind では、 "ignore" が default だったのが、 "fail"
に変更されたのが原因のようでつ。
このアタリからダウンして。
1997.08.22 日から update されてないモヨウ。
頻繁に更新されるファイルではないようでつね。
と、思ったらっ!
2008.02.04 日に IPv6 対応に update されたモヨウ。
油断ならねぇぜ。