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をクリックする。

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