Bind 8 の設定
Bind の設定は多くのサイトで設定例が詳細に紹介されていますが、私も記録として残す事にします。ここでの設定は、サブドメインを作らない方式でやってゆきます。 新たに内、外向き2つのbindを動かす事にし、デフォルトのnamed.confはスクリプト止めました。
私の記録ですしシステム構成図に従い設定を行う為、選択肢は無しで進めます。

ドメイン:nanzya.com
IP:xx1.xx2.xx3.xx4

セカンダリDNS:otasuke.com
IP:xx5.xx6.xx7.xx8





■ Bind のインストール

# apt-get install bind

$ dpkg -l bind*
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
|/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
||/ 名前    バージョン          説明
+++-==============-==============-============================================
ii bind       8.2.3-0.potato   Internet Domain Name Server
un bind-dev   <なし>           (説明(description)がありません)
ii bind-doc   8.2.3-0.potato   Documentation for BIND




 ディレクトリの新規作成

内向け用設定ファイルのディレクトリを作る

# mkdir /etc/bind/namedb-inner

外向け用設定ファイルのディレクトリを作る

# mkdir /etc/bind/namedb-outer




 内向きと外向きの 2つの bind を作成

デフォルトの起動スクリプトをコーピし編集

# cp /etc/init.d/bind /etc/init.d/bind-inner
# cp /etc/init.d/bind /etc/init.d/bind-outer

# vi /etc/init.d/bind-inner

パスやファイル名等を
/namedb-outer/named-inner.conf に編集
named-inner.pid に編集

# vi /etc/init.d/bind-outer

パスやファイル名等を
/namedb-outer/named-outer.conf に編集
named-outer.pid に編集

# update-rc.d bind-inner defaults
Adding system startup for /etc/init.d/bind-inner ...
  /etc/rc0.d/K20bind-inner -> ../init.d/bind-inner
  /etc/rc1.d/K20bind-inner -> ../init.d/bind-inner
  /etc/rc6.d/K20bind-inner -> ../init.d/bind-inner
  /etc/rc2.d/S20bind-inner -> ../init.d/bind-inner
  /etc/rc3.d/S20bind-inner -> ../init.d/bind-inner
  /etc/rc4.d/S20bind-inner -> ../init.d/bind-inner
  /etc/rc5.d/S20bind-inner -> ../init.d/bind-inner


# update-rc.d bind-outer defaults
Adding system startup for /etc/init.d/bind-outer ...
  /etc/rc0.d/K20bind-outer -> ../init.d/bind-outer
  /etc/rc1.d/K20bind-outer -> ../init.d/bind-outer
  /etc/rc6.d/K20bind-outer -> ../init.d/bind-outer
  /etc/rc2.d/S20bind-outer -> ../init.d/bind-outer
  /etc/rc3.d/S20bind-outer -> ../init.d/bind-outer
  /etc/rc4.d/S20bind-outer -> ../init.d/bind-outer
  /etc/rc5.d/S20bind-outer -> ../init.d/bind-outer


# chmod 755 /etc/init.d/bind-inner
# chmod 755 /etc/init.d/bind-outer


/etc/init.d/bind を /etc/init.d/bind.ORG に変更してから、デフォルトのスクリプトを止めた

# mv /etc/bind/maned.conf /etc/bind/maned.conf.org

# update-rc.d bind remove
Removing any system startup links for /etc/init.d/bind ...
/etc/rc0.d/K19bind
/etc/rc1.d/K19bind
/etc/rc2.d/S19bind
/etc/rc3.d/S19bind
/etc/rc4.d/S19bind
/etc/rc5.d/S19bind
/etc/rc6.d/K19bind

これで消えた





 /etc/bind/namedb-inner/named-inner.conf を作成


//
// named-inner.conf
//

options {
      directory "/etc/bind/namedb-inner";
      listen-on {
      127.0.0.1;
      192.168.1.254;
      };
      allow-query {
      127.0.0.1;
      192.168.1.0/24;
      };
      pid-file "/var/run/named-inner.pid";
};

zone "." {
      type hint;
      file "/etc/bind/db.root";
};

zone "localhost" { //localhost 用正引き設定。
      type master;
      file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" { //localhost 用逆引き設定。
      type master;
      file "/etc/bind/db.127";
};

zone "nanzya.com" { //内側のドメイン用正引き設定。
      type master;
      file "inner.zone";
};

