NFSv4でFirewall越しに接続する

この前NFSUbuntuMacをつなげたんですけど、Firwall越しに接続できていなかったので改善したいと思います。

やることはかんたん。クライアント側で接続するときにバージョンを4指定で接続するだけです。

NFSv4はポートが固定されるのでfirewalldでの設定が楽です。既存のサービスの中にnfsがあるのでそれを割り当てておけばFirewall越しに通信できるかと。

bookstore@bookstoreUbuntu:~$ sudo cat /usr/lib/firewalld/services/nfs.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>NFS4</short>
  <description>The NFS4 protocol is used to share files via TCP networking. You will need to have the NFS tools installed and properly configure your NFS server for this option to be useful.</description>
  <port protocol="tcp" port="2049"/>
</service>

zoneにnfsを割り当てます。個人的な事情で2つのIPからの通信を許可しています。

<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Home with http</short>
  <description>custom home zone</description>
  <interface name="enp5s0"/>
  <service name="ssh"/>
  <service name="mdns"/>
  <service name="samba-client"/>
  <service name="dhcpv6-client"/>
  <rule family="ipv4">
    <source address="192.168.50.126"/>
    <service name="http"/>
    <accept/>
  </rule>
  <rule family="ipv4">
    <source address="192.168.50.126"/>
    <service name="nfs"/>
    <accept/>
  </rule>
  <rule family="ipv4">
    <source address="192.168.50.225"/>
    <service name="nfs"/>
    <accept/>
  </rule>
</zone>

あとはクライアントからv4で接続するだけですね。

sudo mount_nfs -o vers=4 192.168.50.35:/ nfs/