Go to TOP Page
Google:


□オフィシャルサイトのご案内


○download もここで

お決まりの ISC BIND でつ。

http://www.isc.org/index.pl

BIND 9 のページはトップページからリンク辿って(^^;
2008/04/15 日現在、BIND-9.4.2.tar.gz が最新でつ。
download しておいてくらさいね。

Build & install は Solaris 10 でやりまつ。


□Build & install


○とってもカンタン

gcc の環境がきちんと整っていれば悩むところはなにも ありません。
まずわ、

してアーカイブを緩めてくらさい。
bind-9.4.2 ってディレクトリが作られているハヅなので、カレントにしておいてね。
必要に応じて、

して、 configure のオプション を見ておいてくらさい。
今回は目だって追加されたオプションは無いモヨウでつ。
将来的には、 IPv6 の map も作りたいので、IPv6 のオプションを つけて、


configure のオプション
% ./configure --enable-ipv6

でいきまつ。
でわ、さっそく、

して、 configure の開始でつ。
configure が終わるまで暫くお待ちあれ。
そして、

でおっけ。

とってもカンタンでしょ!
o(*^▽^*)o~♪

□IPv4 の map を書く


○map の種類

zone map 間違えたたら
スマン(_o_)

IPv6 の zone map は、今後、追加してゆきまつ。
IPv4 の zone map は、もうご存知のコトと思いまつが、いつおう・・・・

各種の定義ファイル名は /etc/named.conf で任意に定義できるのわお約束♪
named.root の貰い方は、ページ後半の Tips をご覧下され。


○/etc/named.conf

LAN 用の map と、 WAN 用の map を定義しまつ。
DNS ZONE の各種定義ファイルは /var/named に置くようにしていまつ。
named.conf に書く定義ファイル名は好きなファイル名が使用できまつ。

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; };
};
};

○/var/named/named.hosts.lan

LAN の host 定義でつ。

named.hosts.lan
$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

○/var/named/zzz.zzz.zzz.zzz.in-addr.arpa

LAN 内 host の逆引き map でつ。

/var/named/zzz.zzz.zzz.zzz.in-addr.arpa
$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

○/var/named/local.hosts

localhost 定義でつ。
必須とゆーワケでわないのでつが、定義しておきまつた。

local.hosts
$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

○/var/named/local.rev

localhost の逆引き map でつ。

local.rev
$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.

○/var/named/named.hosts.wan

WAN の host 定義でつ。
外部からアクセスされるのわ、DNS / Mail / WWW 程度なので、 この 3 ホストを定義しただけでつ。
他に外部公開したい子がいたら追加してくらさい。

named.hosts.wan
$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

○/var/named/yyy.yyy.yyy.yyy.in-addr.arpa

外部公開する host の逆引き map でつ。

yyy.yyy.yyy.yyy.in-addr.arpa
$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 とか系のスクリプトはいらないかな?と思っているので、 作ってません。


S10named
#!/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 設定


○ファイルの書き換え

Client 設定は、 /etc/resolv.conf と、 /etc/nsswitch.conf に少し 書き込むだけ。
書き込み終わったら、 reboot してくらさい。


○/etc/resolv.conf

OS をインストールしただけでわ、このファイルは存在していません。
なので、

とかしてファイルを作ってくらさい。
もちろん、 vi で新規作成 & 保存してもかまいませぬ。 BIND 動かしている name server 用とクライアント用でちょこっと 違いまつ。


Server 用 resolvconf
domain hoge.com
nameserver 127.0.0.1      

Name Server は自分 なんだから loopback すりゃいーんぢゃね?
的な考えで 127.0.0.1 にしてまつ。
フツーの Client は Name Server の IP アドレスを書き込みましょう。
カンチガイしてたら誰かツッ込みお願いしまつ。(^^;)

で、次はフツーの Client 用 resolv.conf


フツーの 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 にしてしまうっつーテもありまつ。


○/etc/nsswitch.conf

Server / Client 共通でつ。
"hosts:" の行に "dns" を書き加えるだけでつ。
vi で書き換えたら、保存してくらさい。
/etc/nsswitch.conf の一例は、関係なさそうなとこを snip していまつ。


/etc/nsswitch.conf の一例
#
# /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 してくらさい。


□動作確認


○debug mode

named daemon を起動するときに、 -d option をつけると、 debug mode で 起動できまつ。
debug mode の時は、 named.log には書き出されません。

気よつけろっ。

/var/log/named.run にいろんなメッセージが書き込まれるので、 見てみましょう。
起動方法は、


debug mode 起動の一例
/usr/local/sbin/named -c /etc/named.conf -d 1

とか。
-d に続く数字を増やす毎に詳細なメッセージが書き込まれるようです。
が・・・・、 named の man を見ても、いくつまで指定できるのか書いてない んだよなー(^^;)


○nslookup

フツーに、

とか・・・・。
正引き、逆引きくらいは確認できるよね。

MX レコードを調べたければ、


debug mode 起動の一例
% 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 オプションを付けると逆引きできまつ。

こんなかんぢだ。


□Tips


○check-names

named.log 見てたら発見。グハッ.∴(゜▽゜=)



named.log で叱られた部分
hoge.com: bad owner name (check-names)

で、 check-names はナニするディレクティブ?ってことでつが、

サーバは、ドメイン名が適当かどうか、状況をみてチェックします。たとえば、ホスト名として使われているドメイン名を、RFCが定義するホスト名の条件に合うかどうか、チェックすることが可能です。

だそうでつ。
で、指定できる option は、

だそうな。
option には、 "warn" を指定して、 log 見てエラーが見つかったら 適宜、対処するっちゅーのが宜しいのでわないかと。
"fail" で期待する動作が得られなかったらパニックになっちゃうカモ?

"warn" にしろ、 "fail" にしろ、

log 見ろよ。
゚+。(*′∇`)。+゚

っつーのわありまつが。
原因わ、過去の bind では、 "ignore" が default だったのが、 "fail" に変更されたのが原因のようでつ。


○named.root を貰ってくる。

このアタリからダウンして。
1997.08.22 日から update されてないモヨウ。
頻繁に更新されるファイルではないようでつね。

と、思ったらっ!
2008.02.04 日に IPv6 対応に update されたモヨウ。

アッー!∴.(゜∇゜=)

油断ならねぇぜ。




go back    next
Copyright(c) ORATORIO-TANGRAM.com 2001-2007 All Rights Reserved.
Total:counter