マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

Windowsネットワークの基礎知識、設定・トラブルシュート」3部作の第2部。

説明の範囲

説明の範囲
  • NetBIOSを使用するネットワーク サーバ機能
    • NetBIOSのブラウジング機能
      ワークグループのグループ化のネットワーク サービス機能。
    • ファイル・プリンタ共有サービス
      ファイル共有、プリンタ共有のネットワーク サービス機能。
  • 名前解決の機能
    • ブロードキャスト
    • キャッシュ
  • ファイル
    • lmhost
    • host
  • サービス
    • WINSサーバ
      NetBIOS名 ⇒ IPアドレスへの名前解決機能
    • DNSサーバ
      FQDN名 ⇒ IPアドレスへの名前解決機能
  • ネットワーク リソースをグループ化する機能
    • ブラウジング機能
      ワークグループのグループ化のネットワーク サービス機能
    • Active Directory
      ドメインのグループ化など、多様な機能

NetBIOSを使用するネットワーク サーバ機能

ブラウジング機能

ファイル・プリンタ共有サービス

名前解決

  • 現在のWindowsネットワークでは、
    • TCP/IPプロトコルが標準的に使われており、
    • 各種の名前(NetBIOS名、ホスト名・FQDN名など)は、
      一度IPアドレスに変換され通信が実行される。

これを名前解決と言う。

  • 名前解決の仕組みには、複数の方法があり、
    あらかじめ決められた優先順位に基づいて順番に各名前解決方法が適用される。

解決先のアドレス

次に、「NetBIOS名の名前解決」、「ホスト名・FQDN名の名前解決」について説明する。

ホスト名・FQDN名の名前解決

  • 「ホスト名・FQDN名の名前解決」ではホスト名・FQDN名からIPアドレスへ名前解決する。
  • IPにはルーティング機能があるため、ローカル ネットワークを超えた名前解決・通信が可能。
  • イーサネット内では、さらにARPプロトコルを使用して、IPアドレス → MACアドレスの名前解決をしている。

NetBIOS名の名前解決

  • 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における名前解決方法

Windows OSにおける名前解決方法について説明する。

  • 名前解決の方法には
    • 「NetBIOS名」の名前解決、
      • NetBIOS名のブロードキャスト
      • ローカルのlmhostsファイル
      • WINSサーバ
  • 「ホスト名・FQDN名」の名前解決
    • ローカルのhostsファイル
    • DNSサーバ

などの方法がある。

  • 名前解決は、ネットワーク負荷が大きい(ただし、ファイルを使用した名前解決は例外)ため、
    名前解決した結果はクライアント端末にキャッシュされるが、このキャッシュが古い場合には、
    正しい接続先に繋がらないなどの問題が発生することがあるので注意する。
#   名前
方法
NetBIOS名ホスト名・FQDN名
1ブロードキャストNetBIOS名のブロードキャスト
2キャッシュNetBIOS名前キャッシュDNSリゾルバ キャッシュ
3ファイルローカルのlmhostsファイルローカルのhostsファイル
4サービスWINSサービスDNSサービス

NetBIOS名の名前解決の詳細

  • 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サーバによる名前解決」を参照。

ホスト名・FQDN名の名前解決

  • ローカルのhostsファイル
    • ローカルにあるhostsファイルにホスト名・FQDN名とIPアドレスの対応表を設定しておくことにより、ローカル マシン上で名前解決する。
    • 「%windir%\system32\drivers\etc\hosts」ファイルを修正する。
  • DNSサーバ
    • ネットワーク上にあるDNSサーバにFQDN名とIPアドレスの対応表を設定しておくことにより名前解決する。
    • 詳細は、「DNSサーバによる名前解決」を参照。

名前解決方法の調査

名前解決を調査する際は、初めにローカル設定を確認する必要がある。

ローカル設定の調査には、「ipconfig -all」コマンドを使用できる。

優先順位

名前解決は、基本的には次のような順番で解決が行われる(ただしWindows OSのバージョンによって細部は異なる)。

名前解決のシーケンス

