Google

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

開始





ホスト名が15文字より長い
or
ピリオドが含まれている
Yes→ [Microsoft TCP/IPのプロパティ]
ダイアログボックスの
「Windows名前解決にDNSを使う」
チェックボックスが
オンにされているか
(Win9x/Meは常にNo)
No→ 解決失敗
No
↓Yes


DNS照会 成功→ IPアドレスが戻る

↓失敗

ノードの選択







hノード No→ pノード No→ mノード No→ bノード
↓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/
戻る