NFSマウントが失敗し、権限が拒否され、エクスポートエントリがない


10

解決できない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):

ホストCのファイアウォール(または可能性の低いホストA)?(/ sbin / iptables -vnLは何を表示しますか?)
davidgo 2013

いいえ、ファイアウォールはなく、1つのLANセグメントです。
フロリアン

1
しようとexportfs -aしてみてください、その後、ホストAでコマンドをmountホストCにコマンドを明示的なホスト名またはで完全なIPアドレスを試してみてください/etc/exports
おがくず

1
それはどのように役立ちますか?サーバーはexportfs -a起動時にatを実行します。これは新しいエントリではないため、すでにエクスポートされています。エクスポートファイルは変更されませんでした。マウントする必要があるのはマウントできない新しいホストだけです。
Florian

@sawdust編集には正しいヒントが含まれ/etc/exportsていました。完全なIPアドレスをで使用すると、実際に機能します。これで/ 24ネットと完全なIPがリストされ、ホストCがマウントできるようになりました。ホストBはまだ試していません。これはなぜですか?ホストC(バージョン1のMNTコール)をホストCが使用しているときに、ホストB(動作しているホスト)がバージョン2のMNTコールを使用していることに気付きました。
Florian

回答:


0

2月11日20:12:42 mandrake mountd [460]:/ data(/)のlap-fzs-2からのマウント要求を拒否:エクスポートエントリなし

サーバーの拒否通知にはホストCの「エクスポートエントリがない」記載されているため、/etc/exportsファイル内の明確なホスト名またはCの完全なIPアドレスを含む明確な行を試す必要があります。

またexportfs -a、サーバーでコマンドを発行してみてください。
再起動後もNFSサーバーにアクセスできないことがよくあります。exportfs -aコマンドを明示的に発行することは、信頼できる解決策です(私にとって)。


明示的な繰り返しexportfs -aは何も変更しませんでした。問題のある1つのホストに完全なIPアドレスを使用すると、問題が解決しました。したがって、これはそれを説明しておらず、理解もできませんが、それは私の問題への答えであり、同じ問題を抱えている他の人に試してみることをお勧めします。
フロリアン

/ etc / exportsに問題のあるIPアドレスのエントリを追加すると、私の問題も解決しました。変だ。
PLA 2014

1

NFSユーザーのUIDとGUIDがサーバーとクライアントで同じかどうかを確認します。また、サーバー上でフォルダーが777権限であることを確認してください。これは、クライアントがアクセスするサーバー上の/ etc / exportsです。

NFS共有ディレクトリを作成します(IPを使用して各サーバーを作成し、スペースを区切ります)。

mkdir / var / nfs vim / etc / exports / var / nfs 10.180.82.250(rw、sync、root_squash、anonuid = 530、anongid = 530、no_subtree_check)


UIDとGIDは同じではありません。それらは必ずしもそうである必要はありません、私がNFSクライアントにマウントされた共有を取得すると機能します。また、マウント操作の場合、ユーザーのUIDは無関係である必要があります。特にユーザーがサーバーにログオンできる場合は、フォルダーを777に設定することをお勧めします。繰り返しますが、マウントしてしまえばそれなしでも機能しました。
フロリアン

1

私の場合、-o vers = 3が答えです。

$ sudo mount -o vers=3 192.168.172.1:/A/DIR /mnt
  • NFSサーバー:Ubuntuデスクトップ12.04 32ビットvmwareホスト
  • NFSクライアント:Ubuntuサーバー12.04 64ビットvmwareゲスト(ホストオンリーモード)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.