
同じネットワーク上にない 2 台のマシン A と B があり、一方のマシンからもう一方のマシンに NFS 共有をエクスポートしたいと考えています。
中央には、両方のネットワーク上にあるマシン M があります。
A の共有を M にマウントすることに成功しました。次に、このマウントを B にエクスポートしたいと思います。
次のように、M でエクスポートを作成しました。
/mnt/path/to/mountpoint/of/A's/nfsshare <B's IP address>(rw,insecure,secure,root_squash,wdelay,sync,no_subtree_check)
そして、次のように B にマウントしようとしました。
<M's hostname>:/mnt/path/to/mountpoint/of/A's/nfsshare /some/empty/directory nfs auto,rw,rsize=65535 0 0
M のエクスポートをマウントしようとすると、B に次のメッセージが表示されます。
mount.nfs: vm-dc:/mnt/dcstore01/data02/formats_exploitation が失敗しました。サーバーによって理由が示されました: 権限が拒否されました
そして、M の syslog に次のメッセージが表示されます:
Dec 6 13:53:05 vm-dc rpc.mountd[27916]: authenticated mount request from 10.0.0.1:773 for /mnt/dcstore01/data02/formats_exploitation (/mnt/dcstore01/data02)
Dec 6 13:53:05 vm-dc rpc.mountd[27916]: qword_eol: fflush failed: errno 22 (Invalid argument)
Dec 6 13:53:05 vm-dc rpc.mountd[27916]: Cannot export /mnt/dcstore01/data02, possibly unsupported filesystem or fsid= required
どうすればいいですか ?
答え1
これは NFS 再エクスポートと呼ばれ、最新の Linux カーネル/ディストリビューションでは許可されていません。回避策として、ホスト M: でポート転送を試してください。
iptables -t nat -A PREROUTING -p tcp --dport 2049 -j DNAT --to-destination 10.10.10.10:2049
iptables -t nat -A POSTROUTING -p tcp --dport 2049 -j MASQUERADE
mountdでも同じことを行いますが、まずホストAの/etc/sysconfig/nfsでmountdポートを修正した方が良いでしょう。
RPCMOUNTDOPTS="--port 2052"
mountd も udp を使用する可能性があることに注意してください。