我已经成功安装并使用了具有Solaris服务器和FreeBSD客户端的NFS版本4。 问题是在版本4上安装了FreeBSD服务器和FreeBSD客户端。版本3运行良好。
我从FreeBSD第4.5版开始使用FreeBSD NFS服务器(然后是IBM AiX客户端)。
问题: 安装正常,但kerberos缓存中没有主体出现,并且当尝试读取或写入已安装的文件系统时,我收到错误:输入/输出错误
nfs / server-fqdn @ REALM和nfs / client-fqdn @ REALM主体在kerberos服务器上创建,并在两侧正确存储在keytab文件中。
我使用上面的方法从KDC发出tgt票据,用于根目录的kerberos缓存。
我正确启动服务: 文件/etc/rc.conf
rpcbind_enable="YES"
gssd_enable="YES"
rpc_statd_enable="YES"
rpc_lockd_enable="YES"
mountd_enable="YES"
nfsuserd_enable="YES"
nfs_server_enable="YES"
nfsv4_server_enable="YES"
然后我开始服务 在客户端:rpcbind,gssd,nfsuserd, 在服务器上面都有导出文件:
V4: /marble/nfs -sec=krb5:krb5i:krb5p -network 10.20.30.0 -mask 255.255.255.0
我登上:
# mount_nfs -o nfsv4 servername:/ /my/mounted/nfs
#
# mkdir /my/mounted/nfs/e
# mkdir: /my/mounted/nfs/e: Input/output error
#
即使是ls命令也有相同的结果。 klist不会在root的缓存或任何其他缓存中显示任何新的主体。 我喜欢版本3的惊人性能,但需要NFS4的本地锁定文件功能。 第二个原因是安全。我需要kerberised RPC调用(-sec = krbp)。
如果有人使用FreeBSD服务器为NFS版本4做到了这一点,请对这个问题给出反馈,如果你这样做,我会很高兴。
答案 0 :(得分:0)
提供代码示例的评论并不好。以下是适用于我的FreeBSD客户端和FreeBSD服务器的设置。我没有使用Kerberos但是如果你使用这个最小配置,那么你可以在之后添加Kerberos(我相信)。
服务器rc.conf
:
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4"
nfsv4_server_enable="YES"
nfsuserd_enable="YES"
mountd_flags="-r"
服务器/etc/exports
:
/parent/path1 -mapall=1001:1001 192.168.2.200
/parent/path2 -mapall=1001:1001 192.168.2.200
... (more shares)
V4: /parent/ -sec=sys 192.168.2.200
客户rc.conf
:
nfs_client_enable="YES"
nfs_client_flags="-n 4"
rpc_lockd_enable="YES"
rpc_statd_enable="YES"
客户fstab
:
192.168.2.100:/path1/ /mnt/path1/ nfs rw,bg,late,failok,nfsv4 0 0
192.168.2.100:/path2/ /mnt/path2/ nfs rw,bg,late,failok,nfsv4 0 0
... (more shares)
如您所见,客户端尝试仅安装服务器上/parent/
行中指定的V4
路径之后的内容。 192.168.2.100是服务器IP,192.168.2.200是客户端IP。此设置仅允许一个客户端连接到服务器。
我希望我没有错过任何事情。顺便说一句,请在SuperUser或ServerFault而不是StackOverflow上提出这样的问题。我很惊讶这个问题因为那个问题还没有结束;)