21.9. NFS と portmap
注記
以下のセクションは、後方互換性のために portmap サービスを必要とする NFSv2 または NFSv3 実装にのみ適用されます。
portmapper は、RPC サービスをリッスンしているポートにマッピングします。RPC プロセスは、起動時に portmap に通知します。これは、リッスンしているポートと、そのプロセスが提供することが予想される RPC プログラム番号を登録します。次に、クライアントシステムは、特定の RPC プログラム番号でサーバーの portmap に接続します。portmap サービスは、クライアントを適切なポート番号にリダイレクトし、要求されたサービスと通信できるようにします。
RPC ベースのサービスは portmap に依存して受信クライアント要求ですべての接続を確立するため、ポートマップはこれらのサービスのいずれかが開始する前に、ポートマップを利用できるようにする必要があります。
portmap サービスはアクセス制御に TCP ラッパーを使用し、portmap のアクセス制御ルールは すべて の RPC ベースのサービスに影響します。あるいは、NFS RPC デーモンごとにアクセス制御ルールを指定することもできます。rpc.mountd および rpc.statd の man ページには、これらのルールの正確な構文に関する情報が記載されています。
21.9.1. NFS と portmapのトラブルシューティング
portmap は RPC サービスとそれらとの通信に使用されるポート番号を調整するため、トラブルシューティング時に portmap を使用して現在の RPC サービスのステータスを表示すると便利です。rpcinfo コマンドを使用すると RPC ベースの各サービスとそのポート番号、RPC プログラム番号、バージョン番号、および IP プロトコルタイプ (TCP または UDP) が表示されます。
portmap に対して適切な RPC ベースの NFS サービスが有効になっていることを確認するには、root で以下のコマンドを実行します。
rpcinfo -p
以下に、上記コマンドの出力例を示します。
program vers proto port 100000 2 tcp 111 portmapper 100000 2 udp 111 portmapper 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 つが正しく起動しないと、portmap は、そのサービスのクライアントからの RPC 要求を正しいポートにマッピングできません。多くの場合、NFS が rpcinfo の出力に存在しない場合は、NFS を再起動すると、サービスが portmap に正しく登録され、機能し始めます。NFS の開始方法は、「NFS の開始と停止」 を参照してください。
rpcinfo コマンドでは、その他の便利なオプションを使用できます。詳細は、man ページの rpcinfo を参照してください。