Linux の 302 (Mixed Environment) 試験対策: NetBIOS と WINS

名前解決とブラウジングに対応するように Samba を構成する

SMB/CIFS ネットワークでの命名方法は他とは異なります。最近のクライアントはインターネット・ドメイン名を使用して互いを参照できるようになっていますが、古いクライアントは、WINS (Windows Internet Name Service) サーバーとして知られる Microsoft 独自のシステム、つまり NBNS (NetBIOS Name Server) に依存していたからです (WINS と NBNS は同義語です)。従って、名前解決のために Samba を適切に構成することが重要となります。さらに、サーバーが特定のサーバー上で使用可能な共有を知るためのメカニズムであるブラウジングの構成も同じく重要です。

Roderick W. Smith, Consultant and author

Roderick Smith author photoRoderick W. Smith はコンサルタントであり、『The Definitive Guide to Samba 3』、『Linux in a Windows World』、『Linux Professional Institute Certification Study Guide』など、UNIX や Linux に関する数々の著作もあります。彼は現在、ロードアイランドのウーンソケットに住んでいます。



2011年 12月 09日

この連載について

この連載は Linux システム管理タスクの学習に役立つだけでなく、LPIC-3 (Linux Professional Institute Certification レベル 3) 試験に備えるための教材にもなります。

連載の各記事についての説明とリンクについては、developerWorks の LPIC-3 ロードマップを参照してください。現在進行中のこのロードマップは、LPIC-3 試験の最新の目標 (2011年 3月) を反映しています。完成した記事はその都度ロードマップに追加されていきます。

概要

この記事では、以下の概念について学びます。

  • WINS (Windows Internet Name Service)
  • NetBIOS (Network Basic Input/Output System)
  • ローカル・マスター・ブラウザーの役割
  • ドメイン・マスター・ブラウザーの役割
  • 名前解決
  • Samba を WINS/NBNS (NetBIOS Name Server) として構成して使用する方法
  • NetBIOS ブラウジング機能、ブラウザー選定、およびサービス・アナウンスメント

この記事は、LPIC-3 Specialty「302 Mixed Environment Exam」試験の主題 314 の目標 314.2 の試験対策となります。この目標の重要度は 7 です。


前提条件

選択的な LPI-302 試験について

LPIC (Linux Professional Institute Certification) には、さまざまなレベルがあり、レベルが上がるにつれ、より深い知識と経験が必要になってくるという点で、他の多くの認定と似ています。LPI-302 試験は、LPIC レベル階層のレベル 3 に位置する選択的な Specialty 認定試験であり、Linux システム管理に関する高度な知識が求められます。

LPIC レベル 3 (LPIC-3) 認定を取得するには、2 つのレベル 1 試験 (101 と 102)、2 つのレベル 2 試験 (201 と 202)、そして LPIC-3 Core Exam (301) に合格しなければなりません。これらの試験に合格した後、LPI-302 などの選択的な Specialty 認定試験を受けることができます。

この記事では、読者が Linux コマンドライン関数の実用的な知識を持っていること、そして Samba 構成の基本を理解していることを前提とします。また、smb.conf 構成ファイルの全体的な構成をよく理解していることや、この記事で取り上げるいくつかのトピックで比較をする Domain Name System (DNS) についての基本的な知識を持っていることも必要です。


NetBIOS の名前解決の仕組み

皆さん独自のフィードを作成してください

新しい記事が追加された際、あるいは内容が更新された際に通知を受けられるように、RSS、Atom、または HTML によるカスタム・フィードを作成することができます。それには、developerWorks RSS フィードにアクセスしてください。対象のゾーンとしては「Linux」を選択し、情報の種類としては「記事」を選択して、キーワードには「Linux Professional Institute」と入力します。そして最後にフィードの種類を選択します。

コンピューターの名前は、どのプロトコルを使用しているかに関係なく同じであることがほとんどですが、SMB (Server Message Block)/CIFS (Common Internet File System) プロトコルの場合、通常の TCP/IP とは歴史を異にするため、コンピューターの命名規則にも TCP/IP との間に多少の違いがあります。具体的に言うと、SMB/CIFS は、それぞれに独自のルールを持つ NetBIOS プロトコルと NetBEUI (NetBIOS Extended User Interface) プロトコルを使用するネットワークを対象として作成されました。その後、SMB/CIFS が TCP/IP と連動するように修正されたときに、古い NetBIOS 命名規則の一部が TCP/IP に合わせて変更されました。最近の SMB/CIFS クライアントおよびサーバーでは必ずしも NetBIOS 命名規則に従う必要はありませんが、従わなければならない場合もあります。したがって、NetBIOS での異なる名前解決方式、ネットワーク上での WINS サーバーの役割を含め、NetBIOS 命名規則を理解しておかなければなりません。

NetBIOS を理解する

図 1 に、開放型システム間相互接続 (OSI) モデルに従ったネットワーク・スタックのペア (クライアント用とサーバー用) を示します。SMB/CIFS はこのモデルの中で、プレゼンテーション層レベルのプロトコル・スタックであると考えてください。TCP/IP を実装する以前の SMB/CIFS は、セッション層レベルの NetBIOS に依存し、NetBIOS はトランスポート層レベルの NetBEUI に依存していました。

図 1. ネットワーク・プロトコル・スタックでは、それぞれセッション層プロトコルとトランスポート層プロトコルに位置する NetBIOS と NetBEUI
ネットワーク・プロトコル・スタックでは、それぞれセッション層プロトコルとトランスポート層プロトコルに位置する NetBIOS と NetBEUI を示す図

