カスタム検索
このエントリーをはてなブックマークに追加
tomo.gif (1144 ツバツイツト)line.gif (927 ツバツイツト)To previous pageTo home pageMailing to me

WINSとDNSの働きをじっくり調べる

Modified: 15 Jan 1999


WINSもDNSも働いていない状態
WINSを動作させるとどう変わるか
DNSだけを動作させるとどう変わるか


 WINSもDNSも働いていない状態

実験開始の状態

家庭内のLANに、2台のPCと、ダイアルアップルータ、合計3台がつながっている。

実験をしているPCのコンピュータ名(=ホスト名)は、g6-200 (192.168.0.2) である。
別のPCのコンピュータ名(=ホスト名)は、k6-300 (192.168.0.4) である。
ダイアルアップルータは、のコンピュータ名(=ホスト名)は、rt80i (192.168.0.1) である。


コンピュータ名で、pingしてみる

Windows同士であれば、LANに接続するだけで、特別な設定をしなくても、相手のコンピュータ名を使って通信できます。まずは、その実験を行って見ます。

下の絵は、g6-200 のPC(WindowsNT)から、k6-300 のPC(Windows98)に、ping 操作をしてみた結果です。g6-200 には、k6-300 の存在を、どこにも登録していませんが、ちゃんと、k6-300 のIPアドレス(192.168.0.4) を知って通信できています。

ns1.gif (7982 ツバツイツト)

下の絵は、rt80i という名前のルータです。rt80i のIPアドレスがわからないので通信できないと言っています。

ns2.gif (4068 ツバツイツト)

上記二つの違いは、上は、WindowsのPCであること、下はWindowsではないということです。つまり、Windows同士であれば、相手の設定をしなくても、ちゃんと通信できますが、Windowsでない装置とは、それなりのソフトをインストールして設定をしないと通信できません。

正確には、Windows同士が、相手の設定をしなくても通信できるのは、NetBIOSというプロトコルが働いているからです。

NetBIOSでは、コンピュータ名をLANに出し、”この名前を持ったPCは、IPアドレスをください”というパケットを出します。各PCは、LANを監視していて、自分かどうかを見ます。自分であれば、IPアドレスを返します。その結果、IPアドレスを知り、通信ができるのです。

ルータ装置は、TCP/IPは搭載していますが、NetBIOSを搭載していないので、返事を返しません。したがって、”Bad IP address rt80i” のメッセージが出たのです。

相手から応答があれば通信できますが、もし、相手のPCの電源が入っていなかったら、IPアドレスはもちろん、存在すらわかりませんので、以下のように、先ほどは通信できたPCと通信できなくなりました。

ns3.gif (4050 ツバツイツト)


結論

NetBIOSをサポートしているPC(Windows95/98、WindowsNT、linux)では、特別な設定をしなくても、コンピュータ名がわかれば通信できます。

その仕組みは、通信するためのアドレスを問い合わせて、問い合わせ先から、IPアドレスを送り返してもらうことで、相手のアドレスを知って、通信します。


 WINSを動作させるとどう変わるか

WINSをインストールする

WINSをインストールします。

各PCの「ネットワーク」の「WINS」タグに、WINSサーバのIPアドレスを登録します。

そこで、リブートすると、WINSが働きます。

WINSのデータベース

k6-300のPCを起動し、"ping  g6-200" を行います。 すると、以下のように、WINSデータベースに、k6-300 の存在が自動的に登録されます。

以下は、WINSのデータベースの状態です。下のウインドウの下の方に、K6-300 が見えます。有効期限も見てください。登録してから、約1週間後になっています。つまり、K6-300 の存在を確認したので登録します。ただし、7日以上再度通信がなかった場合、消去します。という意味です。

ns5.gif (13001 ツバツイツト)


pingしてみる

K6-300 は、WINSのデータベースに登録されましたので、k6-300 の電源を切った状態で接続を試みると、以下のようになります。

ns4.gif (5805 ツバツイツト)

"Pinging k6-300 [192.168.0.4] with 32 bytes of data:" とメッセージが出ています。これは、k6-300 のIPアドレスは、WINSを参照してわかった。しかし、実際に通信ができない。という状態です。


非Windowsマシンはどうなるのか

以下の絵を見てください。

k6-300 は、Windows98がインストールされているマシンなので、接続できるようになりました。

しかし、rt80i というルータは、やはり接続できません。ルータはNetBIOSのプロトコルを持っていないので、いつまでたってもWINSに登録されません。

ns7.gif (8790 ツバツイツト)

このような場合、手動で登録します。

その用途のファイルが、lmhosts というファイルです。このファイルは、\winnt\system32\drivers\etc に入っています。

インストール直後は、lmhosts.sam という名前になっていますので、これをエディタで開いて、以下の行を登録します。

rt80i    192.168.0.1

そして、以下のように、ネットワーク設定の、「WINS」タグで、lmhost を参照させるように、チェックを入れます。

ns8.gif (8015 ツバツイツト)

すると、以下のように、動作するようになります。

ns9.gif (7900 ツバツイツト)


atten.gif (960 ツバツイツト) lmhostsは、WINSのところで指定するので、WINSがlmhostsを参照するように感じますが、lmhostsの参照は、WINSサーバが止まっていても参照してくれます。つまり、WINSとlmhostsは直接関係ありません。


結論

WINSを起動しておくと、通信相手の情報を自動的に蓄積し、コンピュータ名に対するIPアドレスは、毎回、教えてもらわなくても、とにかく、WINSサーバーに問い合わせればいいので、効率がよくなります。

NetBIOSプロトコルを搭載していない機器の場合、lmhosts に手動で登録しておく必要があります。


 DNSだけを動作させるとどう変わるか

WINSを停止させ、DNSだけ動作させてみます。


DNSを設定する

「ネットワーク」から「Microsoft DNS Server」をインストールし、再起動します。

クライアントを設定するために、「ネットワーク」から「TCP/IP」を選んで、「DNS」のサーバのIPアドレスを入力します。

pingしてみる

そして、"ping  k6-300" を実行すると、以下のようになります。

k6-300 のPCの電源は入っていませんので、"Request timed out." となっています。

ns6.gif (5948 ツバツイツト)

WINSの時は、

"Pinging k6-300 [192.168.0.4] with 32 bytes of data:"

でしたが、DNSの時は、

"Pinging k6-300.yos.lint.ne.jp [192.168.0.4] with 32 bytes of data:"

のように少しメッセージが違います。
上記は、NetBIOSのプロトコルで、コンピュータ名(k6-300)が表示されています。
下は、TCP/IPプロトコルで、ホスト名(k6-300)+ドメイン名(yos.lint.ne.jp)が表示されています。


To previous pageTo home pageMailing to meJump to Top of pagetomo.gif (1144 ツバツイツト)
カスタム検索



このエントリーをはてなブックマークに追加