大橋のページ

OCN+NT4.0=インターネットサーバ構築術


2 DNSサーバの構築 BIND for NT 4.9.5

なぜBIND for NTか

注 この記事は1996〜1997年ころに書かれたもので、だいぶ古くなっています。また、セカンダリDNSに関して、OCN側のセカンダリDNSに関して一部記憶違いがあります。比較的新しいものはこちらにあります。

 DNSサーバは、「www.hyperdyne.co.jp」といったホスト名+ドメイン名(FQDN=Fully Qualified Domain Name)と「210.160.79.98」といったIPアドレスとの相互解釈という重要な機能を果たします。メールサーバもWebサーバもこのDNSサービスの上で動作するため、ネットワーク構築のもっとも基本となるたいせつなサービスです。

 WindowsNT上で動作するDNSサーバとして有名なのは、WindowsNTが標準で持っているMicrosoft DNSとBIND for NTです。BINDは、UNIX上のDNSとして有名なBINDをWindowsNTに移植したものです。ここでは、BIND for NTを使うことにします。

 Microsoft DNSはリリースされてまだ歴史が浅いこともあるのでしょうが、いくつかの障害が報告されています。Microsoft社側からは修正モジュールがあいついで発表されています(http://www.microsoft.com/japan/products/ntupdate/NT4SP3/DNSFIX.HTM)が、DNSサービスは安定稼動が最優先のものであることや、インターネットサーバとして数多くの実績があり、現在もほとんどのサーバがUNIX+BINDで稼動しているため、親和性の面からもBIND for NTは最善の選択だと思われます。

 筆者も、OCN敷設直後は、Microsoft DNSを使ってみました。稼動直後は問題なく動いていましたが、時間がたつにつれて、動作が不安定になり、ついにまったく反応しなくなってしまいました。また、BINDではテキストファイルを書き込んで設定し、Microsoft DNSはGUIベースでDNSの設定ができるため、一見するとMicrosoft DNSのほうが楽に設定できるように思えますが、DNSに関する基本的な知識のないものにとっては、似たり寄ったりです。NTT側が推奨していることや、BIND for NTがフリーウェアであることから、BINDを採用することにします。

(この部分追加 マイクロソフト社のDNSサーバは、バグの問題よりも、NetBIOS関連の情報をも同じに扱っていることから、インターネット側のDNSサーバとの間で障害が起こるようです。)

00-1.gif
マイクロソフト社の「Microsoft DNSに関する障害」ページ。

00-2.gif
Software.com社のホームページ。

00-3.gif
Microsoft DNSでは、GUIで設定することができるが、専門用語が多いため、基礎知識がなければ扱いきれないだろう。

TCP/IPの設定

 BINDのインストールを始める前に、TCP/IPプロトコルの設定が正しくされているかどうかを確認しましょう。コントロールパネルの「ネットワーク」アイコンをダブルクリックしてプロパティを開いてみて、「プロトコル」タブの「TCP/IPプロトコ」をダブルクリックします。「TCP/IPプロトコルのプロパティ」が表示され、「IPアドレス」ほかいくつかのタブがありますが、今回設定するのは「IPアドレス」と「DNS」です。

 「IPアドレス」タブの「アダプタ」欄にはマシンに装着されたイーサネットカードが表示されているはずです。さて、問題は「IPアドレス」「サブネットマスク」「デフォルトゲートウェイ」です。「IPアドレス」はWindowsNTがインストールされ、DNSサーバとなるマシンに割り当てるIPアドレスを入力します。

 IPアドレスを割り当てるときには、ネットワークを構成するサーバ(サービスを提供するもの)、クライアント(サービスを受けるもの)、ルータ、機種によってはプリンタなど、機器ひとつひとつが異なったものを持たなければならないことに注意してください。「210.160.79.97」というIPアドレスを持ったマシンは、ひとつのネットワークで1台しかあってはなりません。

 また、OCNにかぎらずネットワークでは、利用するIPアドレスのうち、先頭のIPアドレスがネットワークアドレスとして、最後のIPアドレスがブロードキャストアドレスとして使われてしまいます。今回のケースでは、「210.160.79.96」がネットワークアドレス、「210.160.79.111」がブロードキャストアドレスとして使われます。また、外部ネットワークとの出入り口にあたるルータは、利用できるIPアドレスの中でもっとも小さい値のものを割り当てるのが慣習になっています。今回も、「210.160.79.97」がルータのIPアドレスになります。

 では、DNSサーバにはどのIPアドレスを割り当てればいいかですが、とくに制限はありません。プライマリDNSのホスト名とIPアドレスが決定したら、それをOCN側に連絡する必要はありますが、かならずしも何番目のIPアドレスと決まっているわけではありません。しかし、DNSサーバという性格上、ルータの次のIPアドレスを割り当てるのが自然でしょう。NTT側もそう設定することを推奨しています。セキュリティ上の問題がないわけではありませんが、そう設定する方がわかりやすいでしょう。ここでも、「210.160.79.98」という3番目のIPアドレスを割り当てることにしました。

 「サブネットマスク」は、IPアドレスを区分けするための仕組みで、IPアドレスと組み合わせて使います。くわしい説明はしませんが、IPアドレスが16個なら「255.255.255.240」と、8個なら「255.255.255.248」と入力します。「デフォルトゲートウェイ」は、今回のケースではルータが該当するため、ルータのIPアドレス「210.160.79.97」を入力します。

 続いて、「DNS」タブを設定します。ここでは「ホスト名」と「ドメイン名」、「DNSサービスの検索順序」の3つを設定します。「ホスト名」は、WindowsNTマシン自体の名前です。今回は、DNSサーバとしての役割も果たすため、NTT側に連絡したDNSサーバのホスト名を与えてやります。ここでは、「ns」(NameServerの略)としました。ドメイン名には、NTTが代理申請してJPNICで受理されたドメイン名を入力します。ここでは、「hyperdyne.co.jp」です。

 「DNSサービスの検索順序」では、自分自身がDNSサーバとなるため、自分自身のIPアドレスを入力し、さらにOCN側で用意しているセカンダリDNSのIPアドレス(203.139.160.69)を入力します。

 WindowsNTは、DHCPサーバ機能やWINSサーバ機能なども標準で持っていますが、今回はいずれも導入しないため、「TCP/IPプロトコルのプロパティ」の設定は以上で終了です。NTを再起動すると設定が反映されます。

01.gif
DNSサーバマシンのTCP/IPの項目を設定する

02.gif
DNSに関する設定をする

BIND for NTの入手とインストール

 BINDは、メールサーバ「Post.Office」で有名なSoftware.comのサイト(http://www.software.com/)から入手できます。Software.comのサイトにアクセスしたら、「FREE SOFTWARE」のページを開き、「BIND for NT(freeware)」を選択します。ページ下の「Download BIND for Windows NT」をクリックすると登録のためのページが表示されます。「Personal Information」欄にそれぞれ入力するか、「Quick Survey」欄で「organization type」を選んで「Submit Survey」ボタンをクリックすると「Go to the BIND for Windows NT Download Area」と書かれたページが表示されるので、そのままクリックします。

00.gif
Software.comのホームページからBIND for NTをダウンロードする

 BIND for NTはWindowsNT上で動作しますが、NTが動作するハードウェア(インテル製CPUのほか、Alpha、PowerPC、MIPS)ごとに分類されています。環境に応じてダウンロードしますが、ほとんどの場合が、インテル製CPUを搭載した、いわゆるAT互換機でしょう。インテル製PC対応のBIND for NTとして、「4.9.4p1」と「4.9.5」のふたつのバージョンが掲載されていますが、とくに理由がなければ最新バージョンの「4.9.5」をダウンロードします。「4.9.5」は、ファイル名が「BIND495-Intel.exe」で、自己解凍式の圧縮ファイル(約1.2MB)になっています。

 インストールするNTマシンにダウンロードしたファイルをコピーしてから、ダブルクリックします。解凍先(C:\TEMP\BINDINST)を指定するダイアログボックスが表示されるので、確認してから「Unzip」ボタンをクリックすると解凍が始まります。「12 files unzipped successfully」というメッセージが表示されたら、解凍は成功です。「OK」ボタンをクリックして、ダイアログボックスも「Close」ボタンをクリックして閉じます。

01.gif
ダウンロードしたファイルをダブルクリックすると自己解凍が始まる

02.gif

解凍に成功すると表示されるメッセージ

 BIND for NTのインストールを始める前に、Microsoft DNSが起動していないことを確認してください。一台のサーバ上でふたつのDNSサービスを稼動させることはできません。もし、Microsoft DNSがインストールされ、起動しているのでしたら、サービスを停止させます。一時的にサービスを停止させるには、コントロールパネルのサービスアイコンをダブルクリックして表示されるサービスプロパティで、「Microsoft DNS Server」を選んでから「停止」ボタンをクリックします。「スタートアップ」ボタンをクリックすると表示されるダイアログボックスで「スタートアップの種類」を「無効」にしてしまえば、WindowsNTのサービスとして完全にストップし、NTを再起動してもサービスは稼動しなくなります。もう二度と利用しないようなら、「ネットワーク」アイコンをダブルクリックして表示されるダイアログボックスの「サービス」タブを使って削除してしまいましょう。

 BIND for NTの解凍先のフォルダを開くと「setup.exe」を含んで12個のファイルがあるはずです。「setup.exe」をダブルクリックすると、BIND for NTのインストールが始まります。最初に「readme.txt」(英語)が表示されるので、ざっと内容に目を通してから閉じます。welcomeメッセージがダイアログボックスで表示されているので「Next>」ボタンをクリックします。次のダイアログボックスではBINDのユーザー名を指定しますが、ここでいう「ユーザー名」は、WindowsNTを実際に使う「ユーザー名」とはまったく別の意味ですので注意してください。「system」となっているので、そのまま「Next>」ボタンをクリックします。

02-1.gif
12個のファイルが解凍された

03.gif
インストール開始のWelcomeメッセージ

04.gif 「system」のまま次に進む

 次のダイアログボックスから、DNSの基本的な設定に関わるものを指定します。まずドメイン名の設定です。ここでは、ホスト名(インストールしているマシンの名前)を含まないで、ドメイン名だけを指定します。TCP/IPプロトコルの設定でドメイン名があらかじめ正しく設定されていれば、それが表示されているはずです。「Next>」ボタンをクリックするとホスト名+ドメイン名が正しいかどうかを確認するメッセージが表示されます。確認して「はい」ボタンをクリックします。

05.gif
ドメイン名を指定する。TCP/IP関連の設定が正しく行なわれていれば、そのままでいい

06.gif
確認メッセージ。

 次のダイアログボックスでは、インストール先のマシンのIPアドレスを入力します。先に「TCP/IPのプロパティ」で設定したとおり、「210.160.79.98」とここでは入力しました。次のダイアログボックスではネットワークアドレスを指定します。少しわかりずらいでしょうが、ここでは先頭のIPアドレス(ネットワークアドレス)を入力します。

07.gif
IPアドレスを入力する。

08.gif
ネットワークアドレスを入力する

 次はインストール先ディレクトリの指定です。デフォルトでは、「c:\win32app\bind」になります。「OK」ボタンをクリックするとインストールが開始され、途中でプライマリDNSにするかセカンダリDNSにするかを指定するダイアログボックスが表示されますから、「PrimaryDNS」を選んで「Next>」ボタンをクリックします。

09.gif
BINDをインストールするディレクトリを指定する

10.gif
プライマリDNSにするかセカンダリDNSにするかを指定する

 インストールが終了すると、基本的な設定が書き込まれた設定ファイルを見るかどうかが尋ねられます。「はい」ボタンをクリックするとnamed.bootファイル以下、4つの設定ファイルがメモ帳で表示されます。インストール直後では、まだじゅうぶん設定がすんでいませんが、ながめるだけながめておきましょう。

11.gif
設定ファイルをこのとき見るかどうかを指定する。メモ帳で開かれるので、そのまま修正してもいい

 最後に自分自身のIPアドレスをDNSサーバの検索順序に入れるかどうか問い合わせてきます。TCP/IPの設定ですでに入力してありますが、「はい」ボタンをクリックしておきましょう。BINDに関するドキュメントが表示されてインストールが終了します。「c:\temp\bindinst」フォルダはもう必要ありませんから、適当な時期に削除しましょう。

12.gif
DNSサーバの検索リストに入れるかどうかを指定する

設定ファイルを書く

 BINDには6つの設定ファイルがあります。\win32app\bindにインストールされる「DB.ZONEINFO」「DB.INADDR」「DB.127.0.0」「db.cache」とWindowsNTがインストールされているディレクトリに作られる「NAMED.BOOT」「resolv.conf」です。Windowsアイコンになっていますが、いずれもテキストファイルですから、エディタなどで編集することができます。デフォルトのままでは、まだ不十分なので修正しなければなりません。

 NAMED.BOOTファイルでは、修正する個所はあまりありません。

;
;    File:       named.boot
;    Purpose:    give the DNS its startup parameters and
;                list of startup files.
;
;
directory      C:\\win32app\\bind
                    ↑BINDのインストール先ディレクトリが
                      あらかじめ書かれている
;
;
;    XFRNETS parameter limits the transfer of zone information
;    to machines matching the subnet wildcard/mask entries listed
;
;
;XFRNETS 210.160.79.96
             ↑ネットワークアドレスだが、行そのもの
               がコメントアウトされている。「XFRNETS」
               行はゾーン転送のための設定
;
;    establish a loopback entry for this machine, and tell
;    it to load its identity from db.127.0.0
;
primary 0.0.127.IN-ADDR.ARPA db.127.0.0
;
;    set ourselves as primary server for the zone
;
primary hyperdyne.co.jp db.zoneinfo
             ↑プライマリDNSであることと、ドメイン
               名が書かれている
;
;    provide reverse address-to-host mapping
;
primary 96.79.160.210.in-addr.arpa  db.inaddr
             ↑IPアドレスからドメイン名+ホ
               スト名を解釈する逆引きに関す
               る設定を修正
;
;    prime the DNS with root server 'hint' information
;
cache . db.cache
;

 NAMED.BOOT以外のファイルでも共通していますが、ディレクトを表わす「\」は特殊な文字であるため「\\」と表記します。また、先頭に「;」がある行はコメント行です。

 文中の逆引きに関する行を修正するのは、BIND以外のDNSサーバソフトでもその多くが、「xxx.xxx.xxx.000」から「xxx.xxx.xxx.255」まで256のIPアドレスを持つクラスC(あるいはそれ以上)のネットワークが前提になっているためです。IPアドレスの枯渇が懸念されている現在では、クラスC未満の単位でIPアドレスが割り当てられるようになっていて、OCNもまた8または16個単位で割り当てられます。そのため、IPアドレスからドメイン名を読み出す、逆引きに関する設定は、そのままではうまくいきません。

 ここでは、「primary 79.160.210.in-addr.arpa db.inaddr」を「primary 96.79.160.210.in-addr.arpa db.inaddr」というようにネットワークアドレス(210.160.79.96)を逆に並べて書き込みます。「in-addr」はインターネットアドレスを、「arpa」はインターネットの全身であるARPAネットを表わしています。

(この部分追加 98/10/5 XFRNETS行はゾーン転送に制限をかけるための設定です。NTTのOCNサンプルページでもコメントアウトされていますが、コメントアウトして無効にしてしまうと、どこからのゾーン転送要求にも応えるようになってしまいます。ゾーン転送では、DNSサーバに設定した情報すべてが、要求元に送られます。セキュリティの観点から、制限しておいたほうがいいでしょう。設定の仕方は、

XFRNETS 210.160.79.0

で、210.160.79.0(ネットワークアドレス)のネットワーク(210.160.79.0から210.160.79.255)からのゾーン転送要求にのみ応えるようになります。サブネットを指定するには、

XFRNETS 210.160.79.96&255.255.255.240

というように「ネットワークアドレス&サブネットマスク」で、自ネットワークからのみのゾーン転送要求に応えるようになります。セカンダリDNSがOCN側の場合には、

XFRNETS 203.139.160.69&255.255.255.255

というOCN側のIPアドレス(&255.255.255.255としてIPアドレス限定)を直接指定すれば、そのIPアドレス以外からの要求には応えないようになります。

ゾーン転送に関する情報は、NTのイベントビューアに記録されます。

approved AXFR from [123.456.789.123].123 for xxx.co.jp

といったメッセージは、「123.456.789.123]からゾーン転送要求があり、それに応えたという記録です。許可してないマシンからのゾーン転送要求を拒否した場合は、「unapproved」と記録されます。

大橋注 OCN側のセカンダリDNSを指定する設定は、実績はありません。理論的にはこの設定でいいはずです。)

 次に、resolv.confを見てみましょう。

nameserver 210.160.79.98

 1行だけ書かれていると思います。一読してわかるように、DNS(ネームサーバ)のIPアドレスが指定されています。このファイルには、ドメイン名の指定とセカンダリDNSのIPアドレスを書き加えます。nameserver行はその順番で優位が指定されますので、セカンダリDNSであるOCN側のDNSサーバのIPアドレスは、かならず最後に書き加えてください。

domain hyperdyne.co.jp     ←ドメイン名を指定する
nameserver 210.160.79.98
nameserver 203.139.160.69   ←OCN側のセカンダリDNSサーバを追加する

 続いて、db.127.0.0ファイルです。

;
;    File:      db.127.0.0 file
;    Purpose:   This file establishes the identity of this DNS.
;               SOA stands for 'start of authority' and sets the
;               default parameters for information this DNS is 
;               authoritative for:
;
@        IN SOA    ns.hyperdyne.co.jp. hostmaster.hyperdyne.co.jp. (
            951213   ; serial number
            43200    ; refresh every 12 hours
            7200     ; retry after 2 hours
            1209600  ; expire after 2 weeks
            172800)  ; default ttl is 2 days
;
         IN NS    ns.hyperdyne.co.jp.
         IN NS    pns.ocn.ad.jp.
1        IN PTR   localhost.hyperdyne.co.jp.
;

 このファイルは自分自身に関して設定するためのファイルで(ループバック用)、とくに修正する個所はありませんが、「ホスト名+ドメイン名」が正しいかどうか確認しましょう。

また「@ IN SOA ns.hyperdyne.co.jp. hostmaster.hyperdyne.co.jp. (」行の「hostmaster.hyperdyne.co.jp」はネットワーク管理者のメールアドレス(hostmaster@hyperdyne.co.jp)です。以後で登場するメールサーバでも「postmaster」などの管理者名が使われ、Webサーバでは「webmaster」といった使われ方をします。もちろん、別々の人間が担当してもかまいませんし、すべてを同じにする必要はありませんが、管理のしやすさから、小規模ネットワークでは、DNSもメールもWebもすべて同じ人間が担当することが多いでしょうから、なんらかの形でわかりやすいものにしておいたほうがいいでしょう。

 注意しなければならないことがあります。「951213 ; serial number」に書かれている数字はDNS設定のシリアルナンバーです。一種のバージョン管理のためのもので、DB.INADDRとDB.ZONEINFOにもあります。いずれのファイルでも修正したときは、数字を増やしてください。セカンダリDNSなどはこの数字を参照して、変更があったことを知ります。したがって数字が変わっていなければ変更は反映されません。

実際にserial numberを記述するには、「980520」のようなyymmddの形式で年月日を記述するのがわかりやすいかもしれません。

 db.casheファイルはDNSに関するキャッシュデータのためのファイルと間違いやすいのですが、ROOTにあたるネームサーバを定義するためのファイルで修正する個所はありません。

 残りのDB.ZONEINFOとDB.INADDRファイルはもっとも重要なファイルです。このふたつのファイルでは、大きく次の4つのものを設定します。

  1. セカンダリDNSを設定する
  2. 「名前@ドメイン名」でメールを受信するように設定する(ここではxxxxx@hyperdyne.co.jp)
  3. インターネットで公開するほかのホスト(メールサーバやWebサーバなど)を登録する
  4. ホストに別名を付ける
です。  2は必ずしも必要な設定ではありません。たとえば、oohashi@ns.hyperdyne.co.jpとかoohashi@mail.hyperdyne.co.jpというメールアドレスのままでかまわないというなら、設定しなくてもかまいません。しかし、どうしてもoohashi@hyperdyne.co.jpのように、メールアドレスをメールサーバのホスト名がない状態にしたいときは、設定します。  3と4はお互いに関係してきます。小規模なネットワークの場合には、DNSサーバもメールサーバもWebサーバもすべて同じということも多いでしょう。その場合には、追加して登録するホストはありません。

 ただし、Webサービスでは「www」がhttpサーバの名前として使われていることが多く、「mail」などもメールサーバの名前としてよく使われます。ftpサーバの名前が「ftp」だったりもします。かりに一台がすべてのサービスをまかなうときでも、別名(仮の名前)として与えてやりましょう。そうすれば、何も知らない人が経験的にそうしたホスト名を付けてきても対応できます。また、そうしておけば、将来ネットワークが拡張して、DNSサーバとWebサーバを別々のホストにするといったときでも、対応しやすくなります。

 まず、DB.ZONEINFOファイルから設定しましょう。

;
;    File:      db.zoneinfo
;    Purpose:   This file establishes the name/address information
;               for this zone.  You will have to fill out the actual
;               information for your specific zone in the format shown
;               in the comments.
;
@        IN SOA    ns.hyperdyne.co.jp. hostmaster.hyperdyne.co.jp. (
                                         ↑管理者のメールアドレスにする
            951213   ; serial number
            43200    ; refresh every 12 hours
            7200     ; retry after 2 hours
            1209600  ; expire after 2 weeks
            172800)  ; default ttl is 2 days
;
         IN NS    ns.hyperdyne.co.jp.
         IN NS    pns.ocn.ad.jp.
                      ↑OCN側のセカンダリDNSを追加する。
                        最後にピリオドを忘れない。NSは、
                        NameServerの意味。

         IN A    210.160.79.98
                      ↑メールサーバのIPアドレスを追加する
                        (ここではDNSサーバと同じ)。
                        AはAddressの意味。

         IN MX 10  ns.hyperdyne.co.jp.
                      ↑メールサーバのホスト名を別名で
                        なく、実名で指定する。ここでは
                        DNSサーバと同じなので「ns」になる。
                        最後にピリオドを忘れない。MXは、
                        Mail eXchangeの意味。

;
;  Other Name Servers for this domain?   (EXAMPLES ONLY)
;
;    IN NS    examplens1.software.com.
;    IN NS    examplens2.software.com.
;    IN NS    examplens3.cerf.net.
;    IN NS    examplens4.webpa.com.
;
;      Local Host Address      
;
localhost    IN     A   127.0.0.1
;
;    Mail Exchange Records                 (EXAMPLES ONLY)
;
;    software.com.    IN MX    20 mailserver.software.com.
;                    IN MX    30 backupserver.cerf.net.
;    software.com.    IN A    198.17.234.33    ; For DUMB Mailers
;
;
;    Define local hosts                   (EXAMPLES ONLY)
;
;mach1    IN A    198.17.234.33
;        IN MX    10 mailserver.software.com.
;        IN MX    30 backupserver.cerf.net.
;
;   Example machine that receives its own mail, first:
;
;mach2    IN A    198.17.234.34
;        IN MX    10 mach2.software.com.
;        IN MX    20 mailserver.software.com.
;        IN MX    30 backupserver.cerf.net.
;
;
; CNames                                 (EXAMPLES ONLY)
;
;news        IN CNAME    mach1.software.com.
;www        IN CNAME    mach2.software.com.
;ftp        IN CNAME    mach1.software.com.
;hub        IN CNAME    mach2.software.com.
;

ns     IN A    210.160.79.98
                   ↑DNSサーバのIPアドレスを追加する
other  IN A    210.160.79.99
                   ↑Webサーバやメールサーバ、そのほかインター
                     ネットに公開したいホストがあるときは、その
                     ホスト名とIPアドレスを追加する

mail   IN CNAME   ns.hyperdyne.co.jp.
                   ↑DNSサーバにmailという別名を与える
                     (mail.hyperdyne.co.jpはns.hyperdyne.co.jp)。
                     最後にピリオドを忘れない。

www   IN CNAME   ns.hyperdyne.co.jp.
                   ↑DNSサーバにwwwという別名を与える
                     (www.hyperdyne.co.jpはns.hyperdyne.co.jp)。
                     最後にピリオドを忘れない。

ftp   IN CNAME   ns.hyperdyne.co.jp.
                   ↑DNSサーバにftpという別名を与える
                     (ftp.hyperdyne.co.jpはns.hyperdyne.co.jp)。
                     最後にピリオドを忘れない。

 別名を定義するCNAMEは、CANONICAL NAMEの意味です。最後は、DB.INADDRファイルです。

;
;    File:      db.inaddr
;    Purpose:   This file establishes the address-to-name lookup
;               information for this zone.  You will have to
;               fill out the actual address information for your
;               specific zone in the format shown in the comments
;
@        IN SOA ns.hyperdyne.co.jp. hostmaster.hyperdyne.co.jp. (
                                       ←管理者のメールアドレスにする
            951213   ; serial number
            43200    ; refresh every 12 hours
            7200     ; retry after 2 hours
            1209600  ; expire after 2 weeks
            172800)  ; default ttl is 2 days
;
         IN A     255.255.255.240
                      ↑サブネットマスクを設定する
                        IPアドレスが8個なら「255.255.255.248」
         IN PTR   hyperdyne.co.jp.
         IN NS    ns.hyperdyne.co.jp.
         IN NS    pns.ocn.ad.jp.
                      ↑セカンダリDNSを登録する。最後の
                        ピリオドを忘れない。

;1        IN PTR    localhost.hyperdyne.co.jp.
                      ↑「;」(セミコロン)を先頭につけてコメ
                        ントアウトする

;
;  Other Name Servers for this domain?   (EXAMPLES ONLY)
;
;    IN NS    examplens1.software.com.
;    IN NS    examplens2.software.com.
;    IN NS    examplens3.cerf.net.
;    IN NS    examplens4.webpa.com.
;
;
;
;
;      Addresses point to canonical name    (EXAMPLES ONLY)
;
;    33    IN PTR    example_host1.software.com.
;    34    IN PTR    example_host2.software.com.
;

98      IN PTR    ns.hyperdyne.co.jp.
                      ↑DNSサーバのIPアドレスの最後の数字
                        と「ホスト名+ドメイン名」を関連付
                        ける。PTRはPoinTeRの意味。
99      IN PTR    other.hyperdyne.co.jp.
                      ↑ns以外に公開するホストのIPアドレス
                        の最後の数字と「ホスト名+ドメイン名」
                        を関連付ける。

 設定ファイルの記述で注意しなければならないことは、第一に、「ns.hyperdyne.co.jp.」のようにFQDNの最後がピリオドで終わっていることです。もし、最後にピリオドがない場合は、ドメイン名が省略されたと見なされ、「起点名のルール」から、「ns.hyperdyne.co.jp.hyperdyne.co.jp」のように自動的にドメイン名が付けられてしまいます。

 もうひとつ注意しなければならないのが、左側が空欄で「IN A 210.160.79.98」のように記述されている場合です。この場合には、その前の行の左側の設定に影響されるということです。たとえば、

ns.hyperdyne.co.jp.   IN A    210.160.79.98
                      IN MX   210.160.79.98

と記述されていた場合、

ns.hyperdyne.co.jp.   IN A    210.160.79.98
ns.hyperdyne.co.jp.   IN MX   210.160.79.98

と解釈されます。そのため、記述そのものが正しくても、記述されている場所によって解釈のされ方が異なる場合があるということに注意しなければなりません。

 ふたつの注意点は、どちらも記述の省略の問題ですが、はまってしまうとなかなか抜け出せない落とし穴です。

 設定ファイルの記述が終わったら、いよいよDNSサーバの起動です。BIND for NTはWindowsNTのコントロールパネルからコントールします。設定ファイルのserial numberが増えていること、すべての数値が同じであることを確認してから、コントロールパネルの中の「DNS Controller」をダブルクリックしてください。表示されるパネルの「Reload Database」ボタンをクリックしてから、「Restart Server」ボタンをクリックしてください。新しい設定ファイルにしたがってBINDが再起動します。この操作は、設定ファイルを修正したらかならずする必要があります。

13.gif
コントロールパネルに「DNS Controller」アイコンが追加されている

14.gif
DNS Controllerの画面。ここからBINDをコントロールできる。

 DNSサーバが正しく設定されているかどうかを確認するコマンドがnslookupです。nslookupはWindowsNTのコマンドプロンプト上で操作します。コマンドプロンプトを開いたら、コマンドラインから「nslookup」と入力します。

Default Server: ns.hyperdyne.co.jp
Address: 210.160.79.98
Aliases: 98.79.160.210.in-addr.arpa
>

というように「Default Server」にDNSサーバの名前が、そして「Address」にDNSサーバのIPアドレスが、「Aliases」にDNSサーバのIPアドレスが逆順で「.in-addr.arpa」付きで表示されます。「>」にホスト名やIPアドレスを入力してテストします。自分のドメイン内にDNS設定ファイルに記述した別のホストがあれば、それを入力してテストします。もし、なければ外部ホストのホスト名やIPアドレスを入力してテストします。

(この部分追加 Aliases行はOCN特有のものです。OCNは、IPアドレスを8個や16個に分けて分配しているクラスC未満のネットワークで、実際のクラスCのネットワークは、JPNICからNTTのDNSサーバに割り当てられています。その環境下でも逆引きが正常にできるようにするため、OCN側で「あだ名」を付けています。


OCN側のDNSサーバで管理しているクラスCのネットワーク「203.139.162.0/24」の逆引きゾーンファイル「162.139.203.in-addr.arpa」において以下のような記述を加えている。

224.162.139.203.in-addr.arpa. IN NS dns.customer.co.jp.
225.162.139.203.in-addr.arpa. IN CNAME 225.224.162.139.203.in-addr.arpa.
226.162.139.203.in-addr.arpa. IN CNAME 226.224.162.139.203.in-addr.arpa.


その設定が反映されて、Aliases行として表示されます。したがって、DA64などのいわゆる専用線接続では表示されないのが、通常でしょう。詳しくは、http://www.ocn.ad.jp/setup/dns/question.htmlを参照してください。ただしこのページは、OCN加入者でないとアクセスできません。)

15.gif
nslookupコマンドでDNSのチェックをする

 問題がなければ、「exit」コマンドでnslookupコマンドを終了します。

 以上で、DNSサーバ側の設定は終了です。クライアントマシンを設定して、インターネットアクセスして試してみましょう。BINDが発するさまざまなメッセージは、WindowsNT管理ツールのイベントビューアの「アプリケーション」の項目に記録されています。定期的に観測してください。

16.gif
イベントビューアにDNSサーバからのメッセージが記録される。

 BINDを設定するとき、注意したいことがあります。市販の解説書やインターネットの各サイトでのDNSの設定は、ほとんどがクラスC(xxx.xxx.xxx.000〜xxx.xxx.xxx.255までのネットワーク)での設定であるため、OCNのようなクラスC未満での設定とは違っている場合があるということです。市販の解説書の説明とNTT側の説明をごちゃごちゃに解釈して設定ファイルを書き直しているうちに、インターネットへの出入りがまったくできなくなったという話もあります。DNSサーバがうまく動作しなくなったときは、いったんすべての設定ファイルをバックアップしたうえでBINDをインストールしなおして、基本から記述し直す勇気を持ってください。そのほうがかえって近道であることが多いものです。

Windows95側の設定

 Windows95マシン側もWindowsNTと同様、コントロールパネルの「ネットワーク」アイコンをダブルクリックすると開くネットワークのプロパティから設定します。「ネットワークの設定」タブからTCP/IPプロトコルを選んでから、「プロパティ」ボタンをクリックします。

 「TCP/IPのプロパティ」には、「IPアドレス」「WINS設定」「ゲートウェイ」「DNS設定」「詳細設定」「バインド」といったタブがあります。インストールしてあるWindows95がOSR2と呼ばれるバージョンのものには、「NetBIOS」というタブもあります。

 まず「IPアドレス」タブでは、そのマシンに割り当てるIPアドレスを指定します。「IPアドレスを指定」をクリックしてから、「IPアドレス」欄に入力します。ここでは、「210.160.79.101」を割り当てることにします。「サブネットマスク」は、DNSサーバに入力したサブネットマスク値と同じ数値を入力します。ここでは、「255.255.255.240」です。

17.gif
WindowsクライアントのIPアドレスを指定する。

 このタブの「IPアドレスを自動的に取得」は、DHCP(Dynamic Host Configuration Protocol)という機能を使うときのためのもので、IPアドレスを固定的に指定しないで、マシンが起動したときにサーバから指定してもらう仕組みになっています。マシン一台一台にIPアドレスを割り当てていると、普段使わないマシンにまでIPアドレスを割り当てなければならなくなって、IPアドレス不足を起こしたりします。また、マシン台数が多いネットワークでは、マシンの移動や変更などが起こるたびに、IPアドレスを変更したりしなければならず、めんどうです。DHCPはそうした負担を軽減させるための仕組みで、DHCPサーバとDHCPクライアントからなります。WindowsNTにはDHCPサービスが標準でありますが、ここでは導入しないことにします。

 「WINS設定」タブでは、「WINSの解決をしない」にチェックします。WINSはWindows Internet Naming ServiceというWindowsベースでの名前解決に関する仕組みで、WindowsNTにはWINSサービスが標準でありますが、DHCPと同じように、ここでは導入しないことにします。

 DHCPもWINSも決してむずかしい仕組みではありませんが、サーバが安定稼動していることが前提になります。とくにDHCPサービスは、サーバにトラブルが起こるとクライアントマシンにIPアドレスが割り当てられず、ネットワークの基本が構成されないことになってしまいます。TCP/IPをベースにしたネットワークをはじめて導入するといった場合には、ネットワークとサーバの稼動状況を見てから、あらためて導入したほうが無難でしょう。

 「ゲートウェイ」タブでは、ゲートウェイに関する設定をします。ここでは、ルータがゲートウェイにあたりますので、「新しいゲートウェイ」欄にルータのIPアドレスを入力してから、「追加」ボタンをクリックします。「インストールされているゲートウェイ」欄にそのIPアドレスが表示されます。

18.gif
「ゲートウェイ」としてルータのIPアドレスを指定する

 「DNS設定」タブでは、DNSサーバに関する設定をします。まず「DNSを使う」をチェックし、「ホスト名」にWindows95マシンの名前を、「ドメイン」欄にドメイン名を入力します。ここでは、ホスト名に「oohashi」、ドメイン名に「hyperdyne.co.jp」としました。「DNSサーバの検索順」にDNSサーバマシンに割り当てたIPアドレスを入力してから「追加」ボタンをクリックします。ここでは、「210.160.79.98」を入力しました。「DNSサーバの検索順」欄には、セカンダリDNSサーバのIPアドレスも入力しておきましょう。

19.gif
「DNS設定」では、DNSサーバに関する設定をする

 「NetBIOS」や「詳細設定」「バインド」は、ネットワークのプロトコルとしてTCP/IPをどう考えるかという問題に関係します。Windows95にはNetBEUIという独自プロトコルがあり、Windows95とNTだけのネットワークではNetBEUIを標準プロトコルとして利用することがあります。NetBEUIは高速なプロトコルですが、トラフィックが多いプロトコルとしても有名で、数台程度ならともかく数十台、数百台という規模になるとイーサネット環境を圧迫します。インターネットの普及もあって、全世界的にはTCP/IPプロトコルで統一しようという流れになってきています。「詳細設定」タブにある「標準のプロコルに設定」をチェックするとTCP/IPが標準のプロトコルになります。

 TCP/IPプロトコル上でWindowsネットワークを実現するものが、NetBIOS over TCP/IPです。そのための設定が「NetBIOS」と「バインド」です。「バインド」タブで「Microsoftネットワーククライアント」と「Microsoftネットワーク共有サービス」をチェックするとNetBEUIプロトコルがインストールされていなくても、Windowsネットワークを構成することができます。

 ちなみに筆者の会社では、NetBEUIとTCP/IPの両方のプロトコルを使っています。数台程度の規模のネットワークだからこそですが、インターネットサーバとは別に、NetBEUIしかインストールしていないWindows95マシンをファイルサーバとして共有しています。NetBEUIはルーティングしないプロトコルですから、セキュリティの面から安全だと思われるため、こうした構成にしています。

 ネットワーク環境を変更すると、Windows95マシンを再起動する必要があります。再起動したら、Windows95をインストールしたディレクトリに「WINIPCFG.EXE」というユーティリティがありますから、起動してみてください。これまで設定したことを確認することができます。

20.gif
WINIPCFG.EXEでTCP/IP関連の設定を確認する

 問題がなければ、Internet ExplorerやNetscape NavigatorなどのWebブラウザを使ってインターネットにアクセスしてみてください。他サイトにアクセスできるようなら、インターネットに「出ること」はとりあえず成功しました。

次にテストするのは、外部から内部に「入ってくる」ことができるかどうかです。

 インターネットには、先にテストで使ったnslookupをインターネット側から実行するページがいくつもあります。たとえば、「モーリーのホームページ」のツールの中にもあります(http://www.imasy.or.jp/~yasuyuki/tool/nslookup.html)。外部からテストすることができますから、使わせていただいてはいかがでしょうか。

21.gif
インターネットのサイトからnslookupを実行してみる

(この部分追加 nslookupは、そのまま起動すると、起動させたマシンに設定してあるDNSサーバがデフォルトのDNSサーバとなりますが、「server どこどこのDNSサーバ」とすると、nslookupが問い合わせるDNSサーバを変更することができます。また、起動時に「nslookup ns どこどこのDNSサーバ」とすると、「どこどこのDNSサーバ」に対して「ns」というマシンに対してnslookupすることになります。このとき「どこどこのDNSサーバ」には最後にピリオドを付けたほうがいいようです。)

Macintoshの設定

 次に、Macintoshクライアントの設定を説明します。Macintoshには、プロトコルとしてAppleTalkがあります。しかし、AppleTalkプロトコルをインストールしただけでは、Macintosh同士でしかアクセスできません。そのため、AppleTalkとは別にTCP/IPをインストールする必要があります。MacintoshでのTCP/IPのインストールは、漢字Talkのバージョンによって異なっていて、漢字Talk 7.5.3以降からOpen Transportが採用されています。それ以前はMac TCPを使います。Open TransportもMac TCPも、設定の仕方は基本的に同じですが、用語がじゃっかん違っていることに注意してください。ここではMac OS8に搭載されている最新のOpen Transport 1.2で説明します。コントロールパネルから「TCP/IP」を選びます。もしなければ漢字TalkのシステムCD-ROMからインストールしてください。

 TCP/IPの設定画面が表示されたら、「経由先」を「Ethernet」に、「設定方法」を「手入力」にして、「IPアドレス」欄にIPアドレスを入力します。ここでは、「210.160.79.109」にしました。「サブネットマスク」は、DNSサーバやWindows95クライアントと同じ「255.255.255.240」に設定します。「ルータアドレス」にルータのIPアドレス「210.160.79.97」を、「ネームサーバアドレス」にDNSサーバのIPアドレス「210.160.79.98」を入力します。設定が終了したら「ファイル」メニューから「終了」を選び、Webブラウザを起動してインターネットにアクセスしてみてください。

22.gif
MacintoshのOpenTransportでIPアドレスを指定する

著作権、商標等について (C) 1998 HyperDyne Inc.