9.9. NFS および rpcbind

注記

次のセクションは、後方互換用に rpcbind を必要とする NFSv2 または NFSv3 の実装のみに適用されます。
rpcbind[3] ユーティリティーは、RPC サービスをそれらのサービスがリッスンするポートにマッピングします。RPC のプロセスが開始されるとその開始が rpcbind に通知され、そのプロセスがリッスンしているポートおよびそのプロセスが処理することが予想される RPC プログラム番号が登録されます。クライアントシステムによって特定の RPC プログラム番号を使ってサーバー上の rpcbind との通信が行われると、rpcbind サービスによりクライアントが適切なポート番号にリダイレクトされ、要求されたサービスと通信できるようになります。
RPC ベースのサービスは着信のクライアント要求のすべての接続を確立する際に rpcbind に依存します。このため、これらのサービスを起動する前に rpcbind を利用可能な状態にする必要があります。
rpcbind サービスはアクセス制御に TCP ラッパーを使用するため、rpcbind のアクセス制御ルールは RPC ベースの すべての サービスに影響します。代わりに、NFS RPC の各デーモンごとにアクセス制御ルールを指定することも可能です。こうしたルールの正確な構文に関しては rpc.mountd および rpc.statdman ページに記載されている情報を参照してください。

9.9.1. NFS および rpcbind に関するトラブルシューティング

rpcbind[3] では通信に使用するポート番号と RPC サービス間の調整を行うため、トラブルシューティングを行う際は rpcbind を使って現在の RPC サービスの状態を表示させると便利です。rpcinfo コマンドを使用すると RPC ベースの各サービスとそのポート番号、RPC プログラム番号、バージョン番号、および IP プロトコルタイプ (TCP または UDP) が表示されます。
rpcbind に対して適切な RPC ベースの NFS サービスが有効になっていることを確認するには、次のコマンドを発行します。
# rpcinfo -p

例9.7 rpcinfo -p コマンドの出力

以下に上記コマンドの出力例を示します。
program vers proto  port service
      100021    1   udp  32774  nlockmgr
      100021    3   udp  32774  nlockmgr
      100021    4   udp  32774  nlockmgr
      100021    1   tcp  34437  nlockmgr
      100021    3   tcp  34437  nlockmgr
      100021    4   tcp  34437  nlockmgr
      100011    1   udp    819  rquotad
      100011    2   udp    819  rquotad
      100011    1   tcp    822  rquotad
      100011    2   tcp    822  rquotad
      100003    2   udp   2049  nfs
      100003    3   udp   2049  nfs
      100003    2   tcp   2049  nfs
      100003    3   tcp   2049  nfs
      100005    1   udp    836  mountd
      100005    1   tcp    839  mountd
      100005    2   udp    836  mountd
      100005    2   tcp    839  mountd
      100005    3   udp    836  mountd
      100005    3   tcp    839  mountd
NFS サービスが 1 つでも正しく開始されていないと、rpcbind は、そのサービスのクライアントから正しいポートに RPC リクエストをマッピングできません。多くの場合、NFS が rpcinfo 出力にない場合、NFS を再起動すると rpcbind に正しく登録され、機能を開始します。
rpcinfo の詳細およびオプション一覧については man ページを参照してください。