我的理解是,NFSv4客户端应该立即连接到服务器上的NFSv4服务,完全跳过rpcbind和NFSv4服务交互,但是我看到我的RHEL6客户端总是首先联系rpcbind服务以获得NFSv4端口,得到导出表单RHEL6的列表,最后再连接到NFSv4服务。使用tcpdump观察。
通过各种指示(挂载命令的输出和TCP的检查),在完成挂载操作时,客户端和服务器都使用NFSv4。
即使我所遇到的一切都试图在客户机上强制使用NFSv4,也会发生这种情况。示例:
我是完全离开了基地,还是有什么不对劲?这对我来说是个问题,因为NFS客户端坚持要能够通过UDP到达服务器上的rpcbind,然后它才会挂载任何NFSv4导出,而且我得到了神秘的UDP数据包丢失(是的,我正在这方面与网络人员合作),这导致安装不时地完全失败,或者只需要很长时间才能完成。
我看了一下libtirpc源代码,看到了一些关于它的东西,它总是使用UDP连接到,但是我想把portmapper和mountd服务完全从等式中去掉。
我尝试使用"rpcinfo -d“在NFS服务器上取消注册UDP portmapper服务,但这会导致所有针对该服务器的NFS挂载都失败(同样,客户端坚持让rpcbind侦听UDP端口111)。我还试着捣乱/etc/netconfig,却没有结果。
有没有人看到这种行为,或者对NFSv4有足够的了解,告诉我我有不切实际的期望?
发布于 2018-03-12 19:38:00
我把这个追溯到autofs。它被设置为使用/etc/auto.net来使用using挂载命令获取导出列表。在NFS挂载发生之前,展示挂载命令负责对rpcbind和挂载的访问,因此更改挂载选项的尝试没有任何效果。
我修改了/etc/auto.net,我的问题解决了。
附带注意:在auto.master中使用“auto.master”选项(正如我所见过的那样),也会导致rpcbind和装入访问。最后,我只是让auto.net挂载了所有NFSv4服务器的根目录,我理解这是可以的,前提是我的所有主机都是NFSv4。
https://serverfault.com/questions/900942
复制相似问题