Chapter 39. Sambaの問題の調査と解決方法

Gerald (Jerry) Carter

Samba Team

Jelmer R. Vernooij

The Samba Team

David Bannon

Samba Team

Dan Shearer

Samba Team

8 Apr 2003

Table of Contents

診断ツール
Sambaそれ自身によるデバッグ
Tcpdump
Ethereal
Windowsのネットワークモニター
参考となる外部情報(URL)
メーリングリストにからの助言
メーリングリストからの脱退方法

メーリングリスト、RFCやドキュメントのような形で、数多くの情報源が存在している。Sambaの 配布物に由来するドキュメントには、ブラウジングのような一般的なSMBのトピックについての 良い説明が含まれている。

診断ツール

SMBネットワーキングにおいて、特定の問題について、何が原因かと言うことが、簡単に 分からないことがよくある。Sambaそれ自身はむしろ役立つ情報を提供するが、いくつかの 例では、snifferを使った方がよいかもしれない。snifferは LANをモニターし、そこに送信されているデータを解析し、画面上に表示するプログラムである。

Sambaそれ自身によるデバッグ

問題をデバッグするための最も良い診断ツールの1つは、Sambaそれ自身である。動作するときの、 debug levelを、smbdnmbd両方に指定する、 -d オプションが使える。smbd, nmbdsmb.confの マニュアルページに、デバッギングオプションに関連するより詳細な情報があるので参照すること。 debug level(log level)は1(既定値)から10までを指定できる(100はパスワードデバッグ用)。

別の、デバッギングに便利な方法は、gcc -g フラグ付きでSambaをコンパイル することである。これは、バイナリ中にデバッグ情報を埋め込み、動作中の smbd/nmbdプロセスにgdbがアタッチできるようにする。 NTワークステーション向けに、あるsmbdプロセスにgdbを アタッチするためには、最初にワークステーションとの接続を確立する。 LsaEnumTrustedDomainsを生成するのに、ctrl-alt-deleteを 押し、ドメインログオン画面を表示すれば(少なくとも、最初にドメインに参加しておく) 十分である。その後、ワークステーションは開いているコネクションを維持し、smbdプロセスが 走り出す(短い、smbdのアイドルタイムアウトを設定していないと仮定する)。 ctrl-alt-deleteを押してからパスワードを実際に入力するまでの間に、 gdbをアタッチでき、そのあと継続できる。

調べてみる価値のある便利なSambaのコマンドのいくつかは以下の通り:

$ testparm | more
$ smbclient -L //{サーバーのnetbios名}

Tcpdump

TcpdumpはSMBをサポートした最初の UNIX上でのsnifferである。これはコマンドラインユーティリティで、現在、そのSMB サポートは、etherealtetherealよりは 若干遅れている。

Ethereal

Etherealは、GUIのsnifferで、UNIX(Gtk) とWindows両方で使える。EtherealのSMBサポートはとても良い。etherealの 使用法の詳細は、良くできているEthereal User Guideを読むこと。

Figure 39.1. キャプチャの開始

キャプチャの開始

ポート137,138,139,445をリッスン。例えば、キャプチャの開始 画面であるように、port 137, port 138,port 139,か port 445を フィルターとして使う。

tetherealという名前のコンソールバージョンのecherealもある。

Figure 39.2. Etherealメインデータウィンドウ

Etherealメインデータウィンドウ

Windowsのネットワークモニター

Microsoft Windows NT上での同等品は、ネットワークモニター(Netmonとして知られる)が、 Microsoft Developer Network CD、Windows NTサーバーインストールCDとSMSのCD中ににある。 SMSに同梱されているnetmonは任意の2つのコンピューター間のパケットをダンプできる(すなわち、 ネットワークインタフェースをpromiscuousモードにする)。NTサーバーインストールCDに同梱 されているものは、ローカルのNTマシンに直接来るネットワークトラフィックとローカルな サブネットのブロードキャストのみモニターできる。etherealはnetmon形式のファイルを読み書き 出来る事に注意。

NTワークステーション上へのネットワークモニターのインストール

NTワークステーション上へのインストールには、多くの手順が必要である。以下は、 Microsoft Windows Workstation 4.0上にMicrosoft Windows NT Server 4.0から持ってきた Netmon V4.00.349をインストールする手順である。この手順はNetmonの、他の Windows NTバージョンからのものと同等である。Microsoft Windows NT Server 4.0 インストールCDとWorkstation 4.0のインストールCDの両方が必要である。

最初に、以下のようにして、NTサーバー上にネットワークモニターツールとエージェント をインストールする必要がある:

  • スタート->設定->コントロールパネル-> ネットワーク->サービス->追加 を表示する。

  • ネットワークモニターツールとエージェントを選択し、OKを クリックする。

  • ネットワークコントロールパネル上のOKをクリックする。

  • 要求されたならば、Microsoft NT Server 4.0のインストールCDを挿入する。

