mount.nfs4 只是“挂起”

mount.nfs4 只是“挂起”

我有一台运行带有 KRB5 的 Ubuntu Server 14.04.1 的 NFS 服务器。

我有三个正在运行的 NFS 客户端(2x Linux Mint 17.1 和 1x Crunchbang),我有一个 NFS 客户端在我运行 mount.nfs4 时就挂起了。

据我所知,我已经正确设置了一切。

出口:

/zfs/biz/dcp            172.16.0.0/21(rw,no_subtree_check,root_squash,async,sec=krb5,anonuid=1000,anongid=1000)
/zfs/biz/it             172.16.0.0/21(rw,no_subtree_check,root_squash,async,sec=krb5,anonuid=1000,anongid=1000)
/zfs/bikeshed/backupz   172.16.0.0/21(rw,no_subtree_check,root_squash,async,sec=krb5,anonuid=1000,anongid=1000)
/zfs/media/movies       172.16.0.0/21(rw,no_subtree_check,root_squash,async,sec=krb5,anonuid=65534,anongid=65534)
/zfs/media/music        172.16.0.0/21(rw,no_subtree_check,root_squash,async,sec=krb5,anonuid=65534,anongid=65534)

我已将 /etc/default/nfs-common 配置为 NEED_GSSD=yes NEED_IDMAPD=yes

我在 idmapd 中包含以下内容:[映射]

Nobody-User = nobody
Nobody-Group = nogroup

客户端上运行着以下进程:

root       494     2  0 18:39 ?        00:00:00 [rpciod]
root       531     1  0 18:39 ?        00:00:00 rpc.idmapd
root      3769     1  0 20:59 ?        00:00:00 rpc.gssd
root      4390     1  0 21:07 ?        00:00:00 rpcbind -w
statd     4396     1  0 21:07 ?        00:00:00 rpc.statd -L

我有相关的 krb5.conf 和 krb5.keytabs。运行 rpc.gssd -vvvf 和 rpc.svcgssd -vvvf 时看到的输出对于工作和非工作客户端都是相同的。

我的服务器的 krb5.log 文件显示票证已发出。

我能看到的唯一区别是数据包捕获。在不成功的情况下,客户端不会用 SETCLIENTID_CONFIRM 数据包响应 SETCLIENTID,而在成功的情况下,客户端回应。

我认为这个客户端的配置中某个地方有问题,但我没有注意到。

使用 NFS 协议时,什么原因导致客户端不返回 SETCLIENTID_CONFIRM 消息?

答案1

我发现了这种行为的两个原因以及针对每个原因的解决方案,我将发布它们以供将来参考。

最初这是由于缺少软件包导致的。解决方法:

 sudo apt-get install libpam-krb5

我还看到当反向 DNS 损坏时再次出现相同的问题 - 使用以下命令检查正向和反向 DNS 查找是否有效,替换客户端的 FQDN 和 IP 地址:

nslookup mynfsclienthostname.domain.internal
nslookup 192.168.1.5

如果其中一个失败,您需要找出原因并解决该问题。

相关内容