Linux には、NetBIOS も、NetBEUI も存在しません。SMB/CIFS プロトコルと NetBIOS 実装が行う仕事は、両方とも Samba が代わりに引き受けます。Samba は NetBEUI を使用する代わりに、TCP と UDP (User Datagram Protocol) を使って通信します。NetBIOS over TCP/IP という組み合わせは NBT と呼ばれることもあります。NBT が提供するサービスには以下のものがあります。

  • ネーム・サービス。TCP/IP ネットワークでは、コンピューターにはユーザーが使用する名前がありますが、コンピューター同士は IP アドレスとハードウェア・アドレスを使って通信します。NetBEUI では IP アドレスは使用されません。使用されるのは、名前とハードウェア・アドレスだけです。そのため NBT では、NetBIOS および NetBEUI 上の SMB/CIFS ネットワークでは不要な IP アドレスの作成を行うというわけです。この記事の前半は、このトピックに当てられます。
  • データグラム・サービス。これは、永久接続を行わないタイプのネットワーク通信です。TCP/IP では、UDP がこのサービスにほぼ相当するため、NBT はデータグラム・サービスが必要な機能 (この記事の後半で説明するブラウザー選定など) に UDP を使用します。
  • セッション・サービス。ユーザーがファイル共有をマウントするときなど、ほとんどのデータ転送リクエストでは、NetBIOS トランザクションは長期の接続を確立します。論理的には、このタイプのサービスは TCP/IP の TCP の部分に対応するため、NBT はこのような接続に TCP を使用します。

実際には、NBT に話が及ぶことはそれほどありません。SMB/CIFS ネットワークで使用される名前や、これらの名前と IP アドレスとのマッピングが話題になるときには、NetBIOS 名や NetBIOS 名の解決について話すのが通常です。NetBIOS 名は、以下の 2 つの部分から成ります。

  • マシン名。マシン名は、DNS でのマシン名と同じように特定のコンピューターを指します。実用上は、この名前がコンピューターの DNS マシン名と同じであることが最善です。マシン名は世界の中では一意でない場合もありますが、コンピューターが属しているネットワーク上すなわち少なくともコンピューターのワークグループまたはドメインの中では、一意でなければなりません。
  • ワークグループ名。ワークグループ名は、ネットワーク上の関連するコンピューターのすべてに適用されます。単純な (非ドメイン) SMB/CIFS 構成では、ワークグループ名はブラウジング (記事の後半で説明) のためにコンピューターを整理する手段に過ぎません。ドメインとして構成されているネットワークの場合、ワークグループ名がドメインに割り当てられ、ドメイン・レベルのサービスを提供します (「Linux の 302 (Mixed Environment) 試験対策: ドメイン制御」を参照)。

NetBIOS ネットワークの範囲が、少なくとも TCP/IP をベースに地球的規模で広がるインターネットと比べ、ローカルに限られているのは、この 2 層の命名システムが理由の 1 つとなっています。命名のレベルが 2 つしかないため、文字通り数十億ものコンピューターをすべて一意に識別する名前を作成するには実際的ではありません。

NetBIOS ネットワークでは、コンピューターはそれぞれに固有の名前で構成され、各コンピューターがその固有の名前をブロードキャストによってネットワークにアナウンスします。この分散命名手法により、それほど経験を積んでいないユーザーや管理者でも、すでに使われている名前を使用しない限り簡単にセットアップできるというわけです。

NetBIOS 名の最大長は 15 文字です。名前には文字、数字、そして以下の記号を含めることができます。

! @ # $ % ^ & ( ) - ' { } . ~

実用上は、名前は文字だけで構成するか、または文字と数字のみを使用して構成するのが最善です。名前の文字は、大/小文字が区別されます。この記事では NetBIOS 名には大文字を使用し、DNS 名には小文字を使用します。

DOS、Windows、および IBM OS/2 (Operating System/2) はいずれも NetBEUI をサポートしますが、現在は大抵の場合、ネットワーク上のすべてのコンピューターが NetBEUI を使用できるとしても NBT を使用するようになっています。NBT の動作と NetBIOS 名前解決については、これらのプラットフォーム間でその基本原則は共通しています。

NetBIOS 名前解決の方式

例えば、あるユーザーがワークステーションの前に座っていて、SPEAKER という名前のサーバーにアクセスしようとしているとします。ユーザーは適切なクライアント・アプリケーションを立ち上げて、サーバー名として「SPEAKER」と入力しました。すると、何が起こるでしょうか? NBT ネットワークでの名前解決には 4 つの方式があります。

  • ブロードキャストによる名前解決。クライアントはホスト名 SPEAKER に関連付けられた IP アドレスを問い合わせるために、ローカル・ネットワーク上のすべてのコンピューターが受信するブロードキャスト・メッセージを送信することができます。該当するコンピューターが応答すれば、クライアントは以降のデータ転送を行うための接続を開始することができます。このタイプの名前解決は、B モード名前解決と呼ばれることもあり、この名前解決方式だけを使用するコンピューターは B ノードと呼ばれます。
  • ネーム・サーバーの使用。クライアントは NBNS サーバーすなわち WINS サーバー (この 2 つは同義語です) に問い合わせることができます。DNS サーバーと同じように、WINS サーバーは IP アドレスとホスト名のマッピング情報を保持します。ただし、WINS サーバーが収集するマッピング情報は、ローカルに保持された構成ファイルを基に他のサーバーと調整して作成されたマッピング情報ではなく、コンピューターがブート時に行うブロードキャストに基づいて作成されたマッピング情報です。この方式は、P モード名前解決とも呼ばれます。
  • lmhosts の使用。lmhosts という名前の構成ファイル (通常、Samba システムでは /etc/samba に保存され、Windows システムでは C:\WINDOWS\SYSTEM32\DRIVERS\ETC に保存されます) には、IP アドレスとホスト名のマッピング情報を保存することができます。このファイルは、TCP/IP ホスト名に対して同様の役割を果たす /etc/hosts ファイルと同じような形式になっています。
  • DNS の使用。DNS は NBT の一部ではありませんが、DNS を使用して NetBIOS 名を解決するように Samba を構成することができます (Windows の最近のバージョンの場合も同様です)。

