zfs を nfs でアクセス元を exports レヴェルで複数制限する記述法

# zfs の nfs で マルチネットワーク共有許可の設定方法

### 先人が居た💦
https://forums.freebsd.org/threads/zfs-set-sharenfs-multiple-hosts.94811/

内容を最後まで斜め読みしおるとどうやら執筆段階では未対応のようじゃ😢

てな訳で、旧来の /etc/exports に記述して併記する事で成功するけん、今後 zfs 側での対応されちゃるまでは、このメモが役立つかもね✌

```shell:sharenfs の設定表示
zfs get -t filesystem sharenfs
```

```text:試験環境の表示結果
NAME                                          PROPERTY  VALUE                                                 SOURCE
zroot                                         sharenfs  off                                                   default
zroot/ROOT                                    sharenfs  off                                                   default
zroot/ROOT/14.0-RELEASE-p5_2024-03-28_221305  sharenfs  off                                                   default
zroot/ROOT/14.0-RELEASE-p6_2024-06-05_003002  sharenfs  off                                                   default
zroot/ROOT/14.0-RELEASE_2024-02-15_012223     sharenfs  off                                                   default
zroot/ROOT/14.1-RELEASE-p1_2024-07-01_211548  sharenfs  off                                                   default
zroot/ROOT/14.1-RELEASE-p2_2024-08-08_023749  sharenfs  off                                                   default
zroot/ROOT/14.1-RELEASE-p3_2024-09-05_215154  sharenfs  off                                                   default
zroot/ROOT/14.1-RELEASE-p4_2024-09-19_221524  sharenfs  off                                                   default
zroot/ROOT/14.1-RELEASE-p5_2024-10-04_020000  sharenfs  off                                                   default
zroot/ROOT/14.1-RELEASE_2024-06-05_004833     sharenfs  off                                                   default
zroot/ROOT/14.1-RELEASE_2024-06-19_233758     sharenfs  off                                                   default
zroot/ROOT/default                            sharenfs  off                                                   default
zroot/home                                    sharenfs  off                                                   default
zroot/iso                                     sharenfs  -network 2001:db8:beef:dead::/56 -maproot=0 -alldirs  local
zroot/packages                                sharenfs  -network 2001:db8:beef:dead::/56 -maproot=0 -alldirs  local
zroot/tmp                                     sharenfs  off                                                   default
zroot/usr                                     sharenfs  off                                                   default
zroot/usr/ports                               sharenfs  off                                                   default
zroot/usr/src                                 sharenfs  off                                                   default
zroot/var                                     sharenfs  off                                                   default
zroot/var/audit                               sharenfs  off                                                   default
zroot/var/crash                               sharenfs  off                                                   default
zroot/var/log                                 sharenfs  off                                                   default
zroot/var/mail                                sharenfs  off                                                   default
zroot/var/tmp                                 sharenfs  off                                                   default
```
評価中の設定で、既に 2001:db8:beef:dead::/56 が nfs 共有可能である事が分かる。
因みに設定内容は /etc/zfs/exports に格納されちょるが、zfs で一括管理されちゃるけん、直編集はダメ！絶対！！
```shell:/etc/zfs/exports はエディタで編集はダメダメ✌
cat /etc/zfs/exports
```

```text:/etc/zfs/exports の中身はこんな感じ
# !!! DO NOT EDIT THIS FILE MANUALLY !!!

/distfiles	-network 2001:db8:beef:dead::/56 -maproot=0 -alldirs
/packages	-network 2001:db8:beef:dead::/56 -maproot=0 -alldirs
/iso	-network 2001:db8:beef:dead::/56 -maproot=0 -alldirs
```
で、この状況じゃと 2001:db8:beef:dead::/56 からの接続は可能だか、別ネットワークである 2001:db8:feed:cafe::/64 を追記する場合は、旧来 nfs で利用しおるファイル /etc/exports を編集する📝

```shell:/etc/exports は書き放題♪
cat /etc/exports
```

```text:ん～🤔 内容が /etc/zfs/exports と、クリソツw
/distfiles	-network 2001:db8:feed:cafe::/64 -maproot=0 -alldirs
/packages	-network 2001:db8:feed:cafe::/64 -maproot=0 -alldirs
/iso	-network 2001:db8:feed:cafe::/64 -maproot=0 -alldirs
```

# 忘備録的なヤツ
```shell:余談じゃが sharenfs の設定サンプル✌
zfs set sharenfs="-network 2001:db8:beef:dead::/56 -maproot=0 -alldirs" zroot/iso
```

```shell:設定変えたら呪文を唱えよう☤
service mountd restart
```

# 結び
Share HAPPY!
See you🥰