Skip to main content
NetApp Technical Reports
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

架构

NFS over TLS 是 ONTAP NFS 服务器的每 LIF 传输安全功能。它将 TLS 保护应用于客户端与 ONTAP NFS 服务器之间的 NFS 流量。配置通过 vserver nfs tls interface`命令系列和相应的 `/api/protocols/nfs/tls/interfaces REST 资源进行管理。

配置在 SVM 范围内,按 LIF 应用,并在集群范围内复制。当前托管 LIF 的任何节点都应用相同的 TLS 设置。没有集群范围的开/关控制。启用和禁用是按 LIF 执行的操作。

外部依赖项

在 9.19.1 中,NFS TLS 握手路径不会对外部证书颁发机构 (CA) 或 OCSP 响应程序发出出站调用。链和使用者可选名称 (SAN) 验证在本地针对 SVM 已安装的证书材料执行。

数据流

NFSv3 和 NFSv4 都对发送到 TCP 端口 2049 的第一个 NULL 调用/响应对之后的整个 NFS 负载进行加密。NULL 调用具有 RFC 9289 中定义的新 `AUTH_TLS`凭据类型,该类型表示客户端打算使用 TLS。服务器以 NULL 回复进行响应,该回复接受或拒绝 TLS 升级。如果客户端收到接受响应,则通过相同的 TCP 连接继续进行 TLS 1.3 握手。如果握手成功完成,所有后续 NFS RPC 都将封装在 TLS 记录中并在传输过程中加密。

NFSv3 和 NFSv4.x 之间有一个区别:NFSv3 依赖于辅助协议——-rpcbind(portmapper)、 mountd、NLM(Network Lock Manager)和 NSM(Network Status Monitor)——这些协议不通过受 TLS 保护的连接传输,而是以明文方式传输。具有要求对存储流量进行完全加密的合规性要求的组织在选择 NFSv3 和 NFSv4.x 时应考虑到这一点。NFSv4.x 消除了这些旁路协议;所有 NFSv4.x 流量均整合到端口 2049,并在 TLS 握手后加密。

caption="NFS over TLS握手序列图", alt="序列图显示客户端与 ONTAP NFS 服务器之间的 NFS over TLS 握手流程。"

NFSv4.x 不使用辅助协议,因此所有 NFSv4.x RPC 都在 TLS 握手后进行加密。

caption="NFSv4.1 over TLS握手序列图", alt="序列图显示客户端与 ONTAP NFS 服务器之间的 NFSv4.1 over TLS 握手流程。"

ONTAP 在当前托管 LIF 的节点上的 NFS 服务器处终止 TLS。在传输层之上,NFS 服务器处理 RPC 的方式与非 TLS NFS 连接相同。

HA 接管行为

现有的 NFS-over-TLS 会话无法在 HA 接管或计划外节点崩溃中存活。TLS 是基于 TCP 构建的会话级传输。当 TCP 连接与节点断开时,TLS 会话也会随之断开。

接管后,客户端重新连接并完成新的 TLS 1.3 握手。合作伙伴节点使用相同的复制 TLS 配置——证书绑定、主机身份验证设置和 SAN 验证设置——因为配置记录在集群范围内复制。

TLS 会话票证和预共享密钥 (PSK) 是节点本地的,不会转移给合作伙伴。预计在接管时会出现完整 TLS 握手的重新连接风暴。

MetroCluster 和 SVM-DR 行为

TLS 接口证书和配置通过标准 SVM-DR 和 MetroCluster SVM 级复制路径与 SVM 进行复制。身份保留切换后,目标 SVM 将携带相同的每 LIF TLS 配置。

导出策略规则上的 `-allow-nfs-tls-only`字段通过标准导出策略复制路径与导出策略规则的其余部分一起复制。在 SVM-DR 中,当使用 SVM 复制策略时,规则随策略一起复制。