第3回 ネットワーク上のサーバーを探すブラウズサービスWindowsネットワークの基礎

ファイル共有を利用するには、リソースを公開しているサーバーの一覧から目的のコンピューターを見つける必要がある。今回はサーバーの一覧を提供する「コンピューターブラウザー」と「ネットワーク探索」サービスについて解説する

» 2014年10月02日 17時13分 公開
[打越浩幸デジタルアドバンテージ]
Windowsネットワークの基礎
Windows Server Insider


「Windowsネットワークの基礎」のインデックス

連載目次

 前回は、Windowsネットワークにおける、共有リソースの使い方(サーバー側での共有リソースの提供方法と、クライアント側での接続方法)について解説した。今回はネットワーク上のサーバーを探す「コンピューターブラウザー」と「ネットワーク探索」サービスについて見ていく。

リモートのサーバーを見つけるには?

 サーバーコンピューターが公開しているファイル共有リソースを利用するには、何らかの方法でリソースを公開しているコンピューターの一覧を取得し、その中から目的のコンピューターを見つけて、その公開リソースへ接続する必要がある。

 この、サーバーコンピューターの一覧を取得したり、そこから目的とするコンピューターを選んだりする操作を、現在のWindowsネットワークでは「ネットワーク探索」という。ただしこれはWindows VistaやWindows Server 2008以降での呼び方であり、それ以前のWindows OSでは「コンピューターブラウザー」とか、単に「(ネットワークを)ブラウズする」などと呼ばれていた。

ネットワーク探索画面 ネットワーク探索画面
これはWindows 8.1におけるネットワーク探索画面の例。見つかったコンピューターの一覧が「ネットワークアイコン」の下に表示されている。
  (1)これをクリックして検索する。
  (2)見つかったコンピューター名の一覧。
  (3)ワークグループ名やドメイン名。同じネットワーク上に多数のコンピューターが表示されると煩わしいので、分類用の論理グループ名を付けておくことができる。通常は、ワークグループやドメインごとに異なる名前を付ける。

 目的のコンピューターが見つかったらダブルクリックする。するとそのコンピューターが公開しているリソースの一覧が表示されるので、そのままツリーをたどって目的のフォルダーを開くか、ローカルドライブにマップして利用すればよい。このあたりの手順については、前回の記事を参照のこと。

 コマンドプロンプト上で操作する場合は、「net view」というコマンドを実行するとリソースを公開しているコンピューターの一覧が表示される。目的のコンピューターが見つかったら、「net view \\<コンピューター名>」を実行して公開リソース名を表示させ、その後、「net use M: \\svr1\Data」のようにしてローカルドライブにマップするか、「pushd \\svr1\Data」のようにしてローカルの適当な空きドライブにマップさせて利用するとよい(pushdした場合は、最後にpopdコマンドで解除する)。

コマンドプロンプト上で操作する コマンドプロンプト上で共有リソースを操作する
コマンドプロンプトでは、「net 〜」コマンドやPowerShellなどが利用できる。
  (1)「net view」を実行すると、同じワークグループ名や同じドメインに属しているサーバー(共有リソースを公開しているコンピューター)の一覧が表示される。
  (2)表示されたサーバーの一覧。
  (3)このコンピューターのリソースを利用してみる。
  (4)「net view \\〜」とすると、そのコンピューターが公開しているリソースの一覧が表示される。
  (5)この場合は、3つのリソースが表示されている。
  (6)「d」というリソース(フォルダー)を、ローカルの「M:」ドライブにマップしてみる。

 なお、「net use 〜」コマンド実行時に、異なる資格情報(ユーザー名とパスワードの組のこと)で接続したければ、「net use M: \\svr1\Data /user:user01 password」のようにして指定すればよい(最後の「password」の代わりに「*」を指定すると、パスワードをインタラクティブに入力することができる。バッチファイル中にパスワードを直接書きたくない場合などに使う)。

ネットワーク探索を有効にする

 Windows Vista/Windows Server 2008以降のWindows OSではネットワーク探索とファイル共有機能はデフォルトでは無効になっており、エクスプローラーで[ネットワーク]アイコンをクリックすると次のように表示される。共有機能を有効にしたければ、ユーザーが明示的に有効化する必要がある。これは、余計なパケットの送信を抑制して、ユーザーの意図しない情報漏えいなどを防ぐためだ。ファイル共有を有効にしていると、コンピューター名やその説明テキスト、共有リソースなどの情報が公開されてしまい、外部から侵入される危険性が高くなる。そのため、デフォルトでは無効になっている。

ネットワーク探索を有効にする(1) ネットワーク探索を有効にする(1)
システムのインストール直後は安全のため、ネットワーク探索は無効になっている。最初にネットワークアイコンをクリックするとこのような表示が出るので有効にする。
  (1)これをクリックする。
  (2)すると、最初はこのように表示される。
  (3)メッセージをクリックして有効化する。

 このメッセージはログオン(サインイン)して最初にアクセスしたときにしか表示されないが、必要なら後で有効にすることもできる。[コントロール パネル]の[ネットワークとインターネット]グループにある[ネットワークと共有センター]を開き、左側のリンクにある[共有の詳細設定の変更]をクリックする。すると次のような画面が表示されるので、現在有効なプロファイルの下にある[ネットワーク探索]−[ネットワーク探索を有効にする]を選択する。

