連載
» 2005年03月10日 00時00分 公開

基礎から学ぶWindowsネットワーク:第23回 コンピュータの一覧を管理するブラウザ・サービス (2/3)

[打越浩幸,デジタルアドバンテージ]

 Windowsネットワーク用語における「ブラウザ(browser)」(もしくはブラウザ・コンピュータ)とは、ネットワーク上のコンピュータ名の一覧を維持・管理する「Computer Browserサービス」を実行している、特別なコンピュータのことを指す。

 初期のWindowsネットワークでは、コンピュータ同士が通信するためにNetBIOSの名前サービスを利用しているということはすでにこの連載でも何度も述べてきた。NetBIOSではブロードキャスト通信を使って自分自身の存在を周囲に通知していた。では、ネットワーク上のコンピュータの一覧を取得する際にも、このブロードキャストが使われているのであろうか? 例えば、コンピュータの一覧が欲しいというコマンドをブロードキャストで送信すると、ネットワーク上の全コンピュータがいっせいに、自分自身の名前を(ブロードキャストまたはユニキャストで)返信してくれるのだろうか?

 もしそうだとすると、ネットワークはたちまち飽和してしまうであろうことは、容易に想像がつく。いまでこそ高速なネットワークが普及しているが、MS-Networks開発当初の低速なネットワーク(1Mbit/s程度)を考えると、これは現実的ではない。1台のコンピュータが1回実行する程度なら問題は少ないが、何十台、何百台のコンピュータがいっせいに実行すれば、ネットワークに負担がかかるだけでなく、各コンピュータにとっても応答のためにCPUに大きな負担がかかる。

 そこで考え出されたのが、コンピュータの一覧を管理するサービス、つまり「ブラウザ・サービス」を利用する方法である。ネットワーク上にブラウザ・サービスを実行するコンピュータを1台ないしは複数台用意しておき、コンピュータ名の一覧はこのブラウザ・サービスからのみ取得するようにする。これならば、最低限のトラフィックで常に最新のコンピュータの一覧を容易に取得することができる。

ブラウザ・サービス
ブラウザ・サービスを実行しているコンピュータは、ネットワーク上の有効なサーバ名の一覧リスト「ブラウズ・リスト」を持っている。ネットワークに参加したコンピュータは自分自身をブラウザ・サービスに登録し、終了時には登録を解除する。コンピュータの一覧が欲しい場合は、ブラウザから取得する。

 Windowsネットワークに参加しているサーバ・コンピュータ(Serverサービスを実行しているコンピュータ)は、システムの起動時にネットワークやブラウザに対してネットワークへの参加開始を通知し、システムの終了時にネットワークからの離脱を通知する。また1度しか通知しないと受信に失敗する可能性もあるため、さらに一定時間間隔ごとにサーバが稼働中であることを示す通知も送信する。このように、サーバの動作状態を通知することを「サーバ・アナウンス」という。

 ブラウザではこれらのアナウンスを受け取ることにより、自分自身の持つブラウズ・リストの内容を更新する。つまりコンピュータが稼働中である通知を受け取ればブラウズ・リストに追加/更新し、定期的なアナウンスが届かなくなると、一定時間後にブラウズ・リストから削除する。クライアントからの要求には、このブラウズ・リストを返すことにより、現在アクティブなサーバの一覧を素早く、確実に得ることができる。

 ただしその登録/解除の原理上、若干のタイムラグが生じるのは避けられない。新しくネットワークに参加したばかりのサーバはすぐにはブラウズ・リストには登録されないし、終了してもすぐにはブラウズ・リストから削除されない。このため、ブラウズ・リストに存在しているからといっても実際のサーバ・コンピュータへアクセスできるとは限らないということである。

 なおブラウザ・サービスは、WINSやDNSのような名前解決(IPアドレスとコンピュータ名を関連付けること)を行うためのものではない。このサービスは、あくまでもコンピュータ名の一覧を維持・管理するだけであり、名前解決はWINSやDNS、LMHOSTS、HOSTSなどで実現する。

