YPSERV(8) — UNIX Programmer’s Manual
名称
ypserv, ypbind − イエローページのサーバとバインドプロセス
形式
/usr/etc/ypserv
/etc/ypbind
解説
イエローページ(YP)は、データベースとプロセスから成る簡単な ネットワーク検索サービスを提供しています。データベースは、 /etc/yp をルートとするディレクトリツリーの中の dbm(3) ファイルです。これらのファイルは ypfiles(5) で説明されています。これらのプロセスとは、YPデータベースの検索サーバの /usr/etc/ypserv と YPバインダの /etc/ypbind です。YPへのプログラムからのインタフェースは ypclnt(3N) で説明されています。管理者ツールは、 yppush(8) および、 ypxfr(8)、 yppoll(8)、 ypwhich(8)、 ypset(8) で説明されています。YPマップの内容を見るツールは、 ypcat(1) と ypmatch(1) で説明されています。データベースの生成と保守のツールは、 ypinit(8) および、 ypmake(8)、 makedbm(8) で説明されています。
ypserv と ypbind はデーモンプロセスで、一般には /etc/rc.local からシステムのスタートアップ時に実行されます。 ypserv は、完全な YPデータベースのある YPサーバのマシン上だけで実行します。 ypbind は、YPサービスを使用するすべてのマシン、 すなわち YPサーバと YPクライアントの両方のマシン上で実行します。
ypserv デーモンの基本関数は YPマップのローカルデータベース内の 情報を検索するものです。 ypserv が実行する操作は、インプリメンタに対しては YP protocol specification によって定義され、 プログラマに対してはヘッダファイルの <rpcsvc/yp_prot.h> によって定義されます。 ypserv との両方向の通信手段は、RPC コールです。検索関数は ypclnt(3N) で説明されており、 /lib/libc にある C の呼び出し可能関数として提供されています。 検索関数は 4つあり、いずれもすべて、 ある YPドメイン内の指定したマップ上で実行されます。 Match および、 Get_first、Get_next、 Get_all の 4つです。 Match 操作はキーを取り、対応する値を返します。 Get_first 操作は、マップから最初の 1対のキー値を返します。 Get_next を使用して、残りを列挙できます。 Get_all は、単一RPC要求の応答として、 マップ全体を要求者に輸送します。 他の 2つの関数は、マップのエントリではなく、 マップについての情報を提供します。 Get_order_number と Get_master_name の 2つです。 事実、両方の順序番号とマスタ名は、 マップの中に1対のキー値として存在しています。 しかし、普通の検索関数を介してサーバは、 いずれも返しません。(しかし makedbm(8) でマップを調べれば、見ることができます)。 他の関数は YPサブシステム内で使用され、 YPクライアントへの一般利害はありません。 これには、 Do_you_serve_this_domain? および、 Transfer_map、 Reinitialize_internal_state が含まれています。
ypbind の機能は、単一ノード上のクライアントプロセスをある ypserv プロセスと通信させる情報を記憶することです。 ypbind は、YPクライアントプロセスを持つ各マシン上で実行しなければなりません。 ypserv は同じノードで実行しても、しなくても構いませんが、 そのネットワーク上のどこかで実行していなければなりません。
ypbind が記憶する情報は、 binding と呼ばれます。これは、binding (バインド) とは、 YPサーバのインターネットアドレスに対応するドメイン名と、 ypserv プロセスがサービス要求を聴くホスト上のポートです。 バインドのプロセスは、 クライアント要求によって操作されます。 バインドされていないドメインに要求がくると、 ypbind プロセスはそのネットワーク上に同報通信を行い、 そのドメイン内でマップを扱う ypserv プロセスを見つけようとします。 同報通信によってこのバインドは達成されるので、 各ネットワーク上に ypserv プロセスが少なくとも1つなければなりません。 いったんドメインが特別な ypbind によってバインドされると、 そのノード上の各クライアントプロセスに、 同じバインドが与えられます。 ローカルノードまたは遠隔ノード上の ypbind プロセスは、 ypwhich(1) コマンドを使用して、特別なドメインのバインドについて質問されます。
バインドは、クライアントプロセスに 与えられる前に検証されます。 ypbind は、ドメインがバインドされている ypserv プロセスに問い合わせできない場合には、 そのドメインをアンバウンドとしてマークし、 クライアントプロセスにそのドメインがバインドされていないことを告げて、 ドメインのバインドをもう一度試みます。 アンバウンドのドメインに対して受け取った要求は、 直ちに失敗します。一般には ypserv を実行しているノードがクラッシュしたり オーバーロードしたときに、バインドされたドメインは アンバウンドとしてマークされます。 このような場合、 ypbind はネットワーク上で使用可能な任意の YPサーバ (普通は、あまり大量にロードされないもの)をバインドします。
ypbind はまた、そのバインドを特別なドメインに対して設定する要求を受け付けます。 この要求は普通、 YPサブシステムによって生成されます。 ypset(8) は Set_domain 機能をアクセスするコマンドです。 これは混乱のもつれを解くためのもので、 普段使用するためのものではありません。
ファイル
ypserv がスタートアップするときに、 /usr/etc/yp/ypserv.log ファイルが存在する場合には、エラー条件が起きると、 ログ情報がこのファイルに書き込まれます。
関連事項
ypclnt(3N), ypfiles(5), ypcat(1), ypmatch(1), yppush(8), ypwhich(8),ypxfr(8), ypset(8)
YP Protocol Specification in Networking on
NEWS-OSRelease 3.3