web-dev-qa-db-ja.com

VMゲストにNFS共有をマウントする方法は?

Win7-x64がインストールされたマシンがあります。このマシンでは、VirtualBoxを使用して、ゲストFedora-x64を実行しています。このFedoraインスタンスでNFS共有を定義しました。/etc/exportsのエントリは次のとおりです。

/ dvr 192.168.0.0/192.168.255.255(rw)

WindowsマシンのIPアドレスは192.168.1.100、FedoraゲストのIPアドレスは192.168.1.110です。 VMのネットワークモードは、ブリッジネットワークに設定されています。

これで、別のLinuxボックスから、Fedoraゲスト(192.168.1.110)にpingを実行すると、正常に応答が返されます。ただし、nfs共有をマウントしようとすると、「ホストへのルートがありません」というエラーが発生します。使用するコマンドは次のとおりです。

マウント-tnfs 192.168.1.110:/ dvr/mnt/test

Iptablesの問題がないことを確認するために、Fedoraゲストでは次のことを行いました。

service iptables stop

マウントを再試行しましたが、役に立ちませんでした。

私たちのセットアップで何が間違っている可能性があるのですか?これらのマシンはすべて、ハブを介して相互に接続されています。 linksysルーターはDHCPサーバーとして構成され、そこからすべてのマシンがIPアドレスを取得します。

ありがとう。

1
SomethingBetter

この質問は少し古いことは知っていますが、それでも関連性があると思います。 NFSマウントは複数のコンポーネントで構成されているため、NFSマウントの設定は難しい場合があります。そのため、ファイアウォールで開く必要のあるポートが複数あります。また、Fedoraはfirewalldを使用しているため、「iptables」と呼ばれるサービスはありません。

別のFedoraボックスであるNFSサーバー( TLDPドキュメント )でエクスポートが正しく定義されていることを前提としています。 exportfs -raを編集した後、/etc/exportsを実行することを忘れないでください。 VirtualBoxを実行しているvmホスト(ゲスト追加パッケージをインストールして維持する必要なしにホストとゲストの間でファイル共有をセットアップするため)である可能性もありますが、違いはありません。

「クライアント」にNFS共有をマウントしようとすると、タイムアウトが発生する場合があります。

# mount -v Share/
mount.nfs: timeout set for Tue May 22 15:40:52 2018
mount.nfs: trying text-based options 'vers=3,addr=192.168.56.1'
mount.nfs: prog 100003, trying vers=3, prot=6
^C

NFSが機能するには、RPCが機能する必要があります(通信できる必要があります)。この場合、NFSサーバーに接続できません(192.168.56.1はVirtualBoxホストシステムのデフォルトのIPアドレスです。NFSサーバーのIPに置き換えてください)。

# rpcinfo -p 192.168.56.1
rpcinfo: can't contact portmapper: RPC: Remote system error - No route to Host

ファイアウォールがサーバー(vmホストまたは別のサーバー)でNFSをブロックしないようにするには、ファイアウォールを無効にしないでください。事実上、すべてが許可されます。クライアントが接続するためのネットワークインターフェイスを特定する必要があります。ファイアウォールゾーンに割り当てられていない場合は、適切なものを選択してください(おそらく「パブリック」ではありません)。次に、そのゾーンでNFSを許可します。

ネットワークインターフェイスを特定します(次のコマンドはサーバーで実行されます)。

# ip address
...
6: vboxnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.1/24 brd 192.168.56.255 scope global vboxnet0
       valid_lft forever preferred_lft forever

この例では、クライアントは192.168.56.1に接続するため、vboxnet0がそのホスト上の正しいインターフェースです。

このインターフェイスが割り当てられているファイアウォールゾーンを特定します。

# firewall-cmd --get-zone-of-interface vboxnet0

それが「ゾーンなし」の場合は、ゾーンを選択して自分で割り当てる必要があります。たとえば、「内部」。外部インターフェイスでNFSを許可しないようにする必要があります。

# firewall-cmd --add-interface=vboxnet0 --zone=internal

ここで「内部」ゾーンのすべてのインターフェースをリストすると、「vboxnet0」が表示されます。

# firewall-cmd --list-interfaces --zone=internal
vboxnet0

NFSサーバーに必要な「サービス」を有効にします(つまり、ポートを開きます)。

# firewall-cmd --add-service nfs --zone internal
# firewall-cmd --add-service mountd  --zone internal
# firewall-cmd --add-service rpc-bind --zone internal

これらのサービスが「内部」ゾーンのNICに対して有効になっていることを再確認してください。

# firewall-cmd --list-services --zone internal
ssh mdns samba-client dhcpv6-client nfs ntp mountd rpc-bind

サーバー上のこのファイアウォールがNFSをブロックしていた場合は、これで機能するはずです。または、ネットワークに別のファイアウォールがあるためではないかもしれません。ただし、これはFedoraとそのfirewalldに関するものです。

最後になりましたが、上記のコマンドによって行われた変更はすべて一時的なものです。ランタイム構成のみが変更されました(--permanentが使用されていないため)。間違えた場合、firewalldを再起動するとすべての変更が失われます。

変更を保持したい場合は、それらを永続的な構成に保存する必要があります( firewalldドキュメント ):

# firewall-cmd --runtime-to-permanent
1
basic6

最近、Fedoraはfirewalldをファイアウォールとして使用しています。 iptablesを直接停止することは、ファイアウォールを停止する正しい方法ではありません。代わりにsystemctl stop firewalld.serviceを試してください。

FedoraでNFSサービスを開始しましたVMではありませんか?

これを行うには、VMでsystemctl start nfs.serviceを実行します。

Nfsdの起動後に/etc/exportsファイルを変更した場合は、systemctl restart nfs.serviceを実行するか、exportfs -aコマンドを使用してファイルシステムを再エクスポートする必要があります。

1
suprjami

/etc/exportsはIPアドレスを期待し、オプションでCIDRまたは古いスタイルのネットマスクが続きます。

したがって、次のいずれかに変更する必要があります。

/dvr 192.168.0.0/255.255.0.0(rw)

または:

/dvr 192.168.0.0/16(rw)

(ホスト名も使用できますが、ここでは関係ありません。)

0
Michael Hampton