WINSの概要(2)

解決の概要

 WINSの主要なサービスである名前の解決とそれに付随する登録や更新、削除のプロセスをこの項で扱う。

名前解決までの流れ

 WINSがNetBIOS名を解決する事は前述の通りだが、今度はそのプロセスに焦点を当てる。効率的に名前解決をするためには、クライアント側が動的に自身の名前を追加・訂正・削除できないといけない。WINSによる名前解決のプロセスには、これらクライアント側による動的な情報提供も含まれている。

 WINSシステムではネットワーク上にある必要な名前すべてがサーバーのデータベースに登録される。負荷分散・障害対策のため複数のサーバーがあれば、データベースは複製され、各サーバーに等分配される。(今回は単一サーバーとする予定なのでこの辺りは割愛)
 また、クライアントによる動的な登録以外にもサーバ側で静的に登録を行う事も可能である。

名前登録

 名前登録はクライアント側のNetBIOS名使用要求によって成される。
 この際にクライアントは排他的な一意名か共有されるグループ名、いずれかを選択する。NetBIOSアプリケーションも自身の名前を登録することが可能。
 尚この際、名前が有効な期間を示すTTL(Time To Live:生存時間)がサーバーにより設定される。クライアントはこのTTLを越えてネットワークを利用する場合、TTLが切れる前に再度サーバーに要求を送る必要がある。(別項 名前の更新 参照)

名前解放

 名前解放は正常なシャットダウン時にクライアントが名前の利用終了宣言をする事で成される。またコマンドnbstat-RRによっても解放は可能。
 サーバーはデータベースの対応するレコードに解放フラグを付加し、一定期間経過後にそのレコードを破棄する。
 解放フラグのついたレコードは、同NetBIOS名異IPアドレスの要求に対応して更新される。(DHCPによりIPの割り振られるノートなどがこの恩恵を受けることになる。)
 ちなみに解放フラグがついていなレコードの場合は、要求があった場合一度旧登録先に接続試験を行い、接続が確立しないことを確認してから更新が行われる。(接続が確立したならエラーを返す)

名前の更新

 クライアントは、生存確認の意味も含めて定期的に名前の更新を行う。この名前更新は名前登録とほぼ同じプロセスで進行する。
 サーバーが名前登録を完了する際クライアントにTTL(Time To Live:生存時間)を告知することは前項「名前登録」で述べたとおりであるが、このTTLを越えて利用する場合の継続要求がこの名前更新であると言える。基本的にはこのTTLの50%が経過したころにクライアントは名前更新を行う。
 なお、TTLを設定せずこの更新要求を不要とし、恒久的に使われるレコード(主にサーバー向け)は静的登録により別にサーバー側で設定が成される。

名前の解決

 WINS クライアントの名前解決は、Microsoft NetBIOS over TCP/IP (NetBT) クライアントによって使用されるプロセスの拡張機能です。名前解決の実際の方法はユーザーから透過的。
 Windows XP および Windows 2000 では、net use または類似の NetBIOS ベースのアプリケーションによってクエリが行われると、WINS クライアントは、次の順番で名前解決を行う。
1. 名前が 15 文字を超えるかどうか、またはピリオド (".") が含まれるかどうかを判別。超える場合は、DNS に名前を照会。
2. 名前がクライアントのリモート ネーム キャッシュに記憶されているかどうかを判別
3. 構成された WINS サーバーに問い合わせて、WINS を使用して名前を解決
4. サブネットへのローカル IP ブロードキャストを使用
5.LMHOSTS の参照が有効になっている場合は、LMHOSTS ファイルを確認
6. Hosts ファイルを確認
7.DNS サーバーに照会