-
Notifications
You must be signed in to change notification settings - Fork 0
MS_WindowsNetworking
-
TOP > トラブルシュート > Windowsネットワークの基礎知識、設定・トラブルシュート
- ネットワークの基礎編
- Windowsネットワーク編
- 監視・パケット解析編
「Windowsネットワークの基礎知識、設定・トラブルシュート」3部作の第2部。
移行メモ: 本ページは Windows XP / Server 2003 時代の NetBIOS・WINS 中心の解説。 現行の Windows ネットワークでは名前解決は DNS が主で、WINS は Windows Server 2022 で非推奨、 NetBIOS over TCP/IP(NBT)も既定で無効化される方向にある。歴史的経緯の把握として読むこと。

-
NetBIOSを使用するネットワーク サーバ機能
- NetBIOSのブラウジング機能
ワークグループのグループ化のネットワーク サービス機能。 - ファイル・プリンタ共有サービス
ファイル共有、プリンタ共有のネットワーク サービス機能。
- NetBIOSのブラウジング機能
- 名前解決の機能
- ブロードキャスト
- キャッシュ
- ファイル
- lmhosts
- hosts
- サービス
- WINSサーバ
NetBIOS名 ⇒ IPアドレスへの名前解決機能 - DNSサーバ
FQDN名 ⇒ IPアドレスへの名前解決機能
- WINSサーバ
- ネットワーク リソースをグループ化する機能
- ブラウジング機能
ワークグループのグループ化のネットワーク サービス機能 - Active Directory
ドメインのグループ化など、多様な機能
- ブラウジング機能
-
現在のWindowsネットワークでは、
- TCP/IPプロトコルが標準的に使われており、
- 各種の名前(NetBIOS名、ホスト名・FQDN名など)は、
一度IPアドレスに変換され通信が実行される。
これを名前解決と言う。
-
名前解決の仕組みには、複数の方法があり、
あらかじめ決められた優先順位に基づいて順番に各名前解決方法が適用される。 -
参考
- 日本Sambaユーザ会 - ブラウジング機能(図2 Windowsにおける名前解決の手順)
次に、「NetBIOS名の名前解決」、「ホスト名・FQDN名の名前解決」について説明する。
- 「ホスト名・FQDN名の名前解決」ではホスト名・FQDN名からIPアドレスへ名前解決する。
- IPにはルーティング機能があるため、ローカル ネットワークを超えた名前解決・通信が可能。
- イーサネット内では、さらにARPプロトコルを使用して、IPアドレス → MACアドレスの名前解決をしている。
- NetBIOSの使用する下位プロトコルによって名前解決の方法が異なる。
- 従来のNetBEUIではNetBIOS名のブロードキャストで直接MACアドレスへの名前解決をしていた。
- しかし、現在のNBTではTCP/IPを使用するためIPアドレスへの名前解決をしている。
- NetBEUI(NetBIOS名 → MACアドレス)
NetBEUIは直接MACアドレスへの名前解決をするため、- 名前解決可能な範囲は、OSI参照モデルの第2層のブロードキャストが届く範囲であり、
- ローカル ネットワークを超えた名前解決・通信ができなかった。
- NBT(NetBIOS名 → IPアドレス)
- NBTは、まずIPアドレスへの名前解決をする。
イーサネット内では、さらにARPプロトコルを使用してIPアドレス → MACアドレスの名前解決をしている。 - IPアドレスへの名前解決には、OSI参照モデルの第3層のブロードキャストを使用できる。
しかし、互換性維持のためNetBEUIの仕様が踏襲されており、ブロードキャスト先はローカル ネットワークに限られる。
このため、名前解決可能な範囲はOSI参照モデルの第2層のブロードキャストが届く範囲で、
NetBEUIと同様にローカル ネットワークを超えた名前解決・通信ができない。 - ただし、別の名前解決方法(設定ファイルやWINSサーバを使用して、NetBIOS名をIPアドレスに変換する)
を採ることでローカル ネットワークを超える他のネットワークとの通信も可能である。
- NBTは、まずIPアドレスへの名前解決をする。
Windows OSにおける名前解決方法について説明する。
-
名前解決の方法には
- 「NetBIOS名」の名前解決
- NetBIOS名のブロードキャスト
- ローカルのlmhostsファイル
- WINSサーバ
- 「ホスト名・FQDN名」の名前解決
- ローカルのhostsファイル
- DNSサーバ
などの方法がある。
- 「NetBIOS名」の名前解決
-
名前解決は、ネットワーク負荷が大きい(ただし、ファイルを使用した名前解決は例外)ため、
名前解決した結果はクライアント端末にキャッシュされるが、このキャッシュが古い場合には、
正しい接続先に繋がらないなどの問題が発生することがあるので注意する。
| # | 名前 \ 方法 | NetBIOS名 | ホスト名・FQDN名 |
|---|---|---|---|
| 1 | ブロードキャスト | NetBIOS名のブロードキャスト | - |
| 2 | キャッシュ | NetBIOS名前キャッシュ | DNSリゾルバ キャッシュ |
| 3 | ファイル | ローカルのlmhostsファイル | ローカルのhostsファイル |
| 4 | サービス | WINSサービス | DNSサービス |
- NetBIOS名のブロードキャスト
- NBTの名前解決サービスは、イーサネット上の各ノード上で動作している。
- UDPポート137番でNBTの名前解決要求(ブロードキャスト)を受信し、結果となるIPアドレスを返す。
- 結果は、UDPポート137番で応答(ユニキャスト)を受信する(TCPポートも利用するようだが、詳細は不明。)。
- ローカルのlmhostsファイル
- ローカルにあるlmhostsファイルにNetBIOS名とIPアドレスの対応表を設定しておくことにより、ローカル マシン上で名前解決する。
- 「
%windir%\system32\drivers\etc\lmhosts」ファイルを新規作成する(lmhosts.samはサンプル ファイル)。
- WINSサーバ
- ネットワーク上にあるWINSサーバに、NetBIOS名とIPアドレスの対応表を設定しておくことにより名前解決する。
- 詳細は、「WINSサーバによる名前解決」を参照。
- ローカルのhostsファイル
- ローカルにあるhostsファイルにホスト名・FQDN名とIPアドレスの対応表を設定しておくことにより、ローカル マシン上で名前解決する。
- 「
%windir%\system32\drivers\etc\hosts」ファイルを修正する。
- DNSサーバ
- ネットワーク上にあるDNSサーバにFQDN名とIPアドレスの対応表を設定しておくことにより名前解決する。
- 詳細は、「DNSサーバによる名前解決」を参照。
名前解決を調査する際は、初めにローカル設定を確認する必要がある。
ローカル設定の調査には、「ipconfig -all」(ipconfigコマンド)コマンドを使用できる。
名前解決は、基本的には次のような順番で解決が行われる(ただしWindows OSのバージョンによって細部は異なる)。
| 順番 | 名前解決の方法 | 解決できる名前の種類 |
|---|---|---|
| 1 | NetBIOS名前キャッシュを参照 | NetBIOS名 |
| 2 | NetBIOS名のノード タイプ 別の名前解決方法を選択 | NetBIOS名 |
| 3 | lmhostsファイルを参照 | NetBIOS名 |
| 4 | hostsファイルを参照 | ホスト名、FQDN名 |
| 5 | DNSリゾルバ キャッシュを参照 | FQDN名 |
| 6 | DNSサーバを参照 | FQDN名 |
hosts・lmhostsファイルの違いの詳細は、以下のURLを参考にすると良い。
- 前述の「NetBIOSノード タイプ別の名前解決法」では、NetBIOSノード タイプ別に名前解決の方法が異なる。
- 以下の表に、このNetBIOSノード タイプ別の名前解決方法を示す。
| # | ノード | ノード タイプ | 名前解決の方法 |
|---|---|---|---|
| 1 | B ノード | broadcast | ブロードキャストを利用 |
| 2 | P ノード | point - to - point | WINSサーバを利用 |
| 3 | M ノード | mixed | ブロードキャストを利用するが、ブロードキャストでの解決が失敗するとWINSサーバを利用する。 |
| 4 | H ノード | hybrid | WINSサーバを利用するが、WINSサーバでの解決が失敗するとブロードキャストを利用する。 |
-
lmhostsファイルを用いた「NetBIOS名からIPアドレスへの名前解決」により、ローカル ネットワークを越えるNBTの通信が可能になった。
-
しかし、これに伴い管理が煩雑になったため、これを解決するNBTの名前解決システムとしてWINSが開発された。
WINSの仕様の一部は、NetBIOSネーム サービスとしてRFC1001・RFC1002 で規定されているNBTの仕様に含まれており、
オープンソース ソフトウェアのSambaでは、この規定を元にUNIX上で動作するWINSサーバを実装することが可能になっている。 -
WINSの登場により、複数ネットワークにまたがった環境の管理は容易になったが、Windowsネットワークの仕様は更に複雑になった。
WINSサーバによる名前解決の仕組みについて以下説明する。
- WINSサーバ
- WINSは、NBTの名前解決サービスのサーバ機能部をWINS サーバに置き換えた名前解決システムである。
- このため、UDPポート137番でNBTの名前解決要求(ユニキャスト)を受信し、結果となるIPアドレスを返す。
- 結果は、UDPポート137番で応答(ユニキャスト)を受信する(TCPポートも利用するようだが、詳細は不明)。
- また、離れた拠点にあるWINSサーバ同士をWINSレプリケーションという方法
でレプリケーションさせて、名前解決要求のトラフィックを軽減させることもできる。
- WINSクライアント
- WINSクライアントは、WINSサーバのIPアドレスを知るためにWINSサーバを使うことはできない。
- このため、あらかじめWINS クライアントにWINSサーバのIPアドレスを静的に設定するか、DHCPを使用して動的に配信する必要がある。
- WINSプロキシ
- WINSサーバを利用できないノードは、NetBIOSの名前解決要求をローカル ネットワークへブロードキャストする。
- このため、通常はlmhostsファイルなどを使用しないとローカル ネットワークを越えるNBTの通信ができない。
- しかし、WINS プロキシを導入し、名前解決要求のブロードキャストを中継、WINSサーバでの名前解決を代行することでローカル ネットワークを越えることができる。
- 非WINSクライアント、または、ノード タイプB・Mのノードをサポートするために開発された。
- WINS プロキシは、ローカル ネットワークへのブロードキャストを受信し、WINSサーバでの名前解決を代行するサービスである。
- このため、WINS プロキシはネットワーク毎に必要になる。
- また、WINS サーバが同時に WINS プロキシになることはできない。
- WINS プロキシ機能を有効にするには、レジストリを直接編集する必要がある。
-
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Netbt\Parametersに、
「EnableProxy」(DWORD値)というエントリを追加して値を1に設定する。
-
- ノード タイプP・HのWINSクライアント ノードにより名前解決のブロードキャスト トラフィックを減少できるが、
- ローカル ネットワーク中に同じNetBIOS名のノード タイプB・MのWINSクライアント ノード、非WINSクライアント ノードが混在する場合、NetBIOS名の重複により突如通信できなくなることがある。
- NetBIOSでは名前解決の他に、PC起動時とPC停止時にNetBIOS名の登録と解放が行われる。
- この処理方法には次の2種類があり、1つのノード内でどちらか一方の処理のみが実行されるため、処理方法の異なるPCが混在する環境では、起動時にNetBIOS名の重複に気が付かないことがある。
- ローカル ネットワークへのブロードキャストを使用する(ノード タイプB・M)
- WINSサーバとユニキャストで通信する(ノード タイプP・H)
- 従って、WINSサーバを利用するノードは、以下の何れかで構成することが推奨される。
Windows95以降のOSは WINSサーバを利用するノードとして構成できるので、基本的に前者の対策が推奨される。- すべてWINSクライアントとして構成する。
- ローカル ネットワーク中にWINSプロキシを追加する。
- WINSサーバ・WINSプロキシ
以下、WINSサーバ・WINSプロキシを導入したネットワークの図を示す。