ネットワーク探索を有効にする(2) ネットワーク探索を有効にする(2)
先の画面のメッセージで何もしなかった場合は、コントロールパネルで設定すればよい。
  (1)「プライベート」プロファイルがアクティブな場合はこちらで設定する。
  (2)このシステムは「パブリック」プロファイルがアクティブなので、ここで設定する。
  (3)ネットワーク探索を有効にするにはこれをクリックする。
  (4)デフォルトではこちらが選択されていた。
  (5)ファイルやプリンターを公開したい場合はこれを選択する。

「コンピューターブラウザー」から「ネットワーク探索」へ

 コンピューターの一覧を管理するメカニズムは、前述の通り、当初のWindows OSでは「コンピューターブラウザー(Computer Browser)」とか、単に「ブラウザー」などと呼ばれていたが、現在では「ネットワーク探索(Network Discovery)」という名前になっている。これはコンピューター名を検索する方法が大きく拡張されて変わったからだ。

 コンピューターブラウザーと呼ばれていたころは(Windows XPやWindows Server 2003まで)、「Computer Browser」というサービスがNetBIOS()機能を元にしたコンピューター名の管理を行っていた。だが現在ではそのNetBIOSベースの名前管理機能に加えて、さらに、さまざまなサービスも併用してコンピューター名(および、そこで提供されている機能)のリストを管理している。それらを総合的に扱えるようにしたのが「ネットワーク探索」機能である。以下に、ネットワーク探索の主な「プロバイダーProvider、機能を提供する主体)」を示しておく。

  • NetBIOSとは、最初のWindowsネットワークのときから使われている、非常に簡素なネットワークプロトコル(ネットワークAPI)の1つ。詳細は今後解説予定。

プロバイダ 機能
コンピューターブラウザーサービス NetBIOSベースの名前サービスを使ったコンピューター名の列挙。古いWindows OSではこの方法でのみコンピューター名の一覧を管理していた
UPnPデバイス UPnPプロトコルによるコンピューター名の列挙
SSDP Discovery 主にホームネットワーク上のUPnP(Universal Plug & Play)デバイスを検出するサービス、SSDP(Simple Service Discovery Protocol)による列挙
レジストリ レジストリに記録されたホストも列挙可能
WS-Discovery(WSD) WSD(Web Service on Devices)対応デバイスの列挙
WCN 無線ネットワークの設定を容易にするために使われるWCN(Windows Connect Now)による列挙
LLTD ネットワークマップ(Windows VistaやWindows 7のコントロールパネルの[ネットワークと共有センター]で[フルマップの表示]を実行すると表示される)を作成するためなどに使われるLLTD(Link-Layer Topology Discovery)プロトコルによる列挙
LLMNR IPv6のローカルセグメント向け名前解決機能LLMNR(Link-Local Multicast Name Resolution)を使ったコンピューター名の列挙。LLMNRについては、IPv6解説連載の「LLMNRを使ったローカル・セグメント上での名前解決」を参照
ネットワーク探索で利用可能なプロバイダー例
ネットワーク上のサーバー(サービス)を検出するために使われるプロトコル。プロバイダーとは、ネットワーク探索サービスに対して、サーバー(やサービス)の情報を提供する主体のこと。ネットワーク探索では、これらのプロバイダーから得られた情報を全てまとめて表示するようになっている。サードパーティー製のプロバイダーを追加することも可能。

 ネットワーク探索でどのようなプロトコルが使われているかは、[セキュリティが強化されたファイアウォール]で「ネットワーク探索」グループの規則を表示させると確認できる。

ネットワーク探索で使われるプロトコル ネットワーク探索で使われるプロトコル
当初のWindowsネットワークではNetBIOSを使った名前解決しかなかったが、現在でさまざまな方法でネットワーク上に存在するサーバーの情報を取得し、一覧表示させている。
  (1)受信規則だけを表示させている。
  (2)「ネットワーク探索」に関する規則だけを表示させたところ。ネットワーク探索では、このようにさまざまなプロトコルを組み合わせて、リモートのサーバーの一覧情報を取得している。
  (3)使用しているプロトコルとポート番号。

 ネットワーク探索が有効になっていると、これらのプロトコルが有効になることが分かる。

 エクスプローラーのサーバー名の一覧に表示されている名前が、どの方法(プロトコル)によって検索されたかは、[探索方法]という項目を表示させると確認できる。

サーバー名と探索方法 サーバー名と探索方法
サーバー名の一覧を詳細表示させると、探索方法が確認できる。なお、このリスト内容はキャッシュされているし、ネットワーク接続がなくても表示される項目(プロバイダー)があるため、プロトコルを無効にしてもすぐに表示が消えるわけではない。
  (1)リソースを公開しているサーバー名。
  (2)所属するワークグループ名もしくはドメイン名。
  (3)探索に称したネットワークインターフェイス。
  (4)探索方法。このタイトル行を右クリックして、[探索方法]という項目をオンにすると表示される。

