我应该如何继续调试 NFS4+Kerberos?

我应该如何继续调试 NFS4+Kerberos?

我有一个工作NFS4设置。服务器被调用bluebox.lan并导出:

/mnt bluescreen.lan(rw,no_root_squash,crossmnt)

客户端被调用bluescreen.lan并且能够bluebox使用以下命令挂载 nfs:

mount -t nfs4 -o nfsvers=4.2 bluebox.lan:/mnt /bluebox

现在我补充说凯尔伯罗斯混合。 bluebox控制中心对于领域“LAN”。

制定了以下原则:

host/bluebox.lan@LAN
mathijs@LAN
mathijs/admin@LAN
nfs/bluebox.lan@LAN
nfs/bluescreen.lan@LAN

然后我将其添加nfs/bluebox.lan到 bluebox 的 keytab 和nfs/bluescreen.lanbluescreen 的 keytab。

我验证了 Kerberos 本身可以工作:

$ kinit mathijs@LAN
Password for mathijs@LAN:

$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: mathijs@LAN

Valid starting     Expires            Service principal
29-10-19 10:20:07  30-10-19 10:20:07  krbtgt/LAN@LAN

然后我改变了/etc/exportsbluebox仅添加 ,sec=krb5):

/mnt bluescreen.lan(rw,no_root_squash,crossmnt,sec=krb5)

我重新启动了涉及的服务(两台机器上的nscdrpcbind和,以及rpc-statd)。rpc-gssdnfs-serverbluebox

现在我尝试安装bluescreen

mount -t nfs4 -o nfsvers=4.2,sec=krb5 bluebox.lan:/mnt /bluebox -vvvvvv
mount.nfs4: timeout set for Tue Oct 29 10:24:54 2019
mount.nfs4: trying text-based options 'nfsvers=4.2,sec=krb5,addr=192.168.22.2,clientaddr=192.168.22.5'
mount.nfs4: mount(2): Permission denied
mount.nfs4: access denied by server while mounting bluebox.lan:/mnt

我没有在两台机器的日志中收到任何消息。

但是,我确实注意到 Kerberos 在后台运行以安排票证。在bluescreen(客户端)上/tmp/krb5ccmachine_LAN出现了以下内容:

# klist -e /tmp/krb5ccmachine_LAN
Ticket cache: FILE:/tmp/krb5ccmachine_LAN
Default principal: nfs/bluescreen.lan@LAN

Valid starting     Expires            Service principal
29-10-19 10:16:36  30-10-19 10:16:36  krbtgt/LAN@LAN
    Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96 
29-10-19 10:16:36  30-10-19 10:16:36  nfs/bluebox.lan@LAN
    Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96

bluescreen.lan这似乎是合理的,这是尝试访问的票证bluebox.lan。所以我的猜测是 nfs 服务器不知何故不接受此票证或无法验证它。

此外:

  • hostname -f表明两台机器都知道自己的全名(包括.lan)。
  • getent <name-of-other-machine>解析为正确的 IP 地址。
  • getent <ip-address-of-other-machine>解析为正确的主机名。
  • 我在两台机器上运行 systemd-timesyncd,因此它们的时钟同步
  • 我在跑NixOS 19.09
  • 两台主机上的内核均为 5.3.7
  • nfs-utils 2.4.1
  • 使用 Kerberos 1.17

现在我的问题是: 我应该如何进一步调试它? 我使用命令进行了一些尝试rpcdebug,让一些日志流入两端(rpc、nfs、nfsd 组件)的日志中,但是经过很多操作却没有出现明显的错误。

编辑 2019-11-03:发现问题出在 NixOS NFS 服务器。NixOS 客户端与 Debian 10 服务器配合使用时运行良好。Debian 客户端与 NixOS 服务器配合使用时遇到的问题与 NixOS 客户端相同。但目前尚无解决方案。现在使用 NixOS 进行标记,因为它显然与我的问题有关。

相关内容