NFSの教科書シリーズ、最終章へようこそ。これまでの章で、NFSサーバー (n) とクライアント (c) の構築、v3とv4の違い、そして恒久的なマウント方法について学びました。しかし、実際の運用では「なぜかマウントできない」という問題が必ず発生します。
この章では、昨日のようなつまずきを解決するための体系的な**トラブルシューティング(問題解決)**の手順と、NFSのセキュリティを強化するための基本的な概念について解説します。
クライアント (c) で mount コマンドが失敗した時、慌てる必要はありません。問題は必ず「クライアント (c) 側」「サーバー (n) 側」「ネットワーク経路」のどこかにあります。以下の手順で一つずつ確認します。
例えるなら:
「鍵(クライアント c)が金庫(サーバー n)を開けられない」時、
鍵は正しいか?(クライアントのコマンド)
金庫の鍵穴は壊れていないか?(サーバーのサービス)
金庫のルール(exports)は正しいか?
警備員(ファイアウォール)が邪魔をしていないか?
...という順番で確認していく作業です。
確認1:ネットワーク疎通 (Ping)
そもそもクライアント (c) はNFSサーバー (n) とネットワーク的に会話できる状態かを確認します。
# クライアント (c) で実行
ping -c 3 192.168.1.100
3 packets transmitted, 3 received と表示されれば、ネットワークは正常です。Destination Host Unreachable などのエラーが出た場合、NFS以前の問題です。IPアドレス、サブネットマスク、物理的なLANケーブルの接続を確認してください。確認2:サーバー (n) の公開情報 (showmount)
クライアント (c) から見て、サーバー (n) が「何を」「誰に」公開している(つもり)かを確認します。これは最も重要な診断コマンドの一つです。
# クライアント (c) で実行
showmount -e 192.168.1.100
/srv/nfs/data 192.168.1.200 のように、exports の内容が表示されます。/exports 192.168.1.200 のように、fsid=0 のパスが表示されます。clnt_create: RPC: Program not registered: サーバー (n) 側でNFSサービス (nfs-server や rpcbind) が起動していません。(ステップ2へ)clnt_create: RPC: Port mapper failure - ...: ファイアウォールが rpcbind(ポート 111)をブロックしています。(ステップ3へ)mountd のポートをブロックしています。(ステップ3へ)