NetBIOSベースの「コンピューターブラウザー」の動作

 「ネットワーク探索」では、さまざまな探索プロバイダーから得られたコンピューター名の情報を一覧にして表示しているだけである。ほとんどのプロトコルでは、コンピューター名を問い合わせるパケットをブロードキャストマルチキャストで送信すると、そのパケットを受信したコンピューターが応答を返す、というふうに動作している。こうやってコンピューター名を収集してネットワーク探索結果のリストに加え、それを表示している。

 NetBIOSを使っている、古くからある「コンピューターブラウザー」サービスも同様にブロードキャストとその応答を使ってコンピューター名を収集しているが、コンピューター名のリストの保持方法が少し異なる。NetBIOS環境では、コンピューター名のリストを保持する特別なサーバーが1台もしくは複数台ネットワーク上に存在しており、「コンピューターブラウザー」、もしくは単に「ブラウザー」と呼ばれている。通常のクライアントコンピューターが共有リソースを提供しているコンピューター名の一覧を取得したくなった場合は、ブラウザーに問い合わせてリストを取得する。この仕組みにより、ネットワーク上の多くのコンピューターがそれぞれ独自にサーバーコンピューターのリストを作成・保持する必要がなくなるし、(余計なブロードキャストなどがなくなり)ネットワーク全体のトラフィックも大幅に抑制できる。

NetBIOS環境におけるブラウザーサービス NetBIOS環境におけるブラウザーサービス
ブラウザーサービスを実行しているコンピューターは、ネットワーク上の有効なサーバー名の一覧リスト「ブラウズリスト」を持っている。ネットワークに参加したコンピューターは、起動時に自分自身をブラウザーサービスに登録し(自分自身のコンピューター名をNetBIOSでブロードキャストすると、それをブラウザーがブラウズリストに登録する)、終了時には登録を解除する。サーバーコンピューターの一覧が欲しい場合はブラウザーから取得する。

 NetBIOSをサポートしたコンピューターは、起動時にブラウザーに自分自身を登録し、終了時に名前を解放する。そしてコンピューター名の一覧が欲しい場合は、ブラウザーに問い合わせてリストを取得する。

 あるコンピューターがブラウザーを担当しているかどうかは、「nbtstat -n」コマンドを実行すると確認できる。結果の名前欄に「..__MSBROWSE__.<01>」という項目があれば、ブラウザーとして動作している。

NetBIOS名前テーブルの確認 NetBIOS名前テーブルの確認
このコンピューターのNetBIOS名前テーブルに登録されている名前の一覧を表示させてみる。ブラウザーとして動作している場合は、マスターブラウザーで使われる特別な名前が表示される。
  (1)NetBIOS名前テーブルの内容を表示させるコマンド。
  (2)ローカルのコンピューター名。末尾の違い(0x20と0x00)で、2つ登録されている。
  (3)ワークグループ名もしくはドメイン名。
  (4)これがマスターブラウザーであることを表す特別な名前。

 ネットワーク上に複数台のWindows OSコンピューターがあり、それぞれの上で「Computer Browser」サービスが動作していれば、そのいずれもがブラウザーとして動作できる可能性がある。だがどのコンピューターがブラウズリストを管理する「マスターブラウザー」になるかは、ネットワークの状況に応じて動的に変わるのでユーザーは気にする必要はない。基本的には、より新しいバージョンのWindows OSの方が優先されるし、クライアントOSよりもサーバーOSの方がブラウザーになる優先度が高くなっている。マスターブラウザーにならないシステムは、「バックアップブラウザー(高負荷時にマスターブラウザーの代わりに応答する)」や「ポテンシャルブラウザー(マスターやバックアップブラウザーの停止時に、それらに昇格するブラウザー)」として動作する。

Windows Server Insiderの関連記事 基礎から学ぶWindowsネットワーク「コンピュータの一覧を管理するブラウザ・サービス

 どのサーバーがどの種類のブラウザーになっているかは、例えばbrowstat.exeコマンドで確認できる(これはWindows XPのサポートツールなどに含まれているコマンド。Windows 7/Windows Server 2008 R2以降では実行できない)。このコマンドについては、関連記事も参照のこと。

ブラウザーの役割の確認 ブラウザーの役割の確認
ネットワーク上にある複数のWindows OSのブラウザーサービスの役割を確認するにはbrowstat.exeコマンドが利用できる。PBRはポテンシャルブラウザー、BBRはバックアップブラウザー、MBRはマスターブラウザーの略。
  (1)「browstat view」コマンドでブラウザーの一覧を取得する。
  (2)このコンピューターがマスターブラウザー。


 今回はサーバーコンピューターの一覧を提供する、「ネットワーク探索」と「コンピューターブラウザー」サービスについて見てきた。次回からはWindowsネットワークプロトコルの内部を解説する予定である。


「Windowsネットワークの基礎」のインデックス

Windowsネットワークの基礎

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。