ドメインネームサーバの設定

自宅LAN上のホスト名の解決のために、いちいちISPにダイヤルアップしてISPのDNS(ドメインネームサーバ)を見に行くことが無いように(しかも、見に行った結果「そげなホストはThe Internet上には無いで」という悲しい結果になります)、自宅LAN上にDNSを立ち上げます。
もちろん、自宅LANのホスト名の解決にはhostsファイルを利用する手もあるのですが、これからLANに接続するPCが増えてきた場合、いちいち全PCのhostsファイルを修正するのは面倒くさいですね。それに、NetscapeNavigator3.Xなんかだと、ホスト名の解決にhostsファイルは使ってくれません。自宅LAN上にWWWサーバを立ち上げてテストをする時に、いつもURLはIPアドレスで指定・・・というのは少し寂しいですね。
というわけで、この際DNSを立ち上げてしまうのが良いでしょう。
このページでは、私が具体的にどういう設定をしたかについてのみ説明します。DNSの設定について詳しく知りたい方は、インターネットサーバ構築に関する書籍等購入して勉強して下さい。(OSによる違いはありませんので、例えばLinux用に書かれた本でも参考になります)



うちの自宅LANは、IPアドレス空間として 10.80.1/24 を使用。
ドメイン名は shinoda.hiroshima.jp 、ホスト名は、PC98が ringo(IPアドレス 10.80.1.1) 、自作AT互換機が momo(IPアドレス 10.80.1.10) を使っています。

(1)/etc/named.bootを編集します。(DNSの設定ファイルです)
; ringo.shinoda.hiroshima named.boot file
; 1997/12/07

directory       /etc/namedb

; type    domain                source host/file                backup file

cache     .                                                     named.root
;primary   localhost             localhost.zone
;primary   0.0.127.in-addr.arpa localhost.rev
primary   shinoda.hiroshima.jp  shinoda.hiroshima.zone
primary   1.80.10.in-addr.arpa  10.80.1.rev
上記のnamed.bootの内容は、
(1) ゾーンファイル等の置き場所は /etc/namedbディレクトリの下です。
(2) ルートDNSのアドレスを参照するためのnamed.rootファイルをキャッシュに読み込んでおきます。(named.rootファイルは、FreeBSDに添付されているものをそのまま使用します。)
(3) ドメイン名 shinoda.hiroshima.jp のホスト名の解決には、shinoda.hiroshima.zoneというゾーンファイルを使用します。
(4) 10.80.1/24 の逆引き(IPアドレスからホスト名を見つけること)には 10.80.1.rev というファイルを使用します。
という意味の設定をしています。
localhostの解決にはhostsファイルを使用するので、コメントアウトしてあります。

(2)ゾーンファイル(うちの場合は /etc/namedb/shinoda.hiroshima.zone )を編集します。
;
; Zone file of shinoda.hiroshima.jp for DNS
;
@       IN      SOA     ringo.shinoda.hiroshima.jp. root.ringo.shinoda.hiroshima
.jp. (
                        9801091 ; Serial
                        3600    ; Refresh - 1 hour
                        300     ; Retry - 5 minutes
                        1209600 ; Expire - 2 weeks
                        43200 ) ; Minimum - 12 hours
;
                        IN      NS      ringo.shinoda.hiroshima.jp.
;
ringo                   IN      A       10.80.1.1
momo                    IN      A       10.80.1.10
;
; Local Aliases
;
www                     IN      CNAME   ringo
;
上記のゾーンファイルの内容は、
「shinoda.hiroshima.jpの名前の解決には、ringo.shinoda.hiroshima.jpというNS(ネームサーバ)を使用し、ringo のアドレスは 10.80.1.1 、momo のアドレスは 10.80.1.10 、ringo には、www という別名を付ける」
というものです。
SOAレコードの意味については、別途書籍等を参照して下さい

(3)逆引きファイル(うちの場合は /etc/namedb/10.80.1.rev )を編集します。
;
@       IN      SOA     ringo.shinoda.hiroshima.jp. root.ringo.shinoda.hiroshima
.jp. (
                        9801091 ; Serial
                        3600    ; Refresh - 1 hour
                        300     ; Retry - 5 minutes
                        1209600 ; Expire - 2 weeks
                        43200 ) ; Minimum - 12 hours
        IN      NS      ringo.shinoda.hiroshima.jp.
1       IN      PTR     ringo.shinoda.hiroshima.jp.
10      IN      PTR     momo.shinoda.hiroshima.jp.
;
上記の逆引きファイルの内容は、「見ての通り」です。(笑)

(4)マシン起動時に自動的にDNSが立ち上がるように、/etc/sysconfigを編集します。
# vi /etc/sysconfig

# Set to appropriate flags for named, if you have a full-time
# connection to the Internet.
# For most hosts, flags should be "-b /etc/namedb/named.boot"
namedflags="-b /etc/named.boot"
named.bootを/etcのすぐ下に置いているので、上記のように直します。(namedflagsの行がコメントアウトされている時は、コメントを外して下さい)
* FreeBSD 2.2.2-Rの場合は、/etc/sysconfig ではなく、/etc/rc.conf を編集します。named_enableを"YES"にし、named_flagsに"-b /etc/named.boot"を設定します。

(5)マシンを再起動(reboot)します。

(6)マシンが再起動されたら、正しくDNSが動いているかチェックしてみましょう。
% ps -aux | grep named
root        87  0.0  2.8   388  280  ??  Is   Fri10PM    0:00.38 named -b /etc/
動いています。:-)
では、「正しくホスト名からIPアドレスが引けるか」、また「IPアドレスからホスト名が逆引き出来るか」試してみましょう。
% nslookup
Default Server:  ringo.shinoda.hiroshima.jp
Address:  10.80.1.1

> momo
Server:  ringo.shinoda.hiroshima.jp
Address:  10.80.1.1

Name:    momo.shinoda.hiroshima.jp
Address:  10.80.1.10

> 10.80.1.10
Server:  ringo.shinoda.hiroshima.jp
Address:  10.80.1.1

Name:    momo.shinoda.hiroshima.jp
Address:  10.80.1.10

> exit
バッチリですね。:-)


前のページへ FreeBSDで遊ぶ Powered by FreeBSD by SHINODA Masanori