我的笔记本电脑有多个 IPv6 地址。我的 NAS 仅接受其中一个特定地址来使用 NFS 安装 NAS 文件夹。
我使用以下方式挂载 NAS 共享
sudo mount [fd80:foo::bar]:/Media /mnt/NASshare
但这样一来,我的笔记本电脑很有可能使用 NAS 不允许的 IPv6 地址之一。
我的问题是:如何在安装 NAS 共享时指定 IPv6 地址?
答案1
来自 NFS(5) nfs - fstab 格式和 nfs 文件系统的选项:
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