zone "2.168.192.IN-ADDR.ARPA" { //内側のドメイン用逆引き設定
      type master;
      file "inner.zone.rev";
};




 nanzya.com の内向けゾーンファイルを作成


; /etc/bind/namedb-inner/inner.zone
;
; nanzya.com の内向けゾーンファイル
;
@ IN SOA ns.nanzya.com. postmaster.nanzya.com. (
                2001090803   ; Serial
                3600         ; Refresh after 1 hour
                300          ; Retry after 5 minutes
                604800       ; Expire after 1 week
                14400 )      ; Minimum TTL of 4 hour

                IN   A   192.168.1.254
                IN   NS   ns.nanzya.com.
                IN   MX   10 mail.nanzya.com.

corega1     IN   A   192.168.1.1
ns          IN   A   192.168.1.254
mail        IN   A   192.168.1.254
hanako      IN   A   192.168.1.11
tarou       IN   A   192.168.1.12
takuya      IN   A   192.168.1.13

pop        IN   CNAME   ns
smtp       IN   CNAME   ns
www        IN   CNAME   ns
ftp        IN   CNAME   ns




 nanzya.com の内向けリバースファイルを作成

; /etc/bind/namedb-inner/inner.zone.rev
;
; nanzya.com の内向けリバースファイル
;
@ IN SOA ns.nanzya.com. postmaster.nanzya.com. (
                2001090803   ; Serial
                3600         ; Refresh after 1 hour
                300          ; Retry after 5 minutes
                604800       ; Expire after 1 week
                14400 )      ; Minimum TTL of 4 hour

                IN   NS    ns.nanzya.com.
                IN   PTR   nanzya.com.
                IN   A     255.255.255.0

1           IN   PTR   corega1.nanzya.com.
254         IN   PTR   ns.nanzya.com.
11          IN   PTR   hanako.nanzya.com.
12          IN   PTR   tarou.nanzya.com.
13          IN   PTR   takuya.nanzya.com.




 /etc/bind/namedb-outer/named-outer.conf を作成

//
// named-outer.conf
//

options {
      directory "/etc/bind/namedb-outer";
      listen-on {
      192.168.1.200
      };
      pid-file "/var/run/named-outer.pid";
};

logging {
      category lame-servers { null; };
      category cname { null; };
};

zone "." {
      type hint;
      file "/etc/bind/db.root";
};

zone "localhost" { //localhost 用正引き設定。
      type master;
      file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" { //localhost 用逆引き設定。
      type master;
      file "/etc/bind/db.127";
};

zone "nanzya.com" { //外側のドメイン用正引き設定。
      type master;
      file "outer.zone";
      notify yes;
      allow-transfer {
      127.0.0.1;
      xx5.xx6.xx7.xx8; //セカンダリ引受先ネットワーク//
      };
};

zone "xx4.xx3.xx2.xx1.IN-ADDR.ARPA" { //外側のドメイン用逆引き設定。
      type master;
      file "outer.zone.rev";
};




 nanzya.com の外向けゾーンファイルを作成

; /etc/bind/namedb-outer/outer.zone
;
; nanzya.com の外向けゾーンファイル
;
@ IN SOA ns.nanzya.com. postmaster.nanzya.com. (
              2001090601    ; シリアルナンバー
              10800         ; リフレッシュ間隔
              3600          ; 再試行時間
              604800        ; 情報破棄時間
              86400 )       ; 情報有効時間
;
; Name server
;
              IN   NS   ns.nanzya.com.
              IN   NS   ns.otasuke.com. ;セカンダリ
              IN   MX   10 mail.nanzya.com.
;
; "nanzya.com" is
;
              IN   A    xx1.xx2.xx3.xx4
;
; Host table
;
ns        IN   A    xx1.xx2.xx3.xx4
;
; MX レコードに使う名前に、CNAME は使えない
;
mail      IN   A    xx1.xx2.xx3.xx4
;
; Alias
;
pop       IN   CNAME   ns
smtp      IN   CNAME   ns
www       IN   CNAME   ns
ftp       IN   CNAME   ns




 nanzya.com の外向けリバースファイルを作成

; /etc/bind/namedb-outer/outer.zone.rev
;
; nanzya.com の外向けリバースファイル
;
@ IN SOA ns.nanzya.com. postmaster.nanzya.com. (
              2001090601    ; Serial
              10800         ; Refresh after 3 hour
              3600          ; Retry after 1 hour
              604800        ; Expire after 1 week
              86400 )       ; Minimum TTL of 1 day
