カスタム検索
|
data-lang="ja">Tweet |
|
|
WINSとDNSの働きをじっくり調べる
Modified: 15 Jan 1999
実験開始の状態
家庭内の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) を知って通信できています。
下の絵は、rt80i という名前のルータです。rt80i のIPアドレスがわからないので通信できないと言っています。
上記二つの違いは、上は、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と通信できなくなりました。
結論
NetBIOSをサポートしているPC(Windows95/98、WindowsNT、linux)では、特別な設定をしなくても、コンピュータ名がわかれば通信できます。
その仕組みは、通信するためのアドレスを問い合わせて、問い合わせ先から、IPアドレスを送り返してもらうことで、相手のアドレスを知って、通信します。
WINSをインストールする
WINSをインストールします。
各PCの「ネットワーク」の「WINS」タグに、WINSサーバのIPアドレスを登録します。
そこで、リブートすると、WINSが働きます。
WINSのデータベース
k6-300のPCを起動し、"ping g6-200" を行います。 すると、以下のように、WINSデータベースに、k6-300 の存在が自動的に登録されます。
以下は、WINSのデータベースの状態です。下のウインドウの下の方に、K6-300 が見えます。有効期限も見てください。登録してから、約1週間後になっています。つまり、K6-300 の存在を確認したので登録します。ただし、7日以上再度通信がなかった場合、消去します。という意味です。
pingしてみる
K6-300 は、WINSのデータベースに登録されましたので、k6-300 の電源を切った状態で接続を試みると、以下のようになります。
"Pinging k6-300 [192.168.0.4] with 32 bytes of data:" とメッセージが出ています。これは、k6-300 のIPアドレスは、WINSを参照してわかった。しかし、実際に通信ができない。という状態です。
非Windowsマシンはどうなるのか
以下の絵を見てください。
k6-300 は、Windows98がインストールされているマシンなので、接続できるようになりました。
しかし、rt80i というルータは、やはり接続できません。ルータはNetBIOSのプロトコルを持っていないので、いつまでたってもWINSに登録されません。
このような場合、手動で登録します。
その用途のファイルが、lmhosts というファイルです。このファイルは、\winnt\system32\drivers\etc に入っています。
インストール直後は、lmhosts.sam という名前になっていますので、これをエディタで開いて、以下の行を登録します。
rt80i 192.168.0.1 そして、以下のように、ネットワーク設定の、「WINS」タグで、lmhost を参照させるように、チェックを入れます。
すると、以下のように、動作するようになります。
lmhostsは、WINSのところで指定するので、WINSがlmhostsを参照するように感じますが、lmhostsの参照は、WINSサーバが止まっていても参照してくれます。つまり、WINSとlmhostsは直接関係ありません。
結論
WINSを起動しておくと、通信相手の情報を自動的に蓄積し、コンピュータ名に対するIPアドレスは、毎回、教えてもらわなくても、とにかく、WINSサーバーに問い合わせればいいので、効率がよくなります。
NetBIOSプロトコルを搭載していない機器の場合、lmhosts に手動で登録しておく必要があります。
WINSを停止させ、DNSだけ動作させてみます。
DNSを設定する
「ネットワーク」から「Microsoft DNS Server」をインストールし、再起動します。
クライアントを設定するために、「ネットワーク」から「TCP/IP」を選んで、「DNS」のサーバのIPアドレスを入力します。
pingしてみる
そして、"ping k6-300" を実行すると、以下のようになります。
k6-300 のPCの電源は入っていませんので、"Request timed out." となっています。
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)が表示されています。