CIFSD是由NamjaeJeon创建的用于Linux内核的开源 In-kernel CIFS/SMB3服务器,它是SMB/CIFS协议在内核空间中的实现,用于通过网络来共享文件和IPC服务。最初的目标的是提供改进的文件I/O性能,但更大的目标是希望拥有一些新的特性,使得这些特性在内核内部更容易开发和维护,并且完全暴露这些层。
方向可以认为是将 SAMBA移动到内核中的几个模块的部分,以具有像程直接数据存取(Remotedirectmemoryaccess)那样的功能以实际性能增益工作。
CIFSD功能
已实现 a.用于实现基本文件共享功能的SMB1(CIFS),SMB2/3协议 b.动态授权 c.混合请求 d.持久的处理 e.oplock/lease f.LargeMTU g.NTLM/NTLMv2 h.自动协商 i.HMAC-SHA256签名 j.安全协商 k.升级签名 l.Preautenticationintegrity(SMB3.1.1)
已计划 a.SMBdirect(RDMA) b.Multi-channel c.Durablehandlev2 d.Kerberos e.persistenthandles f.目录租约 g.SMB加密
CIFSD架构
================================================================================* CIFSD Architecture================================================================================ |--- ... --------|--- kcifsd/3 - Cleint 3 |-------|--- kcifsd/2 - Client 2 | | _____________________________________________________ | | |- Client 1 |<--- Socket ---|--- kcifsd/1 <<= Authentication : NTLM/NTLM2, Kerberos(TODO)| | | | | <<= SMB : SMB1, SMB2, SMB2.1, SMB3, SMB3.0.2, | | | | | SMB3.1.1 | | | | |_____________________________________________________| | | | | | |--- VFS --- Local Filesystem | |KERNEL |--- kcifsd/0(forker kthread)---------------||---------------------------------------------------------------USER || || communication using NETLINK and sysfs || ______________________________________________ || | | cifsd <<= DCE/RPC, WINREG | ^ | <<= configure shares setting, user accounts | | |______________________________________________| | |------ smb.conf(config file) | |------ cifspwd.db(user account/password file) ^ cifsadmin ----------------|================================================================================================================================================================
评论