;
; Name Server
;
              IN   NS   ns.nanzya.com.
              IN   NS   ns.otasuke.com. ;セカンダリ
;
; Network address
;
              IN   A    255.255.255.254
;
; Address table
;
              IN   PTR   nanzya.com.




/etc/resolv.conf の作成

domain nanzya.com
nameserver 192.168.2.254
nameserver xx5.xx6.xx7.xx8

2001年10月の時点で上記のように書きましたが、現時点(2002/03/17)では下記のようになっています。

そもそもresolv.confはDNS検索順序設定ファイルでありますが、このファイルは/etc/pcmcia/network.optsで設定した事柄が反映されるようです。vi等で編集してもシステムの再起動でnetwork.optsの設定に戻っていました。ここのネットワーク構成の例では次のようになります。

# eth1 begin
nameserver 192.168.1.254
# eth1 end
# eth0 begin
domain ns.nanzya.com
nameserver xx1.xx2.xx3.xx4
nameserver xx5.xx6.xx7.xx8
# eth0 end




/etc/bind/db.127 の編集

;
; BIND reverse data file for local loopback interface
;
;$TTL 86400
@ IN SOA ns.nanzya.com. root.nanzya.com. (
              2001090601    ; Serial
              10800         ; Refresh after 3 hour
              3600          ; Retry after 1 hour
              604800        ; Expire after 1 week
              86400 )       ; Minimum TTL of 1 day
;
@         IN   NS    ns.nanzya.com.
1.0.0     IN   PTR   localhost.




/etc/bind/db.local の編集

;
; BIND data file for local loopback interface
;
;$TTL 604800
@ IN SOA ns.nanzya.com. root.nanzya.com. (
              2001090601    ; Serial
              10800         ; Refresh after 3 hour
              3600          ; Retry after 1 hour
              604800        ; Expire after 1 week
              86400 )       ; Minimum TTL of 1 day
;
@         IN   NS   ns.nanzya.com.
@         IN   A    127.0.0.1




/etc/network/interfaces の編集

vi 等で下記の項目を追加する。

# 192.168.1.254:内向き用 DNS,WWW,POP,FTP,SMTP 各サーバー用

iface eth0:0 inet static
              address 192.168.1.254
              netmask 255.255.255.0
              network 192.168.1.0




 内、外向き2つの bind を動かす

$ /etc/init.d/bind-inner start

Starting domain name service: named.

$ /etc/init.d/bind-outer start

Starting domain name service: named.




 bind の稼動状況

$ ps ax |grep named

{module_list} {module_list_R__ver_module_list}
Warning: /boot/System.map-2.2.18pre21 does not match kernel data.
176 ? S 0:01 /usr/sbin/named /etc/bind/namedb-inner/named-inner.conf
179 ? S 0:00 /usr/sbin/named /etc/bind/namedb-outer/named-outer.conf
967 pts/0 S 0:00 grep named

...こんな感じになれば完了です




 内向きのテスト

$ nslookup
Default Server: ns.nanzya.com
Address: 192.168.2.254

> hanako
Server: ns.nanzya.com
Address: 192.168.2.254

Name: hanako.nanzya.com
Address: 192.168.2.11

> www.yahoo.co.jp
Server: ns.nanzya.com
Address: 192.168.2.254

Name: www.yahoo.co.jp
Addresses: 210.81.153.69, 210.81.153.70, 210.152.236.50, 210.140.200.16
           210.152.236.111, 210.152.236.112, 210.152.236.113, 210.81.153.68


...こんな感じになれば完璧です




 外向きのテスト

$ nslookup
Default Server: ns.nanzya.com
Address: 192.168.2.254

> server 192.168.1.200
Default Server: [192.168.1.200]
Address: 192.168.1.200

> www.goo.ne.jp
Server: [192.168.1.200]
Address: 192.168.1.200

Name: www.goo.ne.jp
Address: 210.150.25.37

> www.nanzya.com
Server: [192.168.1.200]
Address: 192.168.1.200

Name: ns.nanzya.com
Address: xx1.xx2.xx3.xx4
Aliases: www.nanzya.com


...こんな感じになれば完璧です

書くとたったのこれだけなんですけど、試行錯誤を繰り替えしましたよ(^_^;)