「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>Windowsネットワークの基礎知識、設定・トラブルシュート]] * 目次 [#d31f485d] #contents *概要 [#p3318477] *説明の範囲 [#k4a0656e] #ref(Range.png,left,nowrap,説明の範囲) -[[NetBIOS]]を使用するネットワーク サーバ機能 --[[NetBIOS]]のブラウジング機能~ ワークグループのグループ化のネットワーク サービス機能。 --ファイル・プリンタ共有サービス~ ファイル共有、プリンタ共有のネットワーク サービス機能。 -名前解決の機能 --ブロードキャスト --キャッシュ --ファイル ---lmhost ---host --サービス ---WINSサーバ~ [[NetBIOS]]名 ⇒ IPアドレスへの名前解決機能 ---DNSサーバ~ FQDN名 ⇒ IPアドレスへの名前解決機能 -ネットワーク リソースをグループ化する機能 --ブラウジング機能~ ワークグループのグループ化のネットワーク サービス機能 --Active Directory~ ドメインのグループ化など、多様な機能 *[[NetBIOS]]を使用するネットワーク サーバ機能 [#of38d964] **[[ブラウジング機能>NetBIOS#v27ab873]] [#vbba7ea1] **[[ファイル・プリンタ共有サービス>NetBIOS#e614ed6a]] [#vec48b61] *名前解決 [#gefd4e15] -現在のWindowsネットワークでは、 --TCP/IPプロトコルが標準的に使われており、 --各種の名前(NetBIOS名、ホスト名・FQDN名など)は、~ 一度IPアドレスに変換され通信が実行される。 >これを名前解決と言う。 -名前解決の仕組みには、複数の方法があり、~ あらかじめ決められた優先順位に基づいて順番に各名前解決方法が適用される。 -参考 --日本Sambaユーザ会 - ブラウジング機能~ http://www.samba.gr.jp/doc/browsing/browsing01.html >図2 Windowsにおける名前解決の手順 **解決先のアドレス [#u5d336b6] 次に、「NetBIOS名の名前解決」、「ホスト名・FQDN名の名前解決」について説明する。 ***ホスト名・FQDN名の名前解決 [#dfaf20b1] -「ホスト名・FQDN名の名前解決」ではホスト名・FQDN名からIPアドレスへ名前解決する。 -IPにはルーティング機能があるため、ローカル ネットワークを超えた名前解決・通信が可能。 -イーサネット内では、さらにARPプロトコルを使用して、IPアドレス → MACアドレスの名前解決をしている。 ***NetBIOS名の名前解決 [#j4a192cd] -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アドレスに変換する)~ を採ることでローカル ネットワークを超える他のネットワークとの通信も可能である。 **Windows OSにおける名前解決方法 [#rbbbc99a] Windows OSにおける名前解決方法について説明する。 -名前解決の方法には --「NetBIOS名」の名前解決、 ---NetBIOS名のブロードキャスト ---ローカルのlmhostsファイル ---WINSサーバ --「ホスト名・FQDN名」の名前解決 ---ローカルのhostsファイル ---DNSサーバ >などの方法がある。 -名前解決は、ネットワーク負荷が大きい(ただし、ファイルを使用した名前解決は例外)ため、~ 名前解決した結果はクライアント端末にキャッシュされるが、このキャッシュが古い場合には、~ 正しい接続先に繋がらないなどの問題が発生することがあるので注意する。 |#| 名前&br;方法|NetBIOS名|ホスト名・FQDN名|h |1|ブロードキャスト|NetBIOS名のブロードキャスト|-| |2|キャッシュ|NetBIOS名前キャッシュ|DNSリゾルバ キャッシュ| |3|ファイル|ローカルのlmhostsファイル|ローカルのhostsファイル| |4|サービス|WINSサービス|DNSサービス| ***NetBIOS名の名前解決の詳細 [#bd2c7ce2] -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サーバによる名前解決>#d66d0599]]」を参照。 ***ホスト名・FQDN名の名前解決 [#qbf14ba1] -ローカルのhostsファイル --ローカルにあるhostsファイルにホスト名・FQDN名とIPアドレスの対応表を設定しておくことにより、ローカル マシン上で名前解決する。 --「%windir%\system32\drivers\etc\hosts」ファイルを修正する。 -DNSサーバ --ネットワーク上にあるDNSサーバにFQDN名とIPアドレスの対応表を設定しておくことにより名前解決する。 --詳細は、「[[DNSサーバによる名前解決>#fef764d0]]」を参照。 **名前解決方法の調査 [#fc25fe87] 名前解決を調査する際は、初めにローカル設定を確認する必要がある。 ローカル設定の調査には、「[[ipconfig -all>ipconfigコマンド#e513ed82]]」コマンドを使用できる。 **優先順位 [#g4cc350b] 名前解決は、基本的には次のような順番で解決が行われる(ただしWindows OSのバージョンによって細部は異なる)。 ***名前解決のシーケンス [#hfd00bc0] |順番|名前解決の方法|解決できる名前の種類|h |1|NetBIOS名前キャッシュを参照|NetBIOS名| |2|NetBIOS名のノード タイプ 別の名前解決方法を選択|NetBIOS名| |3|lmhostsファイルを参照|NetBIOS名| |4|hostsファイルを参照|ホスト名、FQDN名| |5|DNSリゾルバ キャッシュを参照|FQDN名| |6|DNSサーバを参照|FQDN名| ***hosts・lmhostsファイルの違い [#f2caec45] hosts・lmhostsファイルの違いの詳細は、以下のURLを参考にすると良い。 -@IT > Windows TIPS > hostsとlmhostsの違い~ http://www.atmarkit.co.jp/fwin2k/win2ktips/442hostsfile/hostsfile.html ***NetBIOSノード タイプ別の名前解決法 [#ybddb509] -前述の「NetBIOSノード タイプ別の名前解決法」では、NetBIOSノード タイプ別に名前解決の方法が異なる。 -以下の表に、このNetBIOSノード タイプ別の名前解決方法を示す。 |#|ノード|ノード タイプ|名前解決の方法|h |1|B ノード|broadcast|ブロードキャストを利用| |2|P ノード|point - to - point|WINSサーバを利用| |3|M ノード|mixed|ブロードキャストを利用するが、ブロードキャストでの解決が失敗するとWINSサーバを利用する。| |4|H ノード|hybrid|WINSサーバを利用するが、WINSサーバでの解決が失敗するとブロードキャストを利用する。| **WINSサーバによる名前解決 [#d66d0599] -lmhostsファイルを用いた「NetBIOS名からIPアドレスへの名前解決」により、ローカル ネットワークを越えるNBTの通信が可能になった。 -しかし、これに伴い管理が煩雑になったため、これを解決するNBTの名前解決システムとしてWINSが開発された。 >WINSの仕様の一部は、NetBIOSネーム サービスとしてRFC1001・RFC1002 で規定されているNBTの仕様に含まれており、~ オープンソース ソフトウェアのSambaでは、この規定を元にUNIX上で動作するWINSサーバを実装することが可能になっている。 -WINSの登場により、複数ネットワークにまたがった環境の管理は容易になったが、Windowsネットワークの仕様は更に複雑になった。 ***WINSサーバによる名前解決の仕組み [#o7d3d24a] WINSサーバによる名前解決の仕組みについて以下説明する。 -WINSサーバ --WINSは、NBTの名前解決サービスのサーバ機能部をWINS サーバに置き換えた名前解決システムである。 --このため、UDPポート137番でNBTの名前解決要求(ユニキャスト)を受信し、結果となるIPアドレスを返す。 --結果は、UDPポート137番で応答(ユニキャスト)を受信する(TCPポートも利用するようだが、詳細は不明)。 --また、離れた拠点にあるWINSサーバ同士をWINSレプリケーションという方法~ でレプリケーションさせて、名前解決要求のトラフィックを軽減させることもできる。 ---TechNet > WINSのレプリケーション~ http://technet.microsoft.com/ja-jp/library/cc776675.aspx -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に設定する。 ***環境構築時の注意事項 [#i72547a5] -ノード タイプP・HのWINSクライアント ノードにより名前解決のブロードキャスト トラフィックを減少できるが、 -ローカル ネットワーク中に同じNetBIOS名のノード タイプB・MのWINSクライアント ノード、非WINSクライアント ノードが混在する場合、NetBIOS名の重複により突如通信できなくなることがある。 --NetBIOSでは名前解決の他に、PC起動時とPC停止時にNetBIOS名の登録と解放が行われる。 --この処理方法には次の2種類があり、1つのノード内でどちらか一方の処理のみが実行されるため、処理方法の異なるPCが混在する環境では、起動時にNetBIOS名の重複に気が付かないことがある。 ---ローカル ネットワークへのブロードキャストを使用する(ノード タイプP・H) ---WINSサーバとユニキャストで通信する(ノード タイプB・M) --従って、WINSサーバを利用するノードは、以下の何れかで構成することが推奨される。~ Windows95以降のOSは WINSサーバを利用するノードとして構成できるので、基本的に前者の対策が推奨される。 ---すべてWINSクライアントとして構成する。 ---ローカル ネットワーク中にWINSプロキシを追加する。 ***WINSサーバのネットワーク配置 [#wea4170a] -WINSサーバ・WINSプロキシ~ 以下、WINSサーバ・WINSプロキシを導入したネットワークの図を示す。 #ref(WINS1.png,left,nowrap,WINSサーバ・WINSプロキシのネットワークの図) -WINSレプリケーション~ 以下、WINSレプリケーションし、名前解決要求のトラフィックを軽減させたネットワーク図を示す。 #ref(WINS2.png,left,nowrap,WINSレプリケーションのネットワークの図) >この場合、ネットワークAのWINSサーバ上でネットワークBのノードの名前解決が可能になる。 ***WindowsでのWINSクライアントの設定 [#vcaa2e50] WindowsでWINSクライアントを構成する手順を以下に示す。 +[スタート] ⇒ [設定] ⇒ [ネットワーク接続] ⇒ [ローカルエリア接続]を右クリックし[プロパティ]を選択する。 +表示されるダイアログの[全般]タブで「インターネット プロトコル(TCP/IP)」を選択し、[プロパティ]ボタンを押す。 +これにより[インターネット プロトコル(TCP/IP)のプロパティ]ダイアログが表示される。~ さらに、[全般]タブの[詳細設定]ボタンを押すと[TCP/IP 詳細設定]ダイアログが表示される。 +この[TCP/IP 詳細設定]ダイアログの[WINS]タブで、[アドレス]リスト ボックスに WINS サーバのIPアドレスを設定する。 また、これ以外に、 -「名前解決にLMHOSTを使用するかどうか」 -「NBTを有効にするかどうか 」 を設定できる。 ***WINSサーバの診断ツール(NBLookupコマンド) [#i50485af] 「NBLookup.exe」というコマンド ライン診断ツールを使用して、~ クライアントからWINSサーバにNetBIOSの名前解決クエリを送信できる。 -参考 --マイクロソフト サポート オンライン > NBLookup.exeコマンド ライン ツール~ http://support.microsoft.com/kb/830578/ja **[[DNSサーバによる名前解決>DNSサーバ#v94c4376]] [#fef764d0] Windowsネットワークの機能にWindows OSの「名前解決の機能」を含めているので、DNSサーバについても解説する。 *参考 [#u429eb91] -Insider's Computer Dictionary [ワークグループ・ネットワーク] - @IT~ http://www.atmarkit.co.jp/icd/root/63/5786763.html ---- Tags: [[:通信技術]], [[:Windows]]