Oracle® Solaris 11.2 ディレクトリサービスとネームサービスでの作業: DNS と NIS

印刷ビューの終了

更新: 2014 年 7 月
 
 

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

1 台か 2 台のクライアントだけで、NIS のバインドに関する問題を示す症状が発生している場合は、そのクライアントに問題があると考えられます。複数のクライアントが正しくバインドできない場合は、1 台以上の NIS サーバーに問題があると考えられます。複数のクライアントに影響する NIS の問題を参照してください。

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

あるクライアントに問題がありますが、同じサブネット上のほかのクライアントは正常に動作しています。問題のあるクライアント上で、ls –l をたとえば /usr のような、多くのユーザーが所有するファイル (クライアント /etc/passwd ファイルにはないものも含む) を持つディレクトリで実行します。その結果の表示に、ローカルの /etc/passwd にないファイル所有者が名前ではなく、番号として一覧表示される場合は、そのクライアント上で NIS サービスが動作していないことを示します。

通常これらの症状は、クライアント ypbind プロセスが実行されていないことを示します。NIS クライアントサービスが実行されているかどうかを確認します。

client# svcs \*nis\*
STATE          STIME    FMRI
disabled       Sep_01   svc:/network/nis/domain:default
disabled       Sep_01   svc:/network/nis/client:default

これらのサービスが disabled 状態にある場合は、root としてログインするか、または同等の役割になり、NIS クライアントサービスを起動します。

client# svcadm enable network/nis/domain
client# svcadm enable network/nis/client

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

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

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

client7# domainname
example.com

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

client7# ls

-l /var/yp
-rwxr-xr-x 1 root Makefile
drwxr-xr-x 2 root binding
drwx------ 2 root example.com

マシン上で domainname を実行することによって返されたドメイン名が、/var/yp 内のディレクトリとして一覧表示されたサーバードメイン名と同じでない場合は、マシンの /etc/defaultdomain ファイルで指定されたドメイン名が正しくありません。マシンの NIS ドメイン名を設定する方法で示すように、NIS ドメイン名をリセットします。


注 - NIS ドメイン名では大文字と小文字が区別されます。

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

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

サーバーが使用できない

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

  • クライアントに、バインド先のサーバーのリストが含まれた /var/yp/binding/domainname/ypservers ファイルが存在しますか。ない場合には、ypinit –c を実行して、設定の順番にクライアントのバインド先のサーバーを指定します。

  • クライアントに /var/yp/binding/domainname/ypservers ファイルがあり、1 つ以上のサーバーが使用できない場合には、十分な数のサーバーがあるかどうかを調べます。ない場合には、ypinit –c を実行して、リストにサーバーを追加します。

  • /etc/inet/hosts ファイル内に、選択された NIS サーバーのエントリがありますか。選択された NIS サーバーを表示するには、svcprop –p config/ypservers nis/domain コマンドを使用します。これらのホストがローカルの /etc/inet/hosts ファイル内に含まれていない場合は、Working With NIS Mapsの説明に従って ypinit –c または ypinit –s コマンドを実行することによって、NIS マップに関する作業 の NIS マップにサーバーを追加してマップを再構築します。

  • ネームサービススイッチは NIS に加えて、マシンのローカルの hosts ファイルをチェックするように設定されていますか。スイッチの詳細については、Chapter 2, ネームサービススイッチについてを参照してください。

  • ネームサービススイッチは、servicesrpc で最初に files をチェックするように設定されていますか。スイッチの詳細については、Chapter 2, ネームサービススイッチについてを参照してください。

ypwhich の表示に一貫性がない

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

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

ローカルなサーバーのバインドが不可能な場合には ypset コマンドを使用すると、別のネットワークまたはサブネットの別のサーバーが使用可能な場合には、そのサーバーへのバインドが一時的に可能になります。ただし、–ypset オプションを使用するためには、ypbind–ypset または –ypsetme オプションのどちらかを指定して、実行する必要があります。詳細は、ypbind(1M) のマニュアルページを参照してください。

# /usr/lib/netsvc/yp/ypbind -ypset

別の方法については、特定の NIS サーバーへのバインドを参照してください。


Caution

注意  - セキュリティー上の理由から、–ypset オプションや –ypsetme オプションの使用はお勧めできません。これらのオプションは、制御された環境でのデバッグの目的にのみ使用してください。–ypset オプションや –ypsetme オプションを使用すると、これらのデーモンの実行中にだれでもサーバーのバインドを変更でき、ほかのユーザーでトラブルが発生したり、機密データへの未承認のアクセスが許可されたりするため、重大なセキュリティー違反が発生する場合があります。これらのオプションを使用して ypbind デーモンを起動する必要がある場合は、問題を解決したあとに ypbind プロセスを強制終了し、これらのオプションなしでこのデーモンを再起動する必要があります。ypbind デーモンを再起動するには、SMF を次のように使用します。

# svcadm enable -r svc:/network/nis/client:default


ypbind のクラッシュ

ypbind デーモンが、起動されるたびにほぼ即座にクラッシュする場合は、svc:/network/nis/client:default サービスログ内で問題を探します。次のように入力して、rpcbind デーモンが存在するかどうかをチェックします。

% ps -e |grep rpcbind

rpcbind が存在しないか、または安定しなかったり、異常な動作を行なったりする場合は、svc:/network/rpc/bind:default ログファイルをチェックします。詳細は、rpcbind(1M) および rpcinfo(1M) のマニュアルページを参照してください。

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

% rpcinfo client

問題のあるマシン上の rpcbind が正常である場合、rpcinfo は次の出力を生成します。

    program	version	netid	address	service	owner
...
100007    3    udp6      ::.191.161          ypbind     1
100007    3    tcp6      ::.135.200          ypbind     1
100007    3    udp       0.0.0.0.240.221     ypbind     1
100007    2    udp       0.0.0.0.240.221     ypbind     1
100007    1    udp       0.0.0.0.240.221     ypbind     1
100007    3    tcp       0.0.0.0.250.107     ypbind     1
100007    2    tcp       0.0.0.0.250.107     ypbind     1
100007    1    tcp       0.0.0.0.250.107     ypbind     1
100007    3    ticlts    2\000\000\000       ypbind     1
100007    2    ticlts    2\000\000\000       ypbind     1
100007    3    ticotsord 9\000\000\000       ypbind     1
100007    2    ticotsord 9\000\000\000       ypbind     1
100007    3    ticots    @\000\000\000       ypbind     1
...

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