多くのコンピューターは、これらの名前解決方式のうち、複数の方式を特定の順序で使用するように構成することで、最小の手間で目的のシステムを検出できる可能性が最大になるようにしています。古い Microsoft Windows 9x システムや Windows Me システムではデフォルトで B モード名前解決を使用していましたが、それよりも新しいバージョンの Windows では DNS を第一の NetBIOS 名前解決方式として使用しています。

WINS サーバーは、それが Samba を実行する Linux コンピューターであろうと Windows サーバーであろうと、コンピューター名のブロードキャストをリッスンすることで IP アドレスと NetBIOS 名のマッピング情報を保持し、そのマッピング情報に関するクライアントからの問い合わせに答えなければなりません。これは実際には、WINS サーバーが常時 (あるいは管理できる限り常に) 使用可能でなければならないことを意味します。多くの場合、WINS サーバーとして機能するのに最適な候補となるのは、ドメイン・コントローラーです。コンピューターが専用の DNS サーバーをホストしているとしたら、そのサーバーも有力な候補となります。WINS サーバーとして選択したコンピューターは、明示的に WINS サーバーとして構成しなければなりません。そのためのタスクは、次のセクションで Samba サーバーを対象に説明します。


Samba の名前解決オプションの設定

NetBIOS 名を解決する必要性と名前解決方式が頭に入っていれば、Samba の名前解決オプションの構成に取り掛かれます。名前解決オプションは、大きく 2 種類に分けられます。一方の種類は Samba クライアント用オプション、もう一方は WINS サーバーとしての Samba の振る舞いを制御するオプションです。

Samba クライアント用オプションを設定する

以下に挙げる smb.conf のさまざまなオプションを調整することで、Samba がネットワークに対して自身をどのように表すか、あるいは Samba が NetBIOS 名をどのように解決するか、に影響を与えることができます。

  • netbios nameこのオプションは、サーバーがアナウンスする NetBIOS 名を設定します。このオプションを省略すると、DNS ホスト名のマシン名の部分が NetBIOS 名としてデフォルトで設定されます。例えば、DNS ホスト名が tunesmith.example.com の場合には、TUNESMITH に設定されます。
  • netbios aliases1 台のコンピューターが複数の NetBIOS 名をアナウンスすることも可能です。それには、このオプションを netbios aliases = PRILL HALRLOPRILLALAR のように設定します。このオプションで設定された名前は、netbios name オプションで設定された名前に加えてアナウンスされます。
  • workgroupワークグループまたはドメインの名前を設定するには、このオプションを使用します。このオプションを正しい値に設定しなければ、ブラウジングおよびドメイン機能が正しく機能しません。デフォルトは WORKGROUP です。
  • name resolve orderこのパラメーターは、Samba スイートのプログラムが使用する 4 つの名前解決方式を制御する 4 つのオプションのうち、1 つ以上のオプションを取ります。サーバー側には実質的な影響をほとんど及ぼしませんが、このオプションは smbclient などのツールが名前を解決する方法に影響を与えます。
  • wins serverこのオプションでは、WINS サーバーとして機能するように構成されたコンピューターのホスト名または IP アドレスを指定することができます。注意する点として、このオプションで指定したサーバーに名前解決要求が転送される保証はありません。その詳細を決定するのは、name resolve order オプションです。

通常、NetBIOS 名を設定するにはデフォルトの netbios name オプションを使用すれば十分で、netbios aliases オプションを使用する必要はありません。けれども特定の状況では、この 2 つのオプションのいずれか、または両方を使用しなければならないこともあります。例えば、停止させようとしているサーバーのジョブを Samba サーバーが引き継ぐように構成する場合、その停止するコンピューターの名前が宛先となっている問い合わせに Samba サーバーが応答するようにするためには、netbios aliases を使用する必要があります。また、NetBIOS アドレスに指定した名前とは異なる名前を他の目的で使用する場合にも、netbios name または netbios aliases を使用することになります。

name resolve order を使用するには、以下の 4 つのオプションのうち、1 つ以上のオプションをスペースで区切って指定します。

  • lmhostsこのオプションは /etc/samba/lmhosts ファイル (この後、詳細を説明します) のことを指します。
  • hostこのオプションは、標準の TCP/IP 名前解決のことを指します。これはローカルの TCP/IP 構成によって異なり、DNS サーバー、/etc/hosts ファイル、またはその他の方式などになる可能性があります。
  • winsこのオプションは、WINS サーバーによる名前解決のことを指します。WINS サーバーを指定するには、wins server オプションを使用します。
  • bcastこのオプションを含めた場合、Samba クライアントは NetBIOS ブロードキャスト方式の名前解決を使用します。

デフォルトの name resolve order 構成では、以上の 4 つの方式を指定された順に使用します。大抵は、このデフォルト設定で問題ありませんが、調整しなければならない場合もあります。例えば、lmhosts ファイルを保持せずに、DNS 方式の名前解決に優先して NetBIOS 方式を使用したい場合には、以下のように設定を変更することができます。

name resolve order = wins bcast host

WINS サーバーを使用する場合は、必ず wins serverパラメーターを構成に含めてください。このパラメーターが含まれていなければ、Samba クライアントが WINS サーバーを見つける手段がないため、実質的に name resolve order 行から wins が省略されているのと同じことになります。

