Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ ypbind(8) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

domainname(1)

ypcat(1)

ypmatch(1)

dbm(3X)

ypclnt(3N)

ypfiles(5)

nis.conf(5)

makedbm(8)

ypmake(8)

ypinit(8)

yppoll(8)

yppush(8)

ypset(8)

ypwhich(8)

ypxfr(8)

YPSERV(8)  —  NEWS-OS Programmer’s Manual

名称

ypserv, ypbind − NIS のサーバとバインドプロセス

形式

/usr/etc/ypserv /usr/etc/ypbind

解説

NIS は、データベースとプロセスから成る簡単な ネットワーク検索サービスを提供しています。データベースは、 /etc/yp をルートとするディレクトリツリーの中の dbm(3) ファイルです。これらのファイルは ypfiles(5) で説明されています。これらのプロセスとは、NISデータベースの検索サーバの /usr/etc/ypserv と NIS バインダの /etc/ypbind です。 NIS へのプログラムからのインターフェースは ypclnt(3N) で説明されています。管理者ツールは、 yppush(8) および、 ypxfr(8)、 yppoll(8)、 ypwhich(8)、 ypset(8) で説明されています。 NIS マップの内容を見るツールは、 ypcat(1) と ypmatch(1) で説明されています。データベースの生成と保守のツールは、 ypinit(8) および、 ypmake(8)、 makedbm(8) で説明されています。

ypserv と ypbind はデーモンプロセスで、一般には /etc/rc.net からシステムのスタートアップ時に実行されます。 ypserv は、完全な NIS データベースのある NIS サーバのマシン上だけで実行します。 ypbind は、 NIS サービスを使用するすべてのマシン、 すなわち NIS サーバと NIS クライアントの両方のマシン上で実行します。

ypserv デーモンの基本関数は NIS マップのローカルデータベース内の 情報を検索するものです。 ypserv が実行する操作は、インプリメンタに対しては NIS Protocol Specification によって定義され、 プログラマに対してはヘッダファイルの <rpcsvc/yp_prot.h> によって定義されます。 ypserv との両方向の通信手段は、 RPC コールです。検索関数は ypclnt(3N) で説明されており、 C ライブラリにある C の呼び出し可能関数として提供されています。 検索関数は 4つあり、いずれもすべて、 ある NIS ドメイン内の指定したマップ上で実行されます。 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) でマップを調べれば、見ることができます)。 他の関数は NIS サブシステム内で使用され、 NIS クライアントへの一般利害はありません。 これには、 Do_you_serve_this_domain?  および、 Transfer_map、 Reinitialize_internal_state が含まれています。

ypbind の機能は、単一ノード上のクライアントプロセスをある ypserv プロセスと通信させる情報を記憶することです。 ypbind は、 NIS クライアントプロセスを持つ各マシン上で実行しなければなりません。 ypserv は同じノードで実行しても、しなくても構いませんが、 そのネットワーク上のどこかで実行していなければなりません。

ypbind が記憶する情報は、 binding と呼ばれます。これは、binding (バインド) とは、 NIS サーバのインターネットアドレスに対応するドメイン名と、 ypserv プロセスがサービス要求を聴くホスト上のポートです。 この情報は、 domainname.version というファイル名で、ディレクトリ /etc/yp/binding に収められます。 バインドのプロセスは、 クライアント要求によって操作されます。 バインドされていないドメインに要求がくると、 ypbind プロセスはそのネットワーク上に同報通信を行い、 そのドメイン内でマップを扱う ypserv プロセスを見つけようとします。 同報通信によってこのバインドは達成されるので、 各ネットワーク上に ypserv プロセスが少なくとも1つなければなりません。 いったんドメインが特別な ypbind によってバインドされると、 そのノード上の各クライアントプロセスに、 同じバインドが与えられます。 ローカルノードまたは遠隔ノード上の ypbind プロセスは、 ypwhich(1) コマンドを使用して、特別なドメインのバインドについて質問されます。 バインドと再バインドは、C ライブラリ ルーチンによって 取り扱われます。 クライアントプロセスに 与えられる前に検証されます。 ypbind は、ドメインがバインドされている ypserv プロセスに問い合わせできない場合には、 そのドメインをアンバウンドとしてマークし、 クライアントプロセスにそのドメインがバインドされていないことを告げて、 ドメインのバインドをもう一度試みます。 アンバウンドのドメインに対して受け取った要求は、 ドメイン要求がバウンドされるまで待ちます。 一般には ypserv を実行しているノードがクラッシュしたり オーバーロードしたときに、バインドされたドメインは アンバウンドとしてマークされます。 このような場合、 ypbind はネットワーク上で使用可能な任意の NIS サーバ (あまり負荷の大きくないもの)をバインドします。

ypbind はまた、そのバインドを特別なドメインに対して 設定する要求を受け付けます。 この要求は普通、 NIS サブシステムによって生成されます。 ypset(8) は Set_domain 機能をアクセスするコマンドです。 これは混乱のもつれを解くためのものです。 Set Domain プロシージャーは、 ルート稼働しているプロセスからのリクエストのみ 受け付けます。

関連ファイル

ypserv がスタートアップするときに、 /etc/yp/ypserv.log ファイルが存在する場合には、エラー条件が起きると、 ログ情報がこのファイルに書き込まれます。 ファイル /etc/yp/binding/domainname.version は、binding をするスピードを向上するために設けられています。 これらのファイルは、 バインディングが要求されたとき 最後に与えられたドメイン用に作成が 成功した バインディングを収めています。 これらのファイルは、有効性を検証した後に用いられます。

/etc/yp

/usr/etc/ypbind

関連事項

domainname(1), ypcat(1), ypmatch(1), dbm(3X), ypclnt(3N), ypfiles(5), nis.conf(5), makedbm(8), ypmake(8), ypinit(8), yppoll(8), yppush(8), ypset(8), ypwhich(8), ypxfr(8) NIS Protocol Specification in NEWS-OS Reference Manual

備考

ypbind と ypserv は両方とも複数のドメインをサポートしています。 ypserv プロセスは、ディレクトリ /etc/yp 内で、同一名のディレクトリを検索して、 どのドメインを取り扱うか決めます。 そのドメインに yp の要求を出している全ての ブロードキャストに返答します。 さらに、 ypbind プロセスは、いくつかのドメインとそのサーバへの バインディングを扱っています。 しかし、デフォルトのドメインは、スタートアップ時に domainname(1) コマンドで指定されます。

NEWS-OSRelease 4.2.1R

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026