nmbd — NetBIOS オーバー IP のクライアントへの NetBIOS ネームサーバ機能の提供
nmbd [-D] [-F] [-S] [-a] [-i] [-o] [-h] [-V] [-d <debug level>] [-H <lmhosts file>] [-l <log directory>] [-n <primary netbios name>] [-p <port number>] [-s <configuration file>]
このプログラムは Samba(7) スイートの一部である。
nmbd は、Windows95/98/ME、 Windows NT、Windows XP や LanManager クライアントなどの、SMB/CIFS クライアントによる NetBIOS over IP のネームサービスのリクエストを認識し、 応答することができるサーバである。 また、Windows の "ネットワークコンピュータ" で表示されるコンピュータの一覧を 作り出すブラウジングのプロトコルにも対応している。
SMB/CIFS クライアントは、始動時に SMB/CIFS サーバを探そうとする。 つまり、指定されたサーバがどの IP アドレスを使用しているかを知ろうとする。
サービスの中でもとりわけ nmbd は、 そのようなリクエストを監視し、もしも自分の NetBIOS 名が指定されたなら、 動作しているホストの IP アドレスを返答する。 その「自分の NetBIOS 名」は、 既定値では動作しているホストのプライマリDNS 名であるが、 これは -nオプションによって変更可能である (下記の オプション を参照)。 このように、nmbd は、 自分の名前(復数の場合もある)を、 ブロードキャストの問い合わせに対して返答する。nmbd が返す追加の名前を、 smb.conf(5) 設定ファイルの中でパラメータを経由して 設定することができる。
また、nmbd は、WINS (Windows Internet Name Service) サーバとしても利用できる。 基本的にこれが意味することは、WINS データベースサーバとして、 受け取った名前登録要求からデータベースを構築でき、 またクライアントからの名前の問い合わせに応答することができるということである。
さらに nmbd は、WINS proxy として動作でき、 WINS サーバに対して WINS プロトコルで交信することができないクライアントからの、 ブロードキャスト要求を中継することができる。
このパラメータが指定されると、nmbd はデーモンとして動作する。 すなわち、自分自身を分離してバックグラウンドで動作し、適切なポートのリクエストを処理する。 既定では、nmbd はデーモンとして動作しない。 推奨しないが、nmbd は inetd からのメタ・デーモンとしても動作可能である。
このパラメータを指定すると、 nmbd のメインプロセスはデーモン化しなくなる。 つまり、 2 回の fork(2) と端末からの切り離しを行なわない。 通常通り接続要求を処理するための子プロセスが生成されるが、 メインプロセスは終了しない。 この動作方式は、 Daniel J. Bernstein 作の daemontools パッケージに含まれる supervise と svscan や、 AIX のプロセスモニターなど、プロセス監視の下で nmbd を動作させるのに都合がよい。
このパラメータが指定されると、nmbd は ファイルではなく標準出力にログを出力する。
このパラメータが指定されると、 サーバがシェルのコマンドライン上から起動されてもサーバはデーモンとはならずに"対話的に"動作する。 このパラメータの指定は、コマンドラインから起動するときに暗黙的にデーモンモードとなることを否定します。 また、-S パラメータが指定されていたとしても、 nmbd は標準出力にログを出力する。
コマンドラインオプションの要約を表示する。
NetBIOS lmhosts ファイルの指定。lmhosts ファイルは、 NetBIOS 名と IP アドレスの組で構成されるリストである。 これは、nmbd サーバによってロードされ、任意の NetBIOS 名を解決する問い合わせのために、 smb.conf(5)中で記述されている、 name resolve order 名前解決メカニズムに従って、サーバが必要とする NetBIOS 名の問い合わせを解決するために使われる。 このファイルの内容は、 nmbd が、 任意の名前問い合わせに応答する時には決して使われないことに注意。 このファイルに行を追加すると、 このホストからの NetBIOS 解決にのみ影響する。
このファイルへの既定値のパス名は、 Samba をビルドする過程でバイナリに埋め込まれる。 共通のデフォルト値は、 /usr/local/samba/lib/lmhosts、 /usr/samba/lib/lmhosts または /etc/samba/lmhosts である。 このファイルの内容の詳細は、 lmhosts(5) マニュアルページにある。
プログラムのバージョン番号を表示する。
サーバーが必要とする詳細な設定を含む設定ファイルを指定する。 このファイルには、 サーバーが提供するサービスに関する記述や、 どの printcap ファイルを利用するかといった情報が含まれている。 詳細は smb.conf を参照のこと。 デフォルトの設定ファイルの名前は、コンパイル時に決定される。
デバッグレベルを debuglevel に設定する。 debuglevel は、0 から 10 までの整数である。 このパラメータを指定しないときのデフォルト値は 0 である。
この値を大きくするほど、 サーバーの動作に関するより詳細な情報がログファイルに記録される。 レベル 0 では、致命的なエラーと重大な警告のみが記録される。 レベル 1 は日々の運用に適しており、 少量の稼働状況に関する情報を生成する。
1 より上のレベルは大量のログが生成されるので、 問題解決の時にのみ使用すべきである。 3 より上のレベルは開発者だけが利用するように設計されており、 莫大な量のログデータが生成される。 そのほとんどは非常に謎めいた内容となっている。
ログ/デバッグファイルのファイル名。 拡張子として ".client" が追加される。 ログファイルはクライアントによって削除されることはない。
UDP ポート番号には正の整数を指定する。 このオプションは、nmbd が名前問い合わせに返答する、 既定値の UDP ポート番号(通常は137)を変更する。 あなたがどんな場面でも助けを必要としない専門家でないならば、 このオプションを使用してはならない!
もしもサーバーが inetd メタ・デーモン経由で動作しているならば、このファイルは メタ・デーモンのための適切な起動情報を含んでいなければならない。
(またはシステムが使う初期化スクリプト)
もしも、サーバをデーモンとして起動させるならば、 このファイルにサーバのための適切なスタートアップ 手順を含む必要がある。
もしサーバを inetd メタ・デーモン経由で起動させるなら、このファイルにサービス名 (例えば netbios-ssn)とサービスポート(例えば139)、 プロトコルタイプ(例えば tcp)のマッピングを含んでいなければいけない。
これは、 smb.conf(5) のデフォルトの位置である。 その他の標準的なこのファイルのインストール位置は、 /usr/samba/lib/smb.conf と /etc/samba/smb.conf である。
もし WINS サーバとして動作させるなら (smb.conf(5) マニュアルページ中の wins support パラメータを参照)、 nmbd は、Samba がインストールされた場所の下に作成される var/locks ディレクトリ中の wins.dat ファイルに WINS データベースを格納する。
もし nmbd がブラウズマスタ として動作しているならば (smb.conf(5) マニュアルページの local master パラメータを参照)、 nmbd は、 Samba 自身がインストールされた場所の配下に作成される var/locks ディレクトリ中の browse.dat ファイルにブラウズデータベースを格納する。
nmbd プロセスをシャットダウンするために、 SIGKILL(-9) を使用することは、最後の手段以外には決して推奨しない。 これは、名前データベースが整合性の崩れた状態で残ってしまうかもしれないからである。 正しい方法は、SIGTERM(-15) を nmbd に送り、nmbd が自ら終了するまで待つことである。
nmbd は SIGHUP を受け取ると、名前の一覧を /usr/local/samba/var/locks ディレクトリ (または Samba 自身がインストールされた場所の配下に作成される var/locks ディレクトリ)中のファイル namelist.debug にダンプすることができる。 また、同様に nmbd はサーバデータベースを log.nmb ファイルにダンプする。
smbcontrol(1) を使うと nmbd のデバッグ・ログ・レベルを上げたり下げたりできる (SIGUSR[1|2] シグナルは Samba 2.2 からもはや使用されていない)。 これにより、低いログ・レベルで動作している間に発生する 一時的な問題を診断することができる。
inetd(8)、 smbd(8)、 smb.conf(5)、 smbclient(1)、 testparm(1)、 testprns(1)、 と Internet RFC の rfc1001.txt、rfc1002.txt。 さらに追加で CIFS(昔はSMB)の仕様が次のWebページからのリンクにある。 http://samba.org/cifs/
オリジナルの Samba ソフトウェアと関連するユーティリティは、 Andrew Tridgell によって作られた。Samba は現在 Linux カーネルが 開発されているような方法でのオープンソースプロジェクトである Samba Team によって開発されている。
オリジナルの Samba の マニュアルページは Karl Auer によって書かれた。 マニュアルページは YODL 形式(別の、優秀なオープンソースソフトウェアで、 ftp://ftp.icce.rug.nl/pub/unix/ にある) で変換され、Jeremy Allison によって Samba 2.0 リリースのために更新された。 Samba 2.2 のための DocBook 形式への変換は Gerald Carter が行った。 Samba 3.0 のための DocBook XML 4.2 形式への変換は Alexander Bokovoy が行った。