我が家はRed Hat Enterprise Linux 8 (RHEL8)のPCをファイルサーバーにしています。
そして、このサーバー上でKVMの仮想マシンを複数起動しています。
今回、この仮想マシン上のUbuntu 20.04 LTSからホストのNFSサーバーにアクセスする必要があったのですが、ファイヤーウォール周りで若干はまったので設定手順と合わせてご紹介したいと思います。
ホスト側(RHEL8)のNFSの設定
1.ホストのRHEL8で下記のコマンドを実行し、NFSサーバーをインストールします。
$ sudo yum install nfs-utils
2./etc/exportsを編集し、NFSとして公開するディレクトリを記載します。
下記では /home/test を 192.168.122.0/24(KVMの内部ネットワーク)に公開します。
/home/test 192.168.122.0/24(rw,no_root_squash)
3.下記を実行して/etc/exportsに指定したディレクトリをエクスポートします。
$ sudo exportfs -a
4.下記を実行してエクスポートした内容を確認します。
$ sudo exportfs
/home/test
192.168.122.0/24
ホスト側(RHEL8)のファイヤーウォールの設定
今回、ここでlibvirtゾーンではなくpublicゾーンの設定を行ってしまったため、はまりました。KVMの内部ネットワークなのでlibvirtゾーンが対象になるのでした。。
1.下記を実行してlibvirtゾーンでnfsが使用するポートを穴あけします。
sudo firewall-cmd --permanent --zone=libvirt --add-service=nfs
2.下記のコマンドで穴あけの設定を反映します。
sudo firewall-cmd --reload
クライアント側(Ubuntu 20.04 LTS)のNFSの設定
1.下記のコマンドでNFSクライアントをインストールします。
$ sudo apt-get install nfs-client
2.下記のコマンドで /mnt/nfs にホストのNFSディレクトリをマウントします。
$ sudo mount -t nfs -o vers=4 192.168.122.1:/home/test /mnt/nfs
3.下記のコマンドでmountできていることを確認します。
$ mount
<省略>
192.168.122.1:/home/test on /mnt/nfs type nfs4 (rw,relatime,vers=4.0,rsize=1048576,wsize=1048576,…
4.mount できたら /etc/fstab に下記を記述します。
192.168.122.1:/home/test /mnt/nfs nfs defaults 0 0
以上で完了です。
私が調べた限り、ホスト-ゲスト間でNFSを使用するときにファイヤーウォールの設定をどうするかについて記載された情報を見つけられませんでした。もし同じ場所ではまっている方がいたらお役に立てると幸いです!