ブラウザ・サービスの自己調整機能

 一口にブラウザといっても、動作しているOSやネットワーク環境などに応じてその機能には少しずつ違いがある。サービス名はいずれも同じ「Computer Browserサービス」であるが、自己調整機能を実現するために、実行時に自動的にその役割が変わるように設計されているからだ。あらかじめ管理者が特別な操作を行う必要なく、Windowsネットワークの開始から終了まで、常にブラウザ・サービスが利用できるように、自動的にサービスの起動や終了、維持管理などが行われている。

 ブラウザ・サービスは、その原理上、ネットワーク上のどこかで常に動作している必要があるが、同時に複数台のブラウザが存在している必要はない。複数台存在すると、クライアントからの要求に対する応答も複数発生することになり、ネットワーク・トラフィック的には非常に無駄が多いし、迷惑でもあるので、1台だけ利用できればよいだろう。だが常に1台だけしか存在しないように管理するのも容易ではない。どれか特定の1台だけでブラウザ・サービスを起動すると、そのコンピュータがダウンしている場合にはサービスが利用できなくなってしまうからだ。特にワークグループ形式で運用している場合には、非常に面倒だろう。常に特定の1台だけ電源を入れておかなければならない、というのでは使いにくい。

 このような設定の煩わしさを避けるため、ブラウザ・サービスでは、次のような機能を使って自動的にサービスを設定している。

 第1に、ブラウザ・サービスは、(デフォルトでは)自動的に起動するようになっている。ユーザーがいちいちサービスの起動や終了について関知する必要はない。ただしコンピュータのパワーが不足している場合などに備えて、手動で無効にすることもできる。一般的には、Windows 9x/Me系のコンピュータでは無効にしておいてもよいだろう。

 そして第2に、ネットワーク上に複数のブラウザ・サービスが存在することが検出された場合は、それらの間に優先度を付け、優先度の最も高いものだけがクライアントからの要求に応えるようになっている。もし優先度の高いコンピュータがダウンしたり、終了したりした場合は、次に優先度の高いブラウザが自動的にその役割を取って代わるようになっている。

 以上の仕組みにより、いつの時点でも、常に有効なブラウザ・サービスが利用できるようになる。

ブラウザの種類

 ブラウザには以下のような種類があり、状況に応じて動的にその役割が変わる。

■マスタ・ブラウザ(master browser)
 クライアントからの要求に応じてブラウズ・リストを返す、マスタとなるブラウザのこと。クライアントがブラウズ・リストを要求する場合は、基本的には、このマスタ・ブラウザに対して問い合わせを行う。マスタ・ブラウザは、ネットワークのセグメント(サブネット)やワークグループ/ドメインごとに1つずつ存在する。例えばWORKGROUPという名前のワークグループ・ネットワークが独立した2つのネットワーク・セグメント上に存在する場合(2つのネットワークがルータで接続されているかどうかは関係ない)、それぞれのセグメントごとに1台ずつマスタ・ブラウザが存在する。

■バックアップ・ブラウザ(backup browser)
 マスタ・ブラウザの負荷を分散するためのブラウザのこと。マスタ・ブラウザの負荷が増え、クライアントからの要求に対する応答が滞ると、バックアップ・ブラウザが代わりにクライアントに応答する。そのために、バックアップ・ブラウザはマスタ・ブラウザからブラウズ・リストをコピーして保持している。
 バックアップ・ブラウザの台数は可変であり、セグメント内のコンピュータが増えると自動的にその台数が増える。ネットワーク内のコンピュータ(ブラウズ・リストに登録されるような、サーバ・サービスが動作しているコンピュータ)が、おおむね32台ごとに1台ずつバックアップ・ブラウザが自動的に選定され、生成される。

