web-dev-qa-db-ja.com

NFS共有をマウントできませんTCP

これで壁に頭をぶつけています。環境は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は両方のホストで許容されます。

1
Steve

PowerConnectスイッチで有効になっている「セキュリティ」機能があり、送信元ポートが1024未満のNFS SYNパケット(dos-control tcpflag)を攻撃していることがわかりました。この機能を無効にすると問題が解決したと言えば十分です。

2
Steve

SELinuxは寛容ですが、試してみてください:setsebool -P nfs_export_all_rw 1 rpcbind、nfs、nfslockを再起動してからexportfs -a

0
drcelus