これで壁に頭をぶつけています。環境は2x CentOS 664ビットインストールです。 NFSクライアントとサーバーの両方が1時間前の時点で完全に最新です。
サーバーにNFSエクスポートを設定しました。
/opt/nfs 10.1.1.0/24(rw,sync,no_root_squash,no_all_squash)
AFAICT、サーバー上のすべての関連するNFSサービスが実行されています。
(2) (0 Jobs) [root@lb01-cbr01-au ~]$ service rpcbind status
rpcbind (pid 20079) is running...
(2) (0 Jobs) [root@lb01-cbr01-au ~]$ service nfslock status
rpc.statd (pid 19986) is running...
(2) (0 Jobs) [root@lb01-cbr01-au ~]$ service nfs status
rpc.svcgssd is stopped
rpc.mountd (pid 20034) is running...
nfsd (pid 20031 20030 20029 20028 20027 20026 20025 20024) is running...
(2) (0 Jobs) [root@lb01-cbr01-au ~]$
クライアントでは、rpcbindとnfslockの両方が実行中であると報告します。
サーバー上では、localhostのrpcinfoの出力は良好に見えます。
[root@lb01-cbr01-au ~]# rpcinfo -p localhost
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 39893 status
100024 1 tcp 59014 status
100003 2 tcp 2049 nfs
100003 3 tcp 2049 nfs
100003 4 tcp 2049 nfs
100227 2 tcp 2049 nfs_acl
100227 3 tcp 2049 nfs_acl
100003 2 udp 2049 nfs
100003 3 udp 2049 nfs
100003 4 udp 2049 nfs
100227 2 udp 2049 nfs_acl
100227 3 udp 2049 nfs_acl
100021 1 udp 44725 nlockmgr
100021 3 udp 44725 nlockmgr
100021 4 udp 44725 nlockmgr
100021 1 tcp 40736 nlockmgr
100021 3 tcp 40736 nlockmgr
100021 4 tcp 40736 nlockmgr
100005 1 udp 55385 mountd
100005 1 tcp 55481 mountd
100005 2 udp 46027 mountd
100005 2 tcp 59968 mountd
100005 3 udp 45069 mountd
100005 3 tcp 33231 mountd
[root@lb01-cbr01-au ~]#
同様に、クライアントのrpcinfo -p localhostは、良好な状態を示します。
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 59519 status
100024 1 tcp 39715 status
ファイアウォールはクライアントとサーバーの間で開かれています。各ホストの入力チェーンと出力チェーンの両方のインターフェイスに許可ルールが存在します。
クライアントからshowmount -e <server_ip>
を発行すると、最終的にエクスポートリストが生成されるまで20秒間ハングします。 rpcinfo -p <server_ip>
を発行すると、最終的に「rpcinfo:ポートマッパーに接続できません:RPC:リモートシステムエラー-接続がタイムアウトしました」が返されるまで、20秒間ハングします。
クライアントからエクスポートを実際にマウントしようとすると、次のコマンドを使用します。
mount -t nfs 10.1.1.33:/opt/nfs /opt/test/nfs
3分30秒ハングし、「mount.nfs:接続がタイムアウトしました」を返します。
ただし、UDPを介してマウントしようとすると、次のようになります。
mount -o udp -t nfs 10.1.1.33:/opt/nfs /opt/test/nfs
すぐに成功し、マウントにアクセスできます。
私はhosts.allowまたはhosts.denyに対して何もしていません(どちらも空です。man5を読んだところ、hosts_accessはアクセスが許可されることを示しています)。
ここで何が欠けていますか?
編集:SELinuxは両方のホストで許容されます。
PowerConnectスイッチで有効になっている「セキュリティ」機能があり、送信元ポートが1024未満のNFS SYNパケット(dos-control tcpflag)を攻撃していることがわかりました。この機能を無効にすると問題が解決したと言えば十分です。
SELinuxは寛容ですが、試してみてください:setsebool -P nfs_export_all_rw 1
rpcbind、nfs、nfslockを再起動してからexportfs -a