この時点で、Netmonファイルは%SYSTEMROOT%\System32\netmon\*.*に 存在すべきである。Netmonがパケットダンプを解析するために必要なDLLを含む parsers\と、captures\という2つのサブ ディレクトリも同様に存在する。

NT ワークステーション上にNetmonをインストールするためには、ワークステーションインストール CDかr、ネットワークモニターエージェントを最初にインストールする必要がある。

  • スタート->設定-> コントロールパネル->ネットワーク-> サービス->追加を表示する。

  • ネットワークモニターエージェントを選択し、 OKをクリックする。

  • ネットワークコントロールパネル上のOKを クリックする。

  • 要求されたならば、Windows NT Workstation 4.0インストールCDを挿入する。

そうすると、ワークステーション上の%SYSTEMROOT%\System32\netmonに、 NTサーバー上の%SYSTEMROOT%\System32\netmonからファイルをコピーし、 使用しているサイトに適切と見なされるアクセス許可を設定する。NetmonをNTマシン上で 動作させるには、管理者権限が必要である。

Windows 9x/Meへのネットワークモニターのインストール

NetmonをWindows 9x/Meにインストールするためには、Windows 9x/Me CD (\admin\nettools\netmon)からネットワークモニターエージェントを インストールする。どのようにこれを行うかについて情報が必要であれば、CD上のNetmon ドライバーファイルと一緒にreadmeファイルが用意されている。Netmonインストール先から ファイルをコピーする。

参考となる外部情報(URL)

メーリングリストにからの助言

Sambaに関連した数多くのメーリングリストがある。 http://samba.orgに移動し、 最も近いミラーサーバーを選択し、Supportをクリックする。次に、 Samba-related mailing listsをクリックする。

Samba TNGに関連する質問は、 http://www.samba-tng.org/にある。 メインストリームのSambaメーリングリストには、Samba-TNGに関連する質問を投稿しない こと。

メーリングリストのどれかに投稿したいのであれば、以下のガイドラインをよく読んでほしい:

  • いつも覚えておいてほしいのは、開発者はボランティアであるということである。 ある時点までに特定の機能を作る事について、開発者はお金をもらっているわけでも、 保証しているわけでもない。どの予定も希望的観測であり、それ以上の ものではない。

  • 常時、どのバージョンのSambaを使っていて、それが動いているOSが何かと言うことを 説明すること。使用しているsmb.confの適切なセクションを、少なくともPDCサポートに 影響する[global]中のオプションは提示すること。

  • バージョンについては、もしもCVS(訳注:現在はgit)経由でSambaを 入手したならば、最後にチェックアウトした日付を提示すること。

  • 質問を明確に、手短にするよう心がけること。とても長い、複雑な 質問は、それが完全に読まれる前に捨てられてしまう!HTMLエンコードして投稿しないこと。 メーリングリストを購読しているほとんどの人は、それを読まないで捨ててしまう。

  • もしも、不在時に、ただいま留守にしております というような気の利いたメッセージを返しているのであれば、メーリングリストに 返信しないように設定すること。メーリングリストへの自動応答は、このような ネット上での好まれない対応に応対しなければならない、何千もの人々をいらつかせて しまう。

  • クロスポストしないこと。どのメーリングリストが最適かを調べて投稿し、何が 起きたかを確かめてみること。samba-ntdomとsamba-technical両方に投稿しないこと。 多くの人は、1つ以上のメーリングリストに参加していて、2回以上同じ記事を 見るといらだってくる。他のメーリングリストで、記事を取り扱った方がよいと 考えている誰かは、しばしばその投稿記事を転送してくれている。

  • おおよそ20でログレベルが設定されて記録されたログファイルを 部分的に含めても良い。ログ全体を送ってはならないが、 エラーメッセージが分かるためのひとまとまりの部分ならばよい。

  • もしも、完全なNetmonトレース(開始からエラー時点まで)が あるならば、同じように*.CAPファイルを投稿しても良いだろう。

  • メールにドキュメントを添付する前に熟考すること。投稿記事 本体中に適切な部分を貼り付けることを考えること。Sambaメーリングリストは とても多くの人に配信している。使用しているsmb.confのコピーが、すべての 人に必要だろうか?

メーリングリストからの脱退方法

Sambaメーリングリストから脱退するには、参加申し込みをしたと同じページ、 http://lists.samba.org の最も近いミラーに行き、Supportをクリックし、 Samba-related mailing listsをクリックする。

脱退方法についてメーリングリストに投稿しないこと。(何らかの理由で処理がうまく 行かなかった場合を除いて)上記のアドレスのみを参照すべきである。