解決できないNFS共有のマウントに問題があります。これは状況です:
関係する3つのマシン:
ホストA:mandrake、IP 192.168.1.4、NFSサーバー
ホストB:athlon64、IP 192.168.1.64、NFSクライアント
ホストC:lap-fzs-2、IP 192.168.1.27、NFSクライアント
ホストAには、ホストBによってマウントされるディレクトリをエクスポートするNFSサーバーが実行されています。これは問題なく動作し、古くから機能しています。問題ありません。今度はホストCが登場します。Ubuntu 12.04 LTS、最新のシステム。ホストAから同じ共有をマウントしようとしましたが、権限拒否エラーが発生しました。
root@lap-fzs-2:~# mount -t nfs mandrake:/data /data -onfsvers=2
mount.nfs: access denied by server while mounting mandrake:/data
ホストAとホストBの間で機能するという事実は、NFSエクスポート自体が機能していることを証明する必要があります。これは私がそれがうまくいくはずだと私に与えることができる私が与えることができる情報です。たぶん誰かが私が見ないものを見て、これが新しいホストCで失敗する理由を知っています。
サーバーのエクスポート:
[root@mandrake /root]# cat /etc/exports
/suse 192.168.1.0/16(ro,no_root_squash)
/data 192.168.1.0/24(rw)
#/data3 192.168.2.0/24(rw)
#/data 192.168.2.0/16(rw,all_squash,anonuid=500,anongid=500)
#/data3 192.168.2.0/16(rw,all_squash,anonuid=500,anongid=500)
[root@mandrake /root]# exportfs
/suse 192.168.1.0/16
/data 192.168.1.0/24
ポートマッパーが実行されており、エクスポートは既知であり、ホストB「athlon64」によってマウントされています。
[root@mandrake /root]# showmount -e
Export list for mandrake:
/data 192.168.1.0/24
/suse 192.168.1.0/16
[root@mandrake /root]# showmount -a
All mount points on mandrake:
atlhon64.acme.local:/data
athlon64ホストがNFS共有をマウントすると、サーバーログに成功が表示されます。
Feb 11 20:06:46 mandrake mountd[460]: authenticated mount request from atlhon64.acme.local:770 for /data (/data)
しかし、ホストCが同じ共有をマウントしようとすると、サーバーログに次のように表示されます。
Feb 11 20:12:42 mandrake mountd[460]: refused mount request from lap-fzs-2 for /data (/): no export entry
ホストCはサーバーを認識し、ポートマッパーとnfsdに到達しますが、権限で失敗します。
root@lap-fzs-2:~# showmount -e 192.168.1.4
Export list for 192.168.1.4:
/data 192.168.1.0/24
/suse 192.168.1.0/16
root@lap-fzs-2:~# mount -t nfs -v mandrake:/data /data -onfsvers=2,proto=udp
mount.nfs: timeout set for Mon Feb 11 21:49:23 2013
mount.nfs: trying text-based options 'nfsvers=2,proto=udp,addr=192.168.1.4'
mount.nfs: prog 100003, trying vers=2, prot=17
mount.nfs: trying 192.168.1.4 prog 100003 vers 2 prot UDP port 2049
mount.nfs: prog 100005, trying vers=1, prot=17
mount.nfs: trying 192.168.1.4 prog 100005 vers 1 prot UDP port 636
mount.nfs: mount(2): Permission denied
mount.nfs: access denied by server while mounting mandrake:/data
クライアントでNFSv2を使用する必要があります。サーバーがNFSv4をサポートしていないため、NFSv4の使用は失敗します。TCP経由で2049に直接接続しようとすると失敗しますが、ポートが開いていません。フォールバックは発生しません。NFSv3を使用すると、RPCプログラム/バージョンの不一致が発生します。
何が欠けていますか?
更新:
3台のマシンはすべて、同じスイッチ上の1つのLAN上にあります。ホストCでアクティブなファイアウォールはありません:
root@lap-fzs-2:~# iptables -vnL
Chain INPUT (policy ACCEPT 17 packets, 1853 bytes)
pkts bytes target prot opt in out source destination
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 20 packets, 5611 bytes)
pkts bytes target prot opt in out source destination
ホストAでも:
[root@mandrake /root]# ipchains -L
Chain input (policy ACCEPT):
Chain forward (policy ACCEPT):
Chain output (policy ACCEPT):
exportfs -a
してみてください、その後、ホストAでコマンドをmount
ホストCにコマンドを明示的なホスト名またはで完全なIPアドレスを試してみてください/etc/exports
。
exportfs -a
起動時にatを実行します。これは新しいエントリではないため、すでにエクスポートされています。エクスポートファイルは変更されませんでした。マウントする必要があるのはマウントできない新しいホストだけです。
/etc/exports
ていました。完全なIPアドレスをで使用すると、実際に機能します。これで/ 24ネットと完全なIPがリストされ、ホストCがマウントできるようになりました。ホストBはまだ試していません。これはなぜですか?ホストC(バージョン1のMNTコール)をホストCが使用しているときに、ホストB(動作しているホスト)がバージョン2のMNTコールを使用していることに気付きました。