次は、通信に先立つNetBIOS名の検索について見てみる。
NetBIOSにおける通信では、最初に通信先の相手マシンを見つける操作が必要となる。NBT環境では、これはNetBIOS名から相手マシンのIPアドレスを求めるという操作になる。具体的には、通信相手のNetBIOS名をブロードキャストすると、その名前を登録したノード自らがその検索要求に対する応答パケットを返す、というふうに動作する。この場合、最初の問い合わせはブロードキャストだが、応答パケットはユニキャストとなる。
以下に具体的な例を示しておく。これは、クライアント(PC)のコマンド・プロンプト上で「net view \\server」というコマンドを実行したところである。クライアントはこのコマンドを実行するために、まず「server」という名前のマシンを検索しようとして、NBTの検索パケットをブロードキャスト送信する。パケットの構造については前回の「2.NBTパケットの構造」にある「名前サービス・パケット」の項を参照していただきたい。
名前解決の結果は一定時間だけNetBIOSキャッシュに格納される。次にまた通信を行う場合、キャッシュ中に該当するエントリがあれば、キャッシュからIPアドレスが取り出され、問い合わせパケットを送信することはない。NetBIOS名キャッシュの内容を確認するには「nbtstat -c」コマンドを実行すればよい。解決したNetBIOS名とユニークかグループかの種別、IPアドレス、寿命(キャッシュされているエントリの有効期限。単位は秒)の情報が表示される。
C:\>nbtstat -c
Local Area Connection:
Node IpAddress: [172.16.1.101] Scope Id: []
NetBIOS Remote Cache Name Table
Name Type Host Address Life [sec]
------------------------------------------------------------
SERVER <20> UNIQUE 172.16.1.2 580
この画面で、「Life」の場所に記録されているのがこの「SERVER<20>」というエントリの有効期限である。デフォルトでは600秒(10分)であり、これを過ぎるとキャッシュから削除される。その後SERVERに対する名前解決を行おうとすると、またNetBIOSの名前問い合わせパケットが送信され、結果がキャッシュに格納されることになる。
次は、WINS環境におけるNetBIOS名の検索について見てみよう。
WINSサーバが利用できる場合は、名前解決をブロードキャストではなく、WINSサーバが行う。WINSサーバへの接続はブロードキャストではなく、TCPやUDPによる通信によって行われるため(通常はDHCPなどで各クライアントへWINSサーバのIPアドレスを配布する)、IP的に到達可能な場所(IPリーチャブルなどという)にWINSサーバが存在すれば、どこに配置されていてもよい。そのため、複数のネットワークをまとめて1台のWINSサーバで管理したり、複数台のWINSサーバを相互に連携・複製させてWINSサーバで集中的に名前を管理したりすることにより、大規模なネットワークでもNetBIOS名を一括して管理することができる。ただしこのためには、各ネットワークにおけるマシン名やワークグループ名(ドメイン名)などが重複しないように、あらかじめ慎重に検討しておく必要がある。
WINSサーバが存在する場合の名前解決の例を次に示しておく。先の例と比べると、最初の問い合わせパケットがブロードキャストではなく、WINSサーバへの直接問い合わせパケットになっているし、それに対する応答も、対象となるマシンが直接応答するのではなく、WINSサーバから応答が返っている。
WINSサーバには、WINSクライアントから送信されたNetBIOS名とIPアドレスが登録されている。またWINSサーバ同士で連携して内容を複製することも可能であり、負荷分散や耐障害性の向上に役立っている。以下にWINSサーバに登録されているデータの例を示しておく。
各システムがシャットダウン(終了)する場合、そこで利用されていたNetBIOS名は「解放」され、(必要ならば)ほかのシステムが利用できるようになる。解放を明示的に指示することにより、この名前をキャッシュしている側では、そのNetBIOS名が利用できなくなったことを認識できる。
解放のための通知は、どれか特定のマシンに対して通知するわけではないので、ブロードキャストで行われ、受信した側ではキャッシュ内容の削除などの処理を行う。また、この解放要求の送信に対する受信確認も特に必要とはしない。各マシンにキャッシュされたNetBIOSの名前解決の情報は、いずれ時間が経つと自動的に消去されるからだ。
WINSが導入されている環境では、システム終了時のNetBIOS名の解放要求は、WINSサーバに向けてのみ送信される。ブロードキャストは使われないので、やはりネットワークに対する負担は少ない。
Copyright© Digital Advantage Corp. All Rights Reserved.