■ドメイン・マスタ・ブラウザ(domain master browser)
 ドメイン全体で1台用意されるブラウザであり、複数のサブネット(セグメント)にまたがっているコンピュータ全体のブラウズ・リストを保持している。これによりクライアント・コンピュータは、ネットワーク・セグメントを越えて、同一ドメインに属するコンピュータをブラウズすることができる。基本的には、ドメインのPDC(Windows NTドメインの場合)か、PDCエミュレータ(Active Directoryドメインの場合)がその役割を担当する。

■優先マスタ・ブラウザ(Preferred Master Browser)
 バックアップ・ブラウザとほぼ同じであるが、マスタ・ブラウザやバックアップ・ブラウザへ昇格する優先度が高くなるように、あらかじめシステム内の特定のレジストリ(HKLMのSystem\CurrentControlSet\Services\Browser\ParametersのIsDomainMasterBrowserもしくはIsDomainMasterにTrue/Yes)が設定されたブラウザのことである。

■ポテンシャル・ブラウザ(potential browser)
 マスタ・ブラウザやバックアップ・ブラウザへ昇格する可能性のあるブラウザ。ポテンシャルとは「可能性のある」という意味である。非ブラウザ・サーバ以外で、ブラウザ・サービスが稼働しているサーバが該当する。

■非ブラウザ・サーバ(non-browser server)
 これはブラウザではなく、単なるサーバ(リソースを公開しているコンピュータ)のことを指してこう呼ぶことがある。ブラウザ・サービスが稼働していないコンピュータや、ブラウザにならないようにレジストリ設定されたサーバがこれに該当する。

選定アルゴリズム

 ネットワーク上にブラウザが複数存在する場合、どのブラウザがマスタやバックアップとなるかを決定する必要がある。またブラウザとして稼働するコンピュータが新しく起動した場合や既存のブラウザとの通信が不可能になった場合(システムがシャットダウンしたものと考えられる)にも、ブラウザの役割を見直し、マスタやバックアップのブラウザを変更する必要がある。

 このように、複数のブラウザの中から、最も適切なものを選択して、それぞれのブラウザに役割を割り当てることを「選定(election)」という。具体的には、状況の変化を検知したブラウザ・コンピュータが、ネットワーク全体に向けて「ブラウザ選定データグラム(ブラウザ選定パケット)」をブロードキャストする。例えば、ほかのブラウザとの通信ができなくなったので、自分自身のブラウザ・プロトコルやOSのバージョンなどの情報ととも選定要請パケットを送信する。これを受信したブラウザ・サービスは、自分自身の役割や環境(OSバージョン)などを考慮し、自分自身がマスタ・ブラウザとなるべきパケットを送信したり(自分自身が昇格する場合)、黙ってその決定を受け入れたりする(応答しないということは、送信元の方がマスタ・ブラウザとしての優先度が高いということ)。このやり取りを何度か繰り返して、最終的なマスタ・ブラウザが決定される。

 マスタ・ブラウザの選定においては、以下のようなさまざまな要素が考慮され、より優先度の高いものが自動的に選択される(上の方が優先度が高い)。

1.OSのバージョン

  • Windows 2000 Server、Windows NT Server、Windows Server 2003
  • Windows 2000 Professional、Windows NT Workstation、Windows XP
  • Windows for Workgroups、Windows 95/98、Windows Me

2.選定パケット(選定プロトコル)のバージョン

  • 新しいバージョンの方が優先度が高い
  • 同じバージョンなら、ブラウザの稼働時間の長い方が優先度が高い
  • 同じ稼働時間なら、アルファベット順で前にある方が優先度が高い

3.現在の役割

  • PDC、PDCエミュレータ
  • WINSサーバ
  • 優先マスタ・ブラウザ
  • 動作中のマスタ・ブラウザ
  • レジストリMaintainServerListエントリがYesのブラウザ
  • 動作中のバックアップ・ブラウザ

 例えば同じバックアップ・ブラウザが複数存在する場合、Server OSの方がクライアント系OS(Windows 2000 ProfessionalやWindows XPなど)よりも優先されるし、ドメインのPDCが起動すれば、既存の非PDCのマスタ・ブラウザのどれよりも最優先してマスタ・ブラウザに昇格し、ほかのものはバックアップ・ブラウザなどに降格する。