順番名前解決の方法解決できる名前の種類
1NetBIOS名前キャッシュを参照NetBIOS名
2NetBIOS名のノード タイプ 別の名前解決方法を選択NetBIOS名
3lmhostsファイルを参照NetBIOS名
4hostsファイルを参照ホスト名、FQDN名
5DNSリゾルバ キャッシュを参照FQDN名
6DNSサーバを参照FQDN名

hosts・lmhostsファイルの違い

hosts・lmhostsファイルの違いの詳細は、以下のURLを参考にすると良い。

NetBIOSノード タイプ別の名前解決法

  • 前述の「NetBIOSノード タイプ別の名前解決法」では、NetBIOSノード タイプ別に名前解決の方法が異なる。
  • 以下の表に、このNetBIOSノード タイプ別の名前解決方法を示す。
#ノードノード タイプ名前解決の方法
1B ノードbroadcastブロードキャストを利用
2P ノードpoint - to - pointWINSサーバを利用
3M ノードmixedブロードキャストを利用するが、ブロードキャストでの解決が失敗するとWINSサーバを利用する。
4H ノードhybridWINSサーバを利用するが、WINSサーバでの解決が失敗するとブロードキャストを利用する。

WINSサーバによる名前解決

  • lmhostsファイルを用いた「NetBIOS名からIPアドレスへの名前解決」により、ローカル ネットワークを越えるNBTの通信が可能になった。
  • しかし、これに伴い管理が煩雑になったため、これを解決するNBTの名前解決システムとしてWINSが開発された。

    WINSの仕様の一部は、NetBIOSネーム サービスとしてRFC1001・RFC1002 で規定されているNBTの仕様に含まれており、
    オープンソース ソフトウェアのSambaでは、この規定を元にUNIX上で動作するWINSサーバを実装することが可能になっている。

  • WINSの登場により、複数ネットワークにまたがった環境の管理は容易になったが、Windowsネットワークの仕様は更に複雑になった。

WINSサーバによる名前解決の仕組み

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名の重複に気が付かないことがある。
      • ローカル ネットワークへのブロードキャストを使用する(ノード タイプP・H)
      • WINSサーバとユニキャストで通信する(ノード タイプB・M)
  • 従って、WINSサーバを利用するノードは、以下の何れかで構成することが推奨される。
    Windows95以降のOSは WINSサーバを利用するノードとして構成できるので、基本的に前者の対策が推奨される。
    • すべてWINSクライアントとして構成する。
    • ローカル ネットワーク中にWINSプロキシを追加する。

WINSサーバのネットワーク配置

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

この場合、ネットワークAのWINSサーバ上でネットワークBのノードの名前解決が可能になる。

WindowsでのWINSクライアントの設定

WindowsでWINSクライアントを構成する手順を以下に示す。

  1. [スタート] ⇒ [設定] ⇒ [ネットワーク接続] ⇒ [ローカルエリア接続]を右クリックし[プロパティ]を選択する。
  2. 表示されるダイアログの[全般]タブで「インターネット プロトコル(TCP/IP)」を選択し、[プロパティ]ボタンを押す。
  3. これにより[インターネット プロトコル(TCP/IP)のプロパティ]ダイアログが表示される。
    さらに、[全般]タブの[詳細設定]ボタンを押すと[TCP/IP 詳細設定]ダイアログが表示される。
  4. この[TCP/IP 詳細設定]ダイアログの[WINS]タブで、[アドレス]リスト ボックスに WINS サーバのIPアドレスを設定する。

また、これ以外に、

  • 「名前解決にLMHOSTを使用するかどうか」
  • 「NBTを有効にするかどうか 」

を設定できる。

WINSサーバの診断ツール(NBLookupコマンド)

「NBLookup.exe」というコマンド ライン診断ツールを使用して、
クライアントからWINSサーバにNetBIOSの名前解決クエリを送信できる。

DNSサーバによる名前解決

Windowsネットワークの機能にWindows OSの「名前解決の機能」を含めているので、DNSサーバについても解説する。

参考


Tags: :通信技術, :Windows


添付ファイル: fileWINS2.png 193件 [詳細] fileWINS1.png 242件 [詳細] fileRange.png 234件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-05-04 (木) 18:31:42 (776d)