ここでは,NetBIOS名の名前解決を実行するときの通信の中身を具体的に見ていこう。NetBIOS名の名前解決が行われた際のパケットをパケット・キャプチャ・ソフトのWiresharkを使ってキャプチャしてみた(図5)。

図5●名前解決のためにやりとりしたパケット
図5●名前解決のためにやりとりしたパケット
[画像のクリックで拡大表示]

NetBIOS名前解決の実際の動きを確認

 キャプチャしたパケットを見てみると,IPアドレスが192.168.1.28のVistaパソコン(VISTA-PC2)から,NetBIOS名前解決要求のパケットがブロードキャストで送信されている(図5の(1))。このときの送受信に使われるポート番号は,どちらもUDPの137番である。

 前回の記事の図4で確認したように,Vistaの標準ノード・タイプはハイブリッドである。このため,まずはWINSでの名前解決を実行するはずなのだが,ここで使ったVistaパソコンではWINSサーバーに関する設定をしていない。このため,WINSを使った名前解決のパケットは送信されずに,いきなりブロードキャストでの名前解決が送信されている。

 名前を解決したいコンピュータ,すなわち通信相手となるコンピュータのNetBIOS名は,「VISTA-PC1<20>」である。VISTA-PCというコンピュータ名に付いている「<20>」というのが,ファイル・サーバー・サービスを対象としていることを示すNetBIOSサフィックスである。

 このブロードキャストの要求パケットに対して,VISTA-PC1というコンピュータ名をもつパソコンが,この解決要求パケットを送ってきたパソコン(VISTA-PC2)にユニキャストで応答を返している(図5の(2))。その応答パケットには,自分のIPアドレス(192.168.1.15)が含まれている。そのIPアドレスとの間で,NetBIOSセッション(SMBセッション)を確立している(図5の(3))。

 なお,このように名前解決で得られたNetBIOS名およびIPアドレスの対応は,キャッシュとしてローカルに10分間だけ保存される。キャッシュされている間に,同じコンピュータ名の名前解決を実行する必要が生じた際には,このキャッシュ情報が利用される。そのコンピュータに保存されているキャッシュの情報は,「nbtstat(エヌピーティースタット) -c」コマンドで確認できる(図6)。

図6●パソコンが管理しているコンピュータ名はnbtstatコマンドで確認できる
図6●パソコンが管理しているコンピュータ名はnbtstatコマンドで確認できる
nbtstat-nで登録されているコンピュータ名を,nbtstat-cでキャッシュしているコンピュータ名の名前解決情報を表示する。