![]() |
図1 |
ローカル・ファイル参照型は,通信する可能性のあるすべてのマシンのコンピュータ名とIPアドレスの組を,各マシンがファイルとしてローカルに保存しておく方式(図1[拡大表示]b)。ローカルですべてを処理できるために最も名前解決の速度は速い。しかし,マシンの追加や名前の変更があると,関係するすべてのマシンのローカル・ファイルを変更する必要があり,メンテナンス性は最も低い。コンピュータ名に対するファイルがLMHOSTS,ホスト名に対するファイルがhostsである。
ブロードキャスト型は,IPアドレスからMACアドレスを知るときに使うARPのように,すべてのマシンに対してブロードキャストで名前解決を依頼する(図1[拡大表示]c)。他の2つの方法と異なり,何も用意する必要がないのが最大の利点である。だが,ブロードキャストであるため,ルーターを越えた名前解決ができない。つまり,ある程度の規模のネットワークでは利用できない。
なお,コンピュータ名の名前解決は,従来はブロードキャストが中心だった。一方,もともとのTCP/IPネットワークの世界では,ブロードキャストによるホスト名の名前解決というものは存在しない。DNSサーバーとhostsファイルでのみ,名前解決を実現していた。ただしWindowsマシンでホスト名の名前解決を行う場合は,DNSとhostsによる名前解決が失敗したらコンピュータ名の名前解決方法を行ってみる。つまり,ブロードキャストによるホスト名の名前解決もやってみる。
では,どの名前解決を利用したらよいのか。それはどうやって指定すればよいのだろうか。
![]() |
写真1 |
すでにUNIXをサーバーとして利用し,UNIXの操作は行っていることから,ホスト名の解決にはDNSサーバーを用意するのが最もよいと思われる。DNSでネーム・サーバーの運用管理をするならば,コンピュータ名の名前解決にWINSを利用しても,運用管理面でのデメリットにはならないだろう。また,DNSは静的に設定する必要があるが,WINSでは,Windowsマシンがネットワークにログオンすると,そのコンピュータ名とIPアドレスのマッピングが動的更新されるため,WINSの運用管理の手間は少ない。
![]() |
図2 |
WINS,DNSの利用は,Windows95であれば,[コントロールパネル]の[ネットワーク]-[ネットワークの設定]でTCP/IPのプロパティを表示し,[WINS設定]や[DNS設定]画面で必要な項目を設定すればよい。それぞれのサーバーの中身を見るためには,WINSの場合は,Windows NTで稼働するWINSマネージャを利用する(写真1[拡大表示])。DNSサーバーの場合は,サーバー・マシンでなくても中身を確認できる。Windows NTに標準添付しているnslookup.exeをコマンド・プロンプトで実行すればよい。
それでは,ローカル・ファイル参照型は必要ないのかというと,そうではない。図2[拡大表示]にLMHOSTSファイルのサンプルを示したが,場合によっては,これをうまく使いこなすことでシステム全体の性能を向上させることができる。
![]() |
表1 |
![]() |
写真2 |
表1で示した名前解決の順番は基本であり,実際の名前解決の順番はもう少し複雑である。DNSサーバー/hostsファイルや,名前解決のキャッシュ(NetBIOSキャッシュ)があるからだ(図3[拡大表示])。図3は,上からスタートして,名前解決ができた時点で終了する。これを見て分かるように,どのノード・タイプでもLMHOSTSやhostsを参照するようにできる。つまり,ローカル・ファイルに指定さえしておけば,WINSサーバーが落ちていようが,ルーター越えだろうが実現できるのである。
![]() |
図3 |
NTの場合は,チェックすればよいだけだが,Windows95の場合は,図2で示したような「#PRE」キーワードを付けるとよい。#PREがついたものは,マシン起動時にNetBIOSキャッシュに読み込んでしまうからだ。この#PREは,使い方によっては有効なキーワードである。図5を見れば分かるように,コンピュータ名の名前解決では,常にNetBIOSキャッシュが最初に参照される。名前解決の速度を上げたいものだけ,あらかじめ読み込んでおけばよい。ただし,運用管理には注意しなければならない。#PREで示したマシンのIPアドレスが変更された場合は,即座にその値を含んでいるLMHOSTSの中身を更新しなければいけないからだ。
このような場合に有用なLMHOSTSのキーワードもある。「#INCLUDE]である。これを利用すれば,ネットワーク上にある特定のファイルをローカル・ファイルとして利用することができる。つまり,WINSサーバーを利用するときと同じような集中管理が可能になる。#INCLUDEを利用する場合は,常に#PREと併用する必要がある。つまり,ネットワーク上のファイルの中身を,すべてNetBIOSキャッシュに取り込んでしまうのだ。すると,WINSサーバーなど利用しないで,すべてこれらで実現すればよさそうだが,#PREでキャッシュに読み込める数には限度がある,WINSサーバーではコンピュータ名とIPアドレスの組を動的に把握できる,WINSではWINSマネージャというGUIの管理ツールが利用できる──などの理由から,やはりWINSの利用が基本だと考えるとよいだろう。
一方,コンピュータ名の名前解決では,図3の下の方の「hostsファイルの確認」,「DNSサーバーへ問い合わせ」を行いたくない場合もある。例えばDNSサーバーとしてISPのものを利用している場合などだ。何らかの原因でコンピュータ名の名前解決に失敗し,わざわざISPのDNSサーバーにその名前解決にいっても,そこで名前解決ができることはないだろう。その場合,Windows NTでは,やはり[WINSアドレス]の設定で「Windows名前解決にDNSを利用する」のチェックをとればよいのだが,Windows95ではレジストリを変更しなければならない。
この連載は,日経オープンシステムに連載した「新人SEのためのネットワーク入門」の内容をもとに,Webコンテンツとして再編集したものです。なお,日経オープンシステム別冊「新人SEのためのネットワーク入門」では,本記事の内容を詳しく説明するほか,実践編としてトラフィックの把握やネットワーク設計の実際などの内容もご紹介しております。内容のご確認とご購入は,http://coin.nikkeibp.co.jp/coin/nos/se/でお願いいたします。 |