nmbd — NetBIOS over TCP/IP クライアントへの NetBIOS ネームサーバー機能の提供
nmbd
[-D|--daemon] [-i|--interactive] [-F|--foreground] [--no-process-group] [-b|--build-options] [-p <port number(s)>] [-P <profiling level>] [-d <debug level>] [--debug-stdout] [--configfile=<configuration file>] [--option=<name>=<value>] [-l|--log-basename <log directory>] [--leak-report] [--leak-report-full] [-V|--version]
このプログラムは samba(7) システムの一部である。
nmbd
は、Windows95/98/Me、 Windows NT、Windows XP
や LanManager クライアントなどの SMB/CIFS クライアントによる
NetBIOS over TCP/IP のネームサービスのリクエストを認識し、
応答することができるサーバーである。
また、Windows の「ネットワークコンピューター」
で表示されるコンピューターの一覧を
作り出すブラウジングのプロトコルにも対応している。
SMB/CIFS クライアントは、起動時に SMB/CIFS サーバーを探索し、 サーバーが用いている IP アドレスを確認しようとする。
サービスの中でもとりわけ nmbd
は、
そのようなリクエストを監視し、自分の NetBIOS 名が指定されたなら、
自身の IP アドレスを返答する。
「自分の NetBIOS 名」は、
既定値では動作しているホストのプライマリDNS 名であるが、
これは ${prefix}/etc/smb.conf
の netbios name
によって変更可能である。
このように 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
を動作させるのに都合がよい。
このパラメーターが指定されると、
サーバーがシェルのコマンドライン上から起動されてもサーバーはデーモンとはならずに「対話的に」動作する。
このパラメーターにより、コマンドラインから起動した際に暗黙的にデーモンモードとなることが抑止される。
また、-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) マニュアルページを参照のこと。
UDP ポート番号には正の整数を指定する。
このオプションは、nmbd
が名前問い合わせに返答する、
既定値の UDP ポート番号(通常は137)を変更する。
あなたがどんな場面でも助けを必要としない専門家でない限り、
このオプションを使用してはならない!
nmbd用に新しいプロセスグループを作成しない。
level
は0から10までの整数値である。
このパラメータが設定されていない場合の規定の値は、0 である。
この値を大きくするほど、サーバーの動作に関するより詳細な情報が ログファイルに記録される。レベル 0 では、致命的なエラーと重大な警告 のみが記録される。レベル 1 は日々の運用に適しており、少量の稼働状況 に関する情報を生成する。
1 より上のレベルは大量のログが生成されるので、問題解決の時にのみ 使用すべきである。 3 より上のレベルは開発者だけが利用するように設計されて おり、莫大な量のログデータが生成される。そのほとんどは非常に謎めいた内容 となっている。
このパラメーターの指定は、${prefix}/etc/smb.conf
ファイル中の、
log level パラメーターの
指定よりも優先する事に注意。
このパラメータはデバッグ出力を STDOUT にリダイレクトする。既定では、 すべてのクライアントはログを STDERR に出力する。
サーバが必要とする詳細な設定を含むファイルを指定する。
このファイルには、サーバが提供するサービスに関する記述や、
どの printcap ファイルを使うかといったサーバ固有の情報が
含まれている。詳細については ${prefix}/etc/smb.conf
を参照のこと。既定の
設定ファイルの名前はコンパイル時に決定される。
コマンドラインから smb.conf(5) オプション "<name>" に値 "<value>" を設定する。 これはコンパイル時の既定値と設定ファイルから読み込まれた オプションを上書きする。名前または値に空白が入っていた場合、 引用符で --option=name=value 全体を囲む。
ログ/デバッグファイルのベースディレクトリ名。拡張子
".progname"
が追加される (たとえば
log.smbclient, log.smbd など)。ログファイルは
クライアントによって削除されることはない。
終了時の talloc リークレポートを有効にする。
終了時の完全な talloc リークレポートを有効にする。
プログラムのバージョン番号を表示する。
コマンドラインオプションの要約を表示する。
簡単な使用法を表示する。
/etc/inetd.conf
サーバーが inetd
メタ・デーモン経由で動作しているならば、このファイルは
メタ・デーモンのための適切な起動情報を含む必要がある。
/etc/rc
(またはシステムが使う初期化スクリプト)
サーバーをデーモンとして起動させるならば、 このファイルにサーバーに応じた適切なスタートアップ 手順を含む必要がある。
/etc/services
サーバーを inetd
メタ・デーモン経由で起動させるなら、このファイルにサービス名
(例えば netbios-ssn)とサービスポート(例えば139)、
プロトコルタイプ(例えば tcp)のマッピングを含んでいなければいけない。
/usr/local/samba/lib/smb.conf
これは、
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
が SIGHUP を受け取ると、名前の一覧を
/usr/local/samba/var/locks
ディレクトリ
(または Samba 自身がインストールされた場所の配下に作成される
var/locks
ディレクトリ)中のファイル
namelist.debug
にダンプする。
同様に nmbd はサーバーデータベースを log.nmb
ファイルにダンプする。さらに、シグナルはnmbd
の
設定をリロードする
SIGHUP シグナルを送る代わりに、ファイルへの名前リストのダンプ要求 と、設定ファイルのリロードは、 smbcontrol(1) プログラムを使って送ることも できる。
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ページにあるリンクから入手できる:
https://www.samba.org/cifs/ 。