Nfs
如何在掛載 nfs 時指定要使用的 ipv6 地址
我的筆記型電腦有幾個 IPv6 地址。我的 NAS 只接受其中一種特定的方式來使用 NFS 安裝 NAS 文件夾。
我掛載 NAS 共享
sudo mount [fd80:foo::bar]:/Media /mnt/NASshare
但這樣一來,我的筆記型電腦使用其 IPv6 地址之一的可能性很高,這是 NAS 不允許的。
我的問題是:如何在掛載我的 NAS 共享時指定 IPv6 地址?
從 NFS(5) nfs - nfs 文件系統的 fstab 格式和選項:
clientaddr=n.n.n.n clientaddr=n:n:...:n Specifies a single IPv4 address (in dotted-quad form), or a non-link-local IPv6 address, that the NFS client advertises to allow servers to perform NFS version 4 callback requests against files on this mount point. If the server is unable to establish callback connections to clients, performance may degrade, or accesses to files may temporarily hang. If this option is not specified, the mount(8) command attempts to discover an appropriate callback address automatically. The automatic discovery process is not perfect, however. In the presence of multiple client network interfaces, special routing policies, or atypi- cal network topologies, the exact address to use for callbacks may be nontrivial to determine.
這建議將其添加到
/etc/fstab
(使用fd80:c0f::fee
所需的 IP 地址):fd80:foo::bar:/Media /mnt/NASshare nfs rw,clientaddr=fd80:c0f::fee 0 0
但如前所述,這種自動發現過程並不完美。
您可能需要添加特定
route
於您的 NAS。或者,如果可以使用
ip netns
命名空間,那麼您可以:
- 創建命名空間:
ip netns add NASNamespace
.- 將其連結到界面:
ip link set eth0 netns NASNamespace
- 為其配置IP:
ip netns exec NASNamespace ifconfig eth0 fd80:c0f::fee/64 up
- 強制掛載在命名空間內執行:
ip netns exec NASNamespace mount