NetBIOS

WindowsのNetBIOS名前解決とは、単純にNetBIOS 名を IP アドレスに正しくマップすることです。NetBIOS 名は 16 バイトのアドレスで、ネットワーク上の NetBIOS リソースの識別に使用されます。NetBIOS 名には、一意の (排他的な) 名前とグループ名 (非排他的な名前) の 2 種類があります(Microsoftはこのように表現しますが、私には意味不明です)。NetBIOS プロセスが特定のコンピュータの特定のプロセスと通信する場合は、一意の名前が使用されます。NetBIOS プロセスが複数のコンピュータの複数のプロセスと通信する場合は、グループ名が使用されます。

NetBIOS 名を使用するプロセスの例としては、 Windows XP Pro の File and Printer Sharing for Microsoft Networks サービスがあります。コンピュータを起動すると、このサービスはコンピュータ名に基づいて一意の NetBIOS 名を登録します。サービスが使用する名前は、15 文字のコンピュータ名に 16 文字目として 0x20 を追加した名前です。コンピュータ名の長さが 15 文字未満の場合は、15 文字に達するまでスペースが追加されます。このことは非常に大切なことなので、Windowsエンジニアはしっかりと覚えておきましょう。

コンピュータ名を使ってファイル共有接続を開く場合は、指定したファイル サーバーの File and Printer Sharing for Microsoft Networks サービスが特定の NetBIOS 名と対応することになります。たとえば、CORPSERVER という名前のコンピュータに接続しようとした場合、そのコンピュータの File and Printer Sharing for Microsoft Networks サービスに対応する NetBIOS 名は次のとおりです。

KANAME     [20]

スペースが追加されることによってコンピュータ名の長さが 15 文字になっていることに注意してください。ファイルとプリンタを共有する接続を確立するには、まず TCP 接続を確立する必要があります。TCP 接続を確立するには、"KANAME     [20]" という NetBIOS 名を IP アドレスに解決する必要があります。

NetBIOS 名を IP アドレスへ解決する正確なしくみは、そのノードで構成されている NetBIOS ノード タイプによって異なります。次の表は、RFC 1001『Protocol Standard for a NetBIOS Service on a TCP/UDP Transport: Concepts and Methods』で定義されている NetBIOS ノード タイプの一覧です.

ノードの種類 説明
b ノード (ブロードキャスト) b ノードでは、NetBIOS 名のクエリをブロードキャストして、名前の登録と解決を行います。b ノードには、次のような 2 つの重要な問題があります。(1) ブロードキャストがネットワーク上のすべてのノードに送信されることと、(2) ルーターは一般にブロードキャストを転送しないため、ローカル ネットワーク上の NetBIOS 名しか解決できないことです。
p ノード (ピア ツー ピア) p ノードは、WINS サーバーなどの NetBIOS ネーム サーバー (NBNS) を使って NetBIOS 名を解決します。p ノードはブロードキャストを使用せず、ネーム サーバーに直接照会します。
m ノード (混合) m ノードは b ノードと p ノードを組み合わせたものです。既定では、m モードは b ノードとして機能します。m ノードがブロードキャストによって名前を解決できない場合は、p ノードを使って NBNS に照会します。
h ノード (ハイブリッド) h ノードは p ノードと b ノードを組み合わせたものです。既定では、h ノードは p ノードとして機能します。h ノードが NBNS で名前を解決できない場合は、ブロードキャストを使って名前を解決します。

Microsoft社TechNetより

Windows Server 2003 オペレーティング システムを実行しているコンピュータは、既定の設定では b ノードであり、WINS サーバーを使うように構成すると h ノードになります。また、それらのコンピュータでは、LMHOSTS と呼ばれるローカルなデータベース ファイルを使ってリモートの NetBIOS 名を解決できます。LMHOSTS ファイルは systemroot\System32\Drivers\Etc フォルダに格納されています。

Microsoft社では、Windows ベースのコンピュータでリモートの NetBIOS 名を解決できるようにするには、WINS サーバーの IP アドレスを設定することを勧めています。 Windows XP Professional および Windows Server 2003 オペレーティング システムなどの Active Directory ベースのコンピュータで、Windows NT、Windows 95、Windows 98、Windows 2000、または Windows Millennium Edition を実行する Active Directory ベースでないコンピュータと通信するには、WINS サーバーの IP アドレスを設定する必要があります。