自宅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) を使っています。
/etc/named.bootを編集します。(DNSの設定ファイルです)
上記のnamed.bootの内容は、; 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 (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ファイルを使用するので、コメントアウトしてあります。 | |
ゾーンファイル(うちの場合は /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レコードの意味については、別途書籍等を参照して下さい
| |
逆引きファイル(うちの場合は /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. ;
| |
マシン起動時に自動的にDNSが立ち上がるように、/etc/sysconfigを編集します。named.bootを/etcのすぐ下に置いているので、上記のように直します。(namedflagsの行がコメントアウトされている時は、コメントを外して下さい)# 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" * FreeBSD 2.2.2-Rの場合は、/etc/sysconfig ではなく、/etc/rc.conf を編集します。named_enableを"YES"にし、named_flagsに"-b /etc/named.boot"を設定します。 | |
マシンを再起動(reboot)します。 | |
マシンが再起動されたら、正しく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 |