![NFS 代理/重新导出](https://linux22.com/image/539227/NFS%20%E4%BB%A3%E7%90%86%2F%E9%87%8D%E6%96%B0%E5%AF%BC%E5%87%BA.png)
我遇到过需要在复制的 VM 网络上的一系列客户端上安装一些 NFS 共享的情况。因此它们的源 IP 地址不是唯一的。在客户端和服务器之间有一个路由 Linux VM,它可以根据需要执行各种操作。我真的不确定如何最好地使这些共享可访问。
可能的解决方案:
- 完全端到端路由流量,通过
iptables
在“路由器”上进行伪装来对所有客户端流量进行源 NAT。 - 在路由器上执行伪装和目标 NAT,使内部机器认为它们将进入 NFS 的“路由器”。这使得路由表变得更简单,因为所有内容看起来都是本地的。也许可以在“路由器”上使用辅助 IP,以便清晰地了解所有正在使用的 NFS 端口。
- 在“路由器”虚拟机上挂载然后重新导出 NFS。这感觉真的很糟糕,但会提供额外的控制,只允许某些客户端挂载某些挂载。如上所述,任何 NAT 解决方案都意味着所有最终客户端在 NFSv3 下看起来都一样,这可能会引起安全问题。这也使路由表不再是问题。我想我看到评论说这样性能会显著下降。
任何其他选择/想法都将不胜感激。
答案1
我相信 NAT 后面的 NFS 客户端应该可以正常工作,无需任何特殊花招。如果您想执行 RPC_GSS(Kerberos 身份验证),可能会遇到问题,因为服务器将根据其主机主体检查客户端的 IP 地址,但如果您只执行 AUTH_SYS,我看不出有什么理由它不起作用。