Solaris のシステム管理 (ネーミングとディレクトリサービス : DNS、NIS、LDAP 編)

1 台のクライアントに影響する NIS の問題

NIS のバインドに関する問題を示す症状が、1 台か 2 台のクライアントだけで発生している場合には、問題は多くの場合クライアントにあります。多くの NIS クライアントが、プロパティを正確にバインドできない場合には、問題は多くの場合 1 台以上の NIS サーバーにあります。複数のクライアントに影響する NIS の問題を参照してください。

ypbind がクライアントで実行されていない

1 台のクライアントに問題があっても、同じサブネット上の他のクライアントは正常に機能しています。問題のあるクライアント上で、ls -l/usr のようなディレクトリで実行します。このディレクトリには、多くのユーザーが所有するファイルが含まれ、クライアント /etc/passwd ファイルにはないものも含まれます。実行結果として、ローカルの /etc/passwd に含まれるファイルの所有者が名前でなく番号で表示された場合は、NIS サービスがクライアント上で機能してないことを示しています。

通常これらの症状は、クライアント ypbind プロセスが実行されていないことを示します。ps -e を実行して、ypbind をチェックします。ypbind が見つからなければ、スーパーユーザーとしてログインし、次のように入力して ypbind を起動します。


client# /usr/lib/netsvc/yp/ypstart

ドメイン名が指定されていないか間違っている

あるクライアントに問題があり、他のクライアントは正常に機能していますが、ypbind は問題のあるクライアント上で実行されています。クライアントのドメインの設定が間違っている可能性があります。

クライアント上で domainname コマンドを実行して、どのドメイン名が設定されているのかを調べます。

client7# domainname neverland.com

NIS のマスターサーバー上の /var/yp 内の実際のドメイン名と、出力を比較します。実際の NIS ドメインは、/var/yp ディレクトリ内のサブディレクトリとして表示されます。


Client7# ls /var/yp...
-rwxr-xr-x 1 root Makefile
drwxr-xr-x 2 root binding
drwx------ 2 root doc.com ...

マシン上での domainname の実行によって得たドメイン名が、/var/yp 内のディレクトリとして示されたサーバードメイン名と同じではない場合には、マシンの /etc/defaultdomain ファイルで指定されたドメイン名が間違っています。スーパーユーザーとしてログインして、マシンの /etc/defaultdomain ファイル内のクライアントのドメイン名を修正します。これによって、マシンを起動するたびに、ドメイン名が正しいかどうかが確認されます。ここでマシンをリブートします。


注 –

ドメイン名では大文字と小文字を区別します。


クライアントがサーバーにバインドされない

ドメイン名が正しく設定されていて ypbind が実行中でもコマンドがまだハングする場合には、ypbind コマンドを実行してクライアントがサーバーにバインドされていることを確認してください。ypbind を起動したばかりのときは、ypwhich を数回実行します。通常、1 回目ではドメインがバインドされていないことが通知され、2 回目は成功します。

サーバーが使用できない

ドメイン名が正しく設定されていて ypbind が実行中のときに、クライアントがサーバーと通信できないというメッセージを受け取った場合には、いくつかの問題が考えられます。


注 –

セキュリティと管理上の理由から、クライアントにブロードキャストを使ってサーバーを検索させるのではなく、クライアントの ypservers ファイルでクライアントのバインド先のサーバーを指定してください。ブロードキャストは、ネットワークの速度を落とし、クライアントの速度も落とします。また、異なるクライアントに対して異なるサーバーをリストするため、サーバー負荷の均衡がとれなくなります。


ypwhich の表示に一貫性がない

ypwhich を同じクライアントで数回使うと、NIS サーバーが変わるので結果の表示も変わります。これは正常な状態です。NIS クライアントから NIS サーバーへのバインドは、ネットワークや NIS サーバーを使用中の場合は時間の経過に伴って変化します。ネットワークは、すべてのクライアントが受け入れ可能な応答時間を NIS サーバーから得られる点で安定した状態になります。クライアントのマシンが NIS サービスを得ているかぎりは、サービスの供給元は問題にはなりません。たとえば、NIS サーバーマシンがそれ自体の NIS サービスを、ネットワーク上の別の NIS サーバーから受けることもあります。

サーバーのバインドが不可能な場合

ローカルなサーバーのバインドが不可能な場合には ypset コマンドを使用すると、別のネットワークまたはサブネットの別のサーバーが使用可能な場合には、そのサーバーへのバインドが一時的に可能になります。ただし、-ypset オプションを使用するためには、-ypset または -ypsetme オプションのどちらかを指定して ypbind を実行する必要があります。


注 –

セキュリティ上の理由から、-ypset-ypsetme のオプションの使用は、管理された環境のもとでのデバッグだけに限定してください。-ypset-ypsetme のオプションを使用すると、セキュリティが侵害される恐れがあります。これらのデーモンの実行中はサーバーのバインドをだれでも変更できるため、他のユーザーの作業に問題が生じたり重要なデータへの未承認のアクセスが認められたりするためです。これらのオプションで ypbind を起動する場合は、問題が解決したら ypbind をいったん強制終了し、これらのオプションを指定しないで再起動してください。


ypbind のクラッシュ

ypbind が、起動するたびにすぐにクラッシュする場合には、システムの他の部分で問題を調べます。次のように入力して、rpcbind デーモンが存在するかどうか確認します。

% ps -ef | grep rpcbind

rpcbind が存在しない、安定しない、あるいは動作に異常がある場合には、RPC のマニュアルを参照してください。

正常に機能しているマシンから、問題のあるクライアント上の rpcbind と通信ができる場合があります。正常に機能しているマシンから、次のように入力してください。

% rpcinfo client

問題のあるクライアント上の rpcbind に問題がない場合には、rpcinfo によって次の出力がされます。


program	version	netid	address	service	owner
...
100007	2	udp	0.0.0.0.2.219	ypbind	superuser
100007	1	udp	0.0.0.0.2.219	ypbind	superuser
100007	1	tcp	0.0.0.0.2.220	ypbind	superuser
100007	2	tcp	0.0.0.0.128.4	ypbind	superuser
100007	2	ticotsord	\000\000\020H	ypbind	superuser
100007	2	ticots	\000\000\020K	ypbind	superuser
...

使用中のマシンには異なる複数のアドレスがあります。それらのアドレスが表示されない場合は、ypbind によってそのサービスが登録できていません。マシンをリブートして再度 rpcinfo を実行します。表示される出力の中に ypbind プロセスがいくつかあり、/usr/lib/netsvc/yp/ypbind を再起動しようとするたびにそれらのプロセスが変更される場合は、rpcbind デーモンが実行中であってもシステムをリブートをしてください。