lmhosts ファイルを保持するには、そのファイル・フォーマットを理解していなければなりません。lmhosts ファイルのフォーマットは /etc/hosts ファイルのフォーマットと同様で、1 行に 1 つのコンピューターのエントリーが記述されます。各行はコンピューターの IP アドレスで始まり、コンピューターの NetBIOS 名で終わります。コメント行はシャープ記号 (#) で始まります。つまり、以下のようなファイルの内容になります。

# Edit this file when adding or removing machines
192.168.7.5  NESSUS
192.168.7.8  PRILL
192.168.7.56 TUNESMITH

Samba を WINS サーバーとして構成する

NetBIOS 名の解決方法を指定する Samba クライアント用オプションに加え、以下のオプションを設定することで、Samba サーバーを WINS サーバーとして機能させることができます。

WINS レプリケーション

Windows WINS サーバーは、WINS レプリケーションというプロセスを使用して、異なるサブネット上にある WINS サーバー間でデータを交換することができます。残念ながら、Samba バージョン 3 では WINS レプリケーションをサポートしていませんが、Samba バージョン 4 ではこの機能のサポートが計画されています。一時は、WINS レプリケーションをサポートする wrepl というツールがあったものの、このプログラムは実験段階での使用にとどまり続け、結局このツールは使用されていません。

実際には、大半のクライアントは名前解決のほとんどに DNS を使用するようになっていることからも、dns proxywins proxy プロキシーなどのオプションを使用すれば、大抵のインストール環境では WINS レプリケーションのサポートが欠如していても重要な問題ではなくなります。

  • wins supportこのブール・オプションを Yes に設定すると、Samba サーバーが WINS サーバーとして機能するようになります。デフォルト値は No です。
  • wins proxyこのブール・オプションは、Samba が自身の名前以外の名前解決に対するブロードキャスト要求に応答するかどうかを決定します。ネットワークが複数のサブネットにまたがる場合、あるいはブロードキャストを使用するように構成されたコンピューターと WINS サーバーを使用するように構成されたコンピューターが混在する場合には、このオプションを Yes (デフォルト値は No です) に設定することで、NetBIOS 名前解決の信頼性を向上させることができます。
  • dns proxyこのブール・オプションがデフォルト値の Yes に設定されている場合、Samba WINS サーバーのファイルに検索要求と一致する NetBIOS 名が見つからなければ、Samba はローカルに構成された DNS 設定を使用して DNS ルックアップを行い、その名前を検索します。
  • max wins ttlWINS サーバーとして機能している間、Samba は収集した名前に関する情報を保持します。保持する期間は、クライアントの要求とこのパラメーターによって決まります。期間は秒単位で指定します。デフォルト値は 518400 (6 日間) です。
  • min wins ttlこのオプションは、名前データを保管する最小期間を設定するという点を除けば、max wins ttl と同様です。デフォルト値は 21600 (6 時間) です。

通常は wins server = Yes と設定するだけで、少なくとも Samba 側では Samba が WINS サーバーとして構成されます。ただし、WINS クライアントにはサーバーを自動的に見つける手段がないため、WINS クライアントに WINS サーバーの情報が通知されるようにクライアントを構成する必要があります。そのための最も簡単な方法は、少なくとも Windows クライアントについては、DHCP (Dynamic Host Configuration Protocol) サーバーの構成を調整する方法です。よく使用する named サーバーは、通常は /etc に格納されている dhcpd.conf ファイルを使って構成することができます。このファイルに、以下の 2 つのオプションを設定してください。これらのオプションは、構成ファイルの先頭近くにすでに設定されている場合もあります。

option netbios-name-servers 192.168.7.2;
option netbios-node-type 8;

最初の行は Samba WINS サーバーの IP アドレスを指定しています。2 番目の行はノード・タイプを設定しており、これにより、使用する名前解決方式が決まります。ノード・タイプの値の範囲は 1 から 8 までですが、そのうち意味があるのは以下の 4 つだけです。

  • 1. クライアントはブロードキャストだけを使用します。つまり、クライアントは B ノードとして機能します。
  • 2. クライアントは WINS サーバーだけを使用します。つまり、クライアントは P ノードとして機能します。
  • 4. クライアントは最初にブロードキャストを使用します。ブロードキャストで名前を解決できなかった場合には WINS サーバーを使用します。このようなクライアントは M ノードと呼ばれることがあります。
  • 8. クライアントは最初に WINS サーバーを使用し、名前を解決できなかった場合にはブロードキャストを使用します。このようなクライアントは H ノードと呼ばれることがあります。

通常は、クライアントを H ノードとして構成するのが妥当なので、DHCP サーバーからは NetBIOS ノード・タイプの値として 8 を渡すのが適切です。


ブラウジングの仕組み

コンピューターの世界では、ブラウジングという言葉は一般に Web に適用されます。つまり、ブラウジングとは今まさに皆さんが行っているように、Web ブラウザーを使用して Web サイトを閲覧することです。一方、SMB/CIFS のコンテキストでは、ブラウジングが意味することは (似てはいるものの) 異なります。SMB/CIFS のコンテキストでのブラウジングとは、ネットワークで使用可能なリソースを見つけるプロセスのことです。Samba には当然、クライアントがブラウジング操作を行う際のクライアントに対する振る舞いを指定する構成オプションが用意されています。これらの設定を調整するには、マスター・ブラウザーやブラウザー選定といったブラウジングの主な概念を理解していなければなりません。

ブラウジングの概要

Windows のファイル共有機能を使用したことがあれば、きっとブラウジングを使用したことがあるはずです。図 2 に、Windows の「Computer (コンピューター)」ウィンドウでブラウジングを使用している様子を示します。左側ペインの下のほうにある「Network (ネットワーク)」という項目が、ネットワーク上でアクセス可能なコンピューターを示しています。図 2 ではアクセス可能なコンピューターとして、「HARK」、「NESSUS」、「WEMBLETH」が示されています。これらのコンピューターのいずれかをクリックすると、そのコンピューターが提供している共有が示され、共有アイコンをクリックすると、その共有に格納されているファイルが示されるという具合です。

図 2. ブラウジングによってユーザーはサーバーおよび共有を素早く見つけられます
ブラウジングによってユーザーは、どのようにしてサーバーおよび共有を素早く見つけられるのかを示す図

ユーザーの観点からは、ブラウジングはすべて自動的に行われるように見えますが、もちろん裏ではブラウジングを機能させるために相当な作業が行われています。ブラウジングは、1 つのコンピューターを利用してコンピューターのリストを作成します。このコンピューターは、マスター・ブラウザーと呼ばれます。クライアントがネットワークをブラウズするときには、マスター・ブラウザーにアクセスしてコンピューターのリストを取得します。当然、マスター・ブラウザーはサーバーです。このサーバーの構成に大幅に手を加える必要はありませんが、ブラウジングの惨事 (例えば、ブラウズ・リストが明らかな理由もなく突然空になるなど) を避けるためには、ブラウジングの仕組みを多少理解しておく必要があります。

正式には、マスター・ブラウザーには以下の 2 つのタイプがあります。

  • ローカル・マスター・ブラウザー。ローカル・マスター・ブラウザーは 1 つのサブネットにサービスを提供します。ローカル・マスター・ブラウザーは、ブロードキャスト・メッセージ (コンピューターが自身の存在をアナウンスして、その NetBIOS 名をアナウンスするために送信するメッセージ) をリッスンし、これらのブロードキャストの情報を基に作成したブラウズ・リストを保持します。また、マスター・ブラウザーの検索を目的としたブロードキャスト・クエリーにも応答します。ローカル・マスター・ブラウザーは、選定と呼ばれるプロセスによって指定されます。したがって、原則としては、あらゆるコンピューターがローカル・マスター・ブラウザーになることができます (SMB/CIFS は、ピア・ツー・ピア構成で使用するために設計されたことを思い出してください。ピア・ツー・ピア構成では、すべてのコンピューターがクライアント兼サーバーとして機能します)。
  • ドメイン・マスター・ブラウザー。ローカル・マスター・ブラウザーは、ブロードキャスト・メッセージをリッスンすることによってサーバー・リストを作成するため、多少の助けがない限り、複数のサブネットに対応することはできません。そこで登場するのが、ドメイン・マスター・ブラウザーです。ドメイン・マスター・ブラウザーは各サブネット上のローカル・マスター・ブラウザーと通信してブラウズ・リストを交換し、異なるサブネット上にあるコンピューターが互いに「見える」ようにします (ただし、この手法はサーバーの表示/非表示に遅延を発生させます)。ドメイン・マスター・ブラウザーは選定によって指定されるわけではないため、明示的に構成されなければなりません。一般には、ドメイン・コントローラーがドメイン・マスター・ブラウザーとして機能します。

Samba では、ローカル・マスター・ブラウザーが別のサブネットにあるマスター・ブラウザーとブラウズ・リストを交換できるようにするためのオプションを提供しています (これについては、「Samba のブラウジング・オプションの設定」で説明します)。ネットワークが複数のセグメントで構成されている一方、ドメイン構成を実行したくないという場合には、これらのオプションが重宝します。

ローカル・マスター・ブラウザーは、バックアップ・ブラウザーと呼ばれる代役を持つこともできます。バックアップ・ブラウザーはブラウズ・リストを保持しますが、通常はクライアントから呼び出されることはありません。バックアップ・ブラウザーに意図されている目的は、マスター・ブラウザーが使用不可能になった場合、現在使われているブラウズ・リストを使用してマスター・ブラウザーの役割を引き継ぐことです。

マスター・ブラウザーの選定

選定は、コンピューターからの選定要求によって開始されます。コンピューターが選定を要求するのは、通常は前のマスター・ブラウザーが問い合わせに応答していない場合ですが、システムによっては (Samba など)、ブート時や他のタイミングに選定を要求することもできます。通常、選定は数秒で完了しますが、その間はブラウジングが機能しなくなるため、Samba が選定を何度も要求することのないように構成してください。選定を要求したコンピューターがその選定基準をブロードキャストした時点で、選定が開始されます。選定基準には、この後説明するようにランクを付けることができます。最初にブロードキャストされた選定基準より基準のランクが上のコンピューターは、その選定基準をブロードキャストすることによって応答します。選定に勝利すると確信しているコンピューターは、その選定基準を 200 ミリ秒から 800 ミリ秒間隔でブロードキャストし続け、4 回目のブロードキャストを行ってから勝利を宣言します。この時点で、そのコンピューターがローカル・マスター・ブラウザーになります。

以下に、マスター・ブラウザーの選定で使用される基準を優先度の高い順に説明します。

  1. 選定プロトコルのバージョン。理論的には、使用できる選定プロトコルは複数ありますが、これまで使用されているのはバージョン 1 のみです。したがって、今後この情報が重要になる可能性はあるものの、現状では重要ではありません。
  2. オペレーティング・システム・レベル。各オペレーティング・システムには、優先レベルとして 0 から 255 までの値が割り当てられます。選定では、この値が大きいほうのオペレーティング・システムが優先されます。ほとんどの Microsoft オペレーティング・システムには、1 から 32 までの値が割り当てられますが、Samba のオペレーティング・システム・レベルは、「Samba のブラウジング・オプションの設定」で説明する方法に従って調整することができます。
  3. プライマリー・ドメイン・コントローラー (PDC) であるかどうか。オペレーティング・システム・レベルも、選定プロトコルのバージョンも同じ場合には、現在 PDC として機能しているコンピューターが何よりも優先されます。
  4. WINS サーバーであるかどうか。他の要因で決着がつかない場合は、現在 WINS サーバーとして機能しているコンピューターが選定に勝利します。
  5. 優先マスター・ブラウザー。選定で有利になるように、コンピューターを優先マスター・ブラウザーとして指定することができます。
  6. 現在のマスター・ブラウザー。現在、マスター・ブラウザーとして機能しているコンピューターは、選定で有利です。
  7. 以前のマスター・ブラウザー。コンピューターが以前はマスター・ブラウザーとして機能していて、最近の選定で負けてバックアップ・ブラウザーに降格された場合、選定では多少有利になります。
  8. 実行中のバックアップ・ブラウザー。コンピューターが現在バックアック・ブラウザーとして機能している場合、選定で少しだけ有利になります。

マスター・ブラウザーの選定が要求され、上記の選定基準に従っても決着がつかない場合には、さらに以下の 2 つを追加の基準として使用することができます。

  • 稼働時間。一方のコンピューターが他方のコンピューターよりも長い期間稼働している場合、稼働時間が長いほうのマシンが勝利します。
  • NetBIOS 名。他のあらゆる基準で決着がつかない場合、アルファベット順でソートしたときに、リストの先頭に来るコンピューターが選定に勝利します。

Samba のブラウジング・オプションの設定

当然のことながら、Samba にはブラウザー選定でのその動作と、ドメイン・マスター・ブラウザーとして機能する能力に影響を及ぼすオプションが数多く用意されています。このセクションでは、選定を「裏工作」するために使用できるオプション、サブネット間のブラウジングを可能にするためのオプション、そしてドメイン・マスター・ブラウザーとしての地位を勝ち取るために必要なオプションについて説明します。また、ユーザーがコンピューターをブラウズするときに表示される共有を調整するために (マスター・ブラウザーでないサーバーも含め) Samba サーバーに設定できるオプションについても説明します。

選定に勝利するように Samba を構成する

Samba がローカル・マスター・ブラウザーの選定で勝利する能力に影響を及ぼすことができるオプションには以下のものがあります。

  • local masterこのオプションが Yes (デフォルト値) に設定されている場合、Samba はローカル・マスター・ブラウザーの選定に参加します。No に設定すると、選定にはまったく参加しなくなるため、ローカル・マスター・ブラウザーとして選ばれることはありません。
  • os levelSamba の os level はデフォルトで値 20 に設定されます。サーバー以外のほとんどの Microsoft オペレーティング・システムに選定で勝利するには、この値で十分ですが、Microsoft のサーバー・オペレーティング・システムに対してはその限りでありません。これらのオペレーティング・システム・レベルは 32 に設定される傾向があるためです。Samba サーバーが間違いなく選定に勝利するようにするには、このオプションの値を 255 に設定することができます。その場合、同じように構成された別の Samba サーバーを除き、すべてのマシンに勝つことになります。ただし、いつも決まってこのような極端なオプションを設定することは禁物です。複数の Samba サーバーが含まれるネットワークでは、1 つの Samba サーバーだけが選定に勝利するように「裏工作」してください。
  • domain logonsLPIC 目標 312.4 についての記事で説明したように、このブール・オプションは Samba サーバーを PDC として機能するように構成するため、ブラウザー選定でのサーバーの勝利の可能性にも影響します。
  • wins supportWINS サーバーであるかどうかは 1 つの選定要因になります。したがって、このブール・オプションは選定の結果に影響を及ぼす場合があります。
  • preferred masterこのブール・オプションを Yes に設定すると、Samba は毎回起動するたびに選定を要求するようになります。また、選定で使用される優先マスター・ブラウザーのフラグもセットされます。デフォルト値は No です。
  • browse listこのブール・パラメーターは、サーバーがブラウズ・リストを保持するかどうかを決定します (デフォルト値は Yes です)。ブラウズ・リストを保持するサーバーは、バックアップ・ブラウザーまたはマスター・ブラウザーになることができます (このオプションを No に設定すると、Samba は選定に参加しなくなります)。

ほとんどの Samba サーバーは、デフォルト設定のままで有効に機能します。デフォルト設定の Samba サーバーでは、ワークグループの構成に Windows Server オペレーティング・システムや選定に勝利するように構成された Samba サーバーが存在する場合、マスター・ブラウザーとして選択されることはありませんが、そうでなければデフォルト設定の Samba サーバーがブラウザー選定に勝利します。

ブラウジングに問題が発生している場合には、Samba サーバーの設定を調べてください。大抵の場合、問題の原因は以下のいずれかとなっています。

  • 信頼できないローカル・マスター・ブラウザー。マスター・ブラウザーとして機能しているコンピューターがシャットダウンしたり、ネットワークから切断されたりすると、ブラウジングが中断されます。ピア・ツー・ピア・ネットワークを構成する多数のコンピューターのオペレーティング・システム・レベルが同じ場合、ユーザーがコンピューターをシャットダウンすると、この問題が発生することが時々あります。このようなネットワークでの有効なソリューションは、信頼できる Samba サーバーのオペレーティング・システム・レベルを引き上げるとともに、場合によっては他のオプションも変更して、その Samba サーバーが選定に勝利するように構成することです。
  • 多過ぎる優先マスター・ブラウザー。複数のコンピューターが優先マスター・ブラウザーとして構成されていると、繰り返し選定が要求され、そのたびにブラウジングが短時間中断されることになります。優先マスター・ブラウザーとして構成される Samba サーバーは、各ネットワークで 1 つになるようにする必要があります。Windows コンピューターが優先マスターとなっている場合 (ドメイン・コントローラーとして構成されている場合) には、Samba サーバーが優先マスター・ブラウザーとして構成されていないことを確認してください。

ワークグループでのサブネット間ブラウジングを可能にする

ワークグループ構成を使用しているネットワークが複数のサブネットにまたがっている場合には、名前解決やブラウジングがサブネット間で正しく機能しない可能性があります。名前解決の問題については、記事の前半で説明した WINS サーバー・オプションによって克服することができます (名前解決に DNS を使用することによっても克服することができます)。一方、ブラウジングについては、普段はあまり使わない Samba 専用のオプションを使用しなければならない場合があります。ブラウジング問題を解決する 1 つの方法は、Samba WINS サーバーをドメイン・マスター・ブラウザーとして構成することです。Samba ではこれと関連する機能が個別のオプションに分けられているため、ドメイン全体を構成しなくても、Samba 内でこの方法を実現することができます。ただし、Samba WINS サーバーをドメイン・マスター・ブラウザーとして構成するには、単一の Samba サーバーを WINS サーバーとして構成すると同時にドメイン・マスター・ブラウザーとしても構成しなければなりません。そうでないと、ドメイン・マスター・ブラウザーとして機能する上で必要なすべてのホスト名に関する情報を入手できないためです。

1 台のコンピューターを WINS サーバー兼ドメイン・マスター・ブラウザーとして構成することができない場合、あるいはすべてのコンピューターが WINS サーバーに自己登録させるのが難しい場合には、以下の 3 つの追加パラメーターのいずれかを設定するか、または組み合わせて設定することで、サブネット間でのブラウジング問題の解決に役立ちます。

  • remote browse syncこのオプションで Samba サーバーの IP アドレスまたはネットワーク全体を指定すると、Samba は該当する Samba サーバー、または指定されたネットワークで検出されたマスター・ブラウザーとブラウズ・リストを交換します。重要な制約事項として、このオプションが有効なのは Samba サーバーとの間に限られます。このオプションを使用しても、Samba が Windows ローカル・マスター・ブラウザーとブラウズ・リストを交換することはできません。
  • remote announceSamba は、IP アドレス (ブロードキャスト・アドレスを含む)、そしてオプションでワークグループ名を渡すことによって、その存在をリモート・ネットワークにアナウンスすることができます。例えば、192.168.8.255/PAK をリモート・ネットワークにアナウンスするとしたら、Samba は自身を 192.168.8.0/24 サブネット上の PAK ワークグループのローカル・マスター・ブラウザーとしてアナウンスすることになります。remote browse sync とは異なり、このオプションを使用した場合、Samba サーバーだけではなく、あらゆるタイプのマスター・ブラウザーとブラウズ・リストを交換することができます。
  • enhanced browsingこのブール・オプションがデフォルトの Yes に設定されている場合、Samba は WINS サーバーまたはその他の手段でドメイン・マスター・ブラウザーを検索し、検出したドメイン・マスター・ブラウザーとブラウズ・リストを交換します。このオプションを使用するとサブネット間でのブラウジングの信頼性が高くなりますが、現存しないワークグループをブラウズ・リストから消すことができなくなります。この問題が発生した場合には、このオプションを No に設定する必要があります。

通常は、各サブネットで Samba ローカル・マスター・ブラウザーを使用し、そのそれぞれが remote browse sync を使用して他の Samba サーバーを指すように構成すれば、サブネット間でブラウズ・リストを問題なく交換できるようになります。リモートのローカル・マスター・ブラウザーの正確な IP アドレスが不明な場合には、ブロードキャスト・アドレス (例えば、192.168.8.0/24 ネットワークを表す 192.168.8.255 など) を使用することもできます。

ドメイン・マスター・ブラウザー・オプションを有効にする

一般に、Samba をドメイン・コントローラーとして構成すると、Samba ではドメイン・マスター・ブラウザーであることが想定されるようになります。Samba をドメイン・マスター・ブラウザーに強制的に設定するには、domain master オプションを Yes に設定してください。このパラメーターはブール値に加え、そのデフォルト値である Auto を受け入れます。これにより、ドメイン・マスター・ブラウザー構成には、「Linux の 302 (Mixed environment) 試験対策: ドメイン制御」で説明した domain logins パラメーターの構成が反映されます。

Samba がドメイン・コントローラー兼ドメイン・マスター・ブラウザーとして構成された後は、ドメインのメンバーは問題なく、このサーバーをドメイン・マスター・ブラウザーとして使用できるようになります。他のサブネット内のローカル・マスター・ブラウザーは、ドメイン・マスター・ブラウザーを識別するためのコードが含まれるドメイン名ルックアップを使用して、ドメイン・マスター・ブラウザーを見つけることができます。正しく動作することをさらに確実にするためには、Samba ローカル・マスター・ブラウザーに remote browse sync パラメーターを設定します。

ブラウズ・リストはサブネット全体にすぐに伝播されるわけではないことに注意してください。ローカル・マスター・ブラウザーがそれぞれのブラウズ・リストを収集するには時間が必要です。さらに、ローカル・マスター・ブラウザーはブラウズ・リストを時折ドメイン・マスター・ブラウザーと同期させます。合計すると、すべてのサブネットですべてのコンピューターがブラウズ・リストに現れるまでには、数分かかることもあります。

ローカル・ブラウジング・オプションを設定する

この記事で説明したブラウジング機能の大半は、コンピューターのリストを保持するマスター・ブラウザーに関連しますが、個々のサーバーが、提供している共有に関する情報を公開しなければ、ブラウジングは何の役にも立ちません。デフォルト設定でもほとんどの共有がブラウズ・リストに現れるため、通常はデフォルト設定で問題ありません。ただし、[homes] 共有の場合は、一部例外があります。[homes] 共有の定義では、コンピューターのユーザーごとに 1 つの共有が作成されることになっていて、通常、その共有はそれが属するユーザーのブラウズ・リストにしか表示されません。ローカル共有情報を公開する方法は、Samba ファイルおよびプリンター・サーバー (マスター・ブラウザーでないとしても) に以下のオプションを設定することで調整することができます。

  • preload通常は表示されない共有でも、このオプションに指定することで、ブラウズ・リストに表示されるようになります。特定のユーザーの [homes] 共有をブラウズ・リストに含めるには、例えば preload = LOUIS と設定します。すると、ユーザー LOUIS の [homes] 共有がユーザー全員に表示されます。このオプションは auto services とも呼ばれます。
  • load printerこのブール・オプション (デフォルト値は Yes) は、PRINTERS 定義によって作成されたプリンター共有を表示するかどうかを決定します。
  • browseableこのブール・オプションは、特殊な共有タイプを除き、デフォルトで Yes に設定されます。Yes に設定されている場合には、共有がブラウズ・リストに表示されます。値を No に設定すると、共有は非表示になりますが、ユーザーが共有の名前を知っていれば、その共有にアクセスすることができます。

NetBIOS および WINS 機能のテスト

Samba サーバーを WINS サーバーまたはマスター・ブラウザーとして構成した後、あるいはそのように構成する前でも、NetBIOS の名前解決とブラウジング機能をテストすることはできます。Samba には、この場合のテストに役立つ数々のツールがあります。そのうち最も注目に値するツールは、findsmbsmbtree です (両方とも、「単調で面倒な仕事」は nmblookupsmbclient などの下位レベルのツールに任せます)。

findsmb プログラムは、ネットワーク上の NetBIOS コンピューターを問い合わせるブロードキャスト・クエリーを送信し、その結果をレポートします。通常はオプションなしで呼び出されますが、サブネット・アドレスを渡してローカルではないサブネットに対して問い合わせることもできます。また、-r オプションを指定すると、Microsoft Windows 95 に固有のバグに対する修正が行われます。このプログラムの実行結果は、リスト 1 のようなものになります。

リスト 1. findsmb の出力例
$ findsmb

                                *=DMB
                                +=LMB
IP ADDR         NETBIOS NAME     WORKGROUP/OS/VERSION 
---------------------------------------------------------------------
192.168.7.1     CISCOC8231    +[	              ]
192.168.7.5     NESSUS        *[RINGWORLD] [Unix] [Samba 3.4.12]
192.168.7.9     HARK           [RINGWORLD] [Unix] [Samba 3.5.7]
192.168.7.56    TUNESMITH     +[RINGWORLD] [Unix] [Samba 3.0.28a-apple]

上記の出力には、ローカル・コンピューターの名前と IP アドレスだけでなく、ローカル・コンピューターごとのワークグループ、オペレーティング・システム、実行されている Samba バージョンなどの情報も示されています。

ほとんどオプションを取らない findsmb とは異なり、smbtree プログラムはいくつかのオプションを取ります。smbtree は、ネットワーク上のブラウジング情報を取得するためのプログラムです。最も単純な形では、Windows ファイル・ブラウザー (図 2 を参照) で表示されるようなブラウズ・リストをテキスト形式で表示します (リスト 2 を参照)。smbtree にはユーザー・パスワードの入力が必要です。共有情報へのアクセス権は、このパスワードを使用して取得されるため、ログインに成功した後でなければ多くのサーバーは情報を公開しません。

リスト 2. smbtree の出力例
$ smbtree
Enter rodsmith's password: 
RINGWORLD
	\\WEMBLETH          	        wembleth server (Samba, Ubuntu)
		\\WEMBLETH\IPC$             IPC Service (wembleth server (Samba, Ubuntu))
                \\WEMBLETH\programs         User programs
	\\SEEKER         		seeker server (Samba, Ubuntu)
		\\SEEKER\rodsmith           Home Directories
		\\SEEKER\IPC$               IPC Service (seeker server (Samba, Ubuntu))
		\\SEEKER\MYTHTV             Home Directories
	\\NESSUS         		Nessus
		\\NESSUS\rodsmith           Home Directories
		\\NESSUS\hp4000             HP4000 via Ethernet
		\\NESSUS\Epson_RX500        EPSON Stylus Photo RX500
		\\NESSUS\IPC$               IPC Service (Nessus)
		\\NESSUS\cf                 Epson RX500 CF port
		\\NESSUS\floppy             Floppy Drive

smbtree による出力の大半は自明で、ワークグループまたはドメイン (上記の例では RINGWORLD)、サーバー (上記の例では WEMBLETH、SEEKER、NESSUS の 3 つ)、各サーバー上でブラウズ可能な共有 (comment 共有オプションを使用して、共有の説明が追加されるように設定することもできます) を識別します。バックグラウンド・タスクを実行するために使用される IPC$ 共有は、一般にユーザーには表示されませんが、smbtree では公開されます。

smbtree の振る舞いを変更するには、さまざまなオプションを指定することができます。そのなかでも、特に役に立つオプションを表 1 に記載します。これ以外のオプションについての詳細は、smbtree の man ページを参照してください。

表 1. smbtree コマンドのオプション
オプション効果
-b または --broadcastローカル・マスター・ブラウザーを使用するのではなく、ブロードキャストを使用して問い合わせを行うことで、ブラウズ・リストを取得します。
-D または --domains既知のドメインのリストを表示します。使用可能なサーバーおよび共有に関するデータは表示しません。
-S または --serversドメインおよびサーバーのリストを表示します。共有に関するデータは表示しません。
-d level または --debuglevel=levelログ・ファイルに記録する詳細レベルを設定します。デフォルト値の 0 が設定されている場合、詳細はほとんど記録されません。レベルを上げると、ネットワーク問題のデバッグに役立ちます。
-N または --no-passパスワード・プロンプトを抑止します。これにより、使用可能な情報も制限されることになります。
-U username または --user=username共有にアクセスするために使用するユーザー名を設定します。パーセント記号 (%) とパスワードを追加して、パスワードを指定することもできます。例えば、teela%lucky とすると、使用するユーザー名には teela、パスワードには lucky が設定されます (lucky というパスワードは安全ではないことに注意してください。Teela は安全性を気にしていないに違いありません)。
-S または --serversドメインおよびサーバーのリストを表示します。共有に関するデータは表示しません。

参考文献

学ぶために

製品や技術を入手するために

  • http://ftp.samba.org/pub/unpacked/standalone_projects/source4/libcli/wrepl/ ソース・コードは、Samba Web サイトから入手できます。

議論するために

  • My developerWorks コミュニティーに加わってください。ここでは他の developerWorks ユーザーとのつながりを持てる他、開発者が主導するブログ、フォーラム、グループ、ウィキを調べることができます。

コメント

developerWorks: サイン・イン

必須フィールドは(*)で示されます。


IBM ID が必要ですか?
IBM IDをお忘れですか?


パスワードをお忘れですか?
パスワードの変更

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


お客様が developerWorks に初めてサインインすると、お客様のプロフィールが作成されます。会社名を非表示とする選択を行わない限り、プロフィール内の情報(名前、国/地域や会社名)は公開され、投稿するコンテンツと一緒に表示されますが、いつでもこれらの情報を更新できます。

送信されたすべての情報は安全です。

ディスプレイ・ネームを選択してください



developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

必須フィールドは(*)で示されます。

3文字から31文字の範囲で指定し

「送信する」をクリックすることにより、お客様は developerWorks のご使用条件に同意したことになります。 ご使用条件を読む

 


送信されたすべての情報は安全です。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Linux
ArticleID=778759
ArticleTitle=Linux の 302 (Mixed Environment) 試験対策: NetBIOS と WINS
publish-date=12092011