Windows NT/95/98 におけるNetBIOS名前解決シーケンス

# 図２ Windowsにおける名前解決の手順

開始 |  |
↓ |  |  |  |
ホスト名が15文字より長い or ピリオドが含まれている | Yes→ | [Microsoft TCP/IPのプロパティ] ダイアログボックスの 「Windows名前解決にDNSを使う」 チェックボックスが オンにされているか （Win9x/Meは常にNo） | No→ | 解決失敗
No |  | ↓Yes |  |
↓ |  | DNS照会 | 成功→ | IPアドレスが戻る
↓ |  | ↓失敗 |  |
ノードの選択 |  |
↓ |  |  |  |  |  |
ｈノード | No→ | ｐノード | No→ | ｍノード | No→ | ｂノード
↓Yes |  | ↓Yes |  | ↓Yes |  | ↓Yes
NetBIOSネームキャッシュ
↓失敗 |  | ↓失敗 |  | ↓失敗 |  | ↓失敗
WINSサーバ照会 |  | ブロードキャスト
↓失敗 |  | 失敗 |  | ↓失敗 |  | 失敗
ブロードキャスト |  | ↓ |  | WINSサーバ照会 |  | ↓
↓失敗 |  | ↓ |  | ↓失敗 |  | ↓
成功→ | IPアドレスが戻る
成功→ | IPアドレスが戻る
成功→ | IPアドレスが戻る
最終処理 |  |
| ↓ |  |  |
Windows NT/2000である |  |
↓Yes |  | ↓No |  |
[Microsoft TCP/IPのプロパティ] ダイアログボックスの 「LMHOSTS参照を行う」 チェックボックスが オンにされているか | Yes→ | LMHOSTSファイル確認 | 成功→ | IPアドレスが戻る
↓No |  | ↓失敗 |  |
[Microsoft TCP/IPのプロパティ]ダイアログボックスの 「Windows名前解決にDNSを使う」 チェックボックスがオンにされているか （Win9x/Meは常にNo） | No→ | 解決失敗
↓Yes |  |
HOSTSファイル確認 | 成功→ | IPアドレスが戻る
↓失敗 |  |
DNS照会 | 成功→ | IPアドレスが戻る
失敗→ | 解決失敗

### 図中のノードタイプとは

- B-Node(Broadcast:1)
  ブロードキャストのみを使って名前解決
- P-Node(PointToPoint:2)
  WINS,DNS,LMHOSTSのみを使って名前解決
- M-Node(Mixed:4)
  ブロードキャスト→WINS,DNS,LMHOSTSを使って名前解決
- H-Node(hybrid:8)
  WINS,DNS,LMHOSTS→ブロードキャストを使って名前解決
- Microsoft拡張
  標準のノードに加え、ローカルLMHOSTSファイル、またはWINSプロキシとWindows Sockes gethostbyname()関数の呼び出しの組み合わせを用います。
  - Windows Sockes gethostbyname()関数は、標準DNSとローカルHOSTSファイルを使用します。

ノード・タイプは「winipcfg」コマンドまたは「ipconfig /all」コマンドで確認可能です。

変更は以下のレジストリで行うことができます。

Windows9x/Me
\\HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\SERVICES\VXD\MSTCP\NodeType

WindowsNT
\\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\NodeType

既定値は

- If DHCP=False, and WINS is disabled, then NodeType=1 (bnode)
- If DHCP=False, and WINS is manually set, then NodeType=8 (hnode)
- If DHCP=True, and DHCP sets WINS, then NodeType=4 (mnode)
- If DHCP=True, and WINS is manually set, then NodeType=8 (hnode)
- If DHCP=True, and WINS is disabled, then NodeType=1 (bnode)

### WINS Proxy

NetBIOS 名前解決要求ブロードキャストを受け取るとp(peer)ノード照会としてWINSサーバに転送し、その答えを要求元に返すノード。

NT4をWINS Proxyにするには
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters
のEnableProxy の値 を 1にする。

Win95をWINS Proxyにするには
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD\MSTCP
のEnableProxy の値 を 1にする。

SambaをWINS Proxyにするには
smb.confでwins proxy=yesとする

Samba-JP メーリングリストおよび森永真二郎氏による提供です。

小田切 耕司
http://www.samba.gr.jp/
戻る