ブラウザ・サービスのスコープ

 ブラウザは、基本的にはネットワーク・セグメントごとに1台ずつ存在するが、プロトコルごとにも1台ずつ存在する。Windowsネットワークで利用されるトランスポート層レベルのプロトコルとしては、NetBEUIだけでなく、TCP/IPやIPX/SPXなども存在するが、もしNetBEUIとNetBIOS over TCP/IP、NetBIOS over IPX/SPXという3つのトランスポート層プロトコルを導入していれば、その3種類のネットワークごとに1台ずつブラウザ・サービスが存在している。

 実際には、1台のコンピュータで3つのブラウズ・リストを提供しているかもしれないが、それぞれのブラウズ・リストの内容が相互にマージされることはなく、独立して管理される。そのため、NetBEUIでブラウズ・リストを確認すると3台しかいないが、NBT(NetBIOS over TCP/IP)では10台存在するように見える、ということも起こる。

 ただしエクスプローラのネットワーク・アイコンでブラウズしたり、net viewコマンドでネットワークをブラウズしたりしても、プロトコルの違いは分からない。これらの表示では、プロトコル別に得られたリストをマージしたりして表示しているからだ(そうでなければとても使いにくいだろう)。

マスタ・ブラウザにおけるNetBIOS名前テーブル

 コンピュータがマスタ・ブラウザになっていると、そのコンピュータのNetBIOSの名前テーブルには、マスタ・ブラウザであることを表す特別なエントリ「<01><02>__MSBROWSE__<02><01>」が含まれている。

C:\>nbtstat -n

ローカル エリア接続:
Node IpAddress: [192.168.0.155] Scope Id: []

           NetBIOS Remote Machine Name Table

       Name               Type         Status
    ---------------------------------------------
    ATHLON64       <00>  UNIQUE      Registered
    WORKGROUP      <00>  GROUP       Registered …ワークグループ名
    ATHLON64       <20>  UNIQUE      Registered
    WORKGROUP      <1E>  GROUP       Registered
    WORKGROUP      <1D>  UNIQUE      Registered
    ..__MSBROWSE__.<01>  GROUP       Registered …マスタ・ブラウザ

    MAC Address = 00-0D-61-4D-6F-2A

コンピュータの一覧が見えることと、サーバにアクセスできることの違い

 よくWindowsネットワークでは、

 「コンピュータの一覧が見えることと、アクセスできることは違う」

といわれるが、その原理を知っていれば、この意味は容易に理解できるであろう。「コンピュータの一覧が見える」というのは、ブラウザ・コンピュータからブラウズ・リストを取得することを意味し、具体的にはエクスプローラでネットワーク・アイコンを開いたり、「net view」コマンドを実行したりして、コンピュータ名のリストを取得することを意味する。

 これに対して「アクセスできること」というのは、(ブラウザではなく)対象となるサーバに対して、SMBプロトコルを使ってアクセスすることを意味している。この場合、公開されているファイルやリソースにアクセスするためには、当然適切なアクセス権が必要になり、許可されていないとアクセスが拒否される。具体的には、エクスプローラでサーバ名をクリックしてもエラーとなるし、「net view \\server」コマンドによるアクセスもエラーとなる。

 つまり、ブラウズする場合と(公開リソースへ)アクセスする場合では、アクセスする先のコンピュータが異なるので、ブラウズはできるが、(特定のサーバ・コンピュータへの)アクセスはできない、となることがある。ブラウズ・リストの取得はドメインやワークグループに所属しているコンピュータならばだれでも実行できるが、サーバへのアクセスには適切なアクセス権が必要となるので、このような現象が発生することがある。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

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

メールマガジン登録

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