- WINSレプリケーション
以下、WINSレプリケーションし、名前解決要求のトラフィックを軽減させたネットワーク図を示す。

この場合、ネットワークAのWINSサーバ上でネットワークBのノードの名前解決が可能になる。
WindowsでWINSクライアントを構成する手順を以下に示す。
- [スタート] ⇒ [設定] ⇒ [ネットワーク接続] ⇒ [ローカルエリア接続]を右クリックし[プロパティ]を選択する。
- 表示されるダイアログの[全般]タブで「インターネット プロトコル(TCP/IP)」を選択し、[プロパティ]ボタンを押す。
- これにより[インターネット プロトコル(TCP/IP)のプロパティ]ダイアログが表示される。
さらに、[全般]タブの[詳細設定]ボタンを押すと[TCP/IP 詳細設定]ダイアログが表示される。 - この[TCP/IP 詳細設定]ダイアログの[WINS]タブで、[アドレス]リスト ボックスにWINS サーバのIPアドレスを設定する。
また、これ以外に、
- 「名前解決にLMHOSTSを使用するかどうか」
- 「NBTを有効にするかどうか」
を設定できる。
「NBLookup.exe」というコマンド ライン診断ツールを使用して、
クライアントからWINSサーバにNetBIOSの名前解決クエリを送信できる。
- 参考
- マイクロソフト サポート オンライン > NBLookup.exeコマンド ライン ツール(KB830578)
Windowsネットワークの機能にWindows OSの「名前解決の機能」を含めているので、DNSサーバについても解説する。
DNSサーバを参照。
Tags: 